ZFS pools in "trouble"

Peter Eriksson pen at lysator.liu.se
Sat Mar 14 12:40:10 UTC 2020


That probably corresponds to:

   ZPOOL_STATUS_BAD_GUID_SUM    /* sum of device guids didn't match */
(From /usr/src/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h)


Which get set in: 
/usr/src/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_status.c

       /*                                                                                                             
         * Check that the config is complete.                                                                          
         */
        if (vs->vs_state == VDEV_STATE_CANT_OPEN &&
            vs->vs_aux == VDEV_AUX_BAD_GUID_SUM)
                return (ZPOOL_STATUS_BAD_GUID_SUM);


/usr/src/sys # find . -name '*.c' -print0 | xargs -0 fgrep VDEV_AUX_BAD_GUID_SUM
./cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_missing.c:	 * VDEV_AUX_BAD_GUID_SUM.  So we pretend to succeed, knowing that we
./cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c:		return (spa_vdev_err(rvd, VDEV_AUX_BAD_GUID_SUM, ENXIO));
./cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c:		return (spa_vdev_err(rvd, VDEV_AUX_BAD_GUID_SUM,
./cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c:			case VDEV_AUX_BAD_GUID_SUM:


       error = spa_check_for_missing_logs(spa);
        if (error != 0)
                return (spa_vdev_err(rvd, VDEV_AUX_BAD_GUID_SUM, ENXIO));

        if (rvd->vdev_guid_sum != spa->spa_uberblock.ub_guid_sum) {
                spa_load_failed(spa, "uberblock guid sum doesn't match MOS "
                    "guid sum (%llu != %llu)",
                    (u_longlong_t)spa->spa_uberblock.ub_guid_sum,
                    (u_longlong_t)rvd->vdev_guid_sum);
                return (spa_vdev_err(rvd, VDEV_AUX_BAD_GUID_SUM,
                    ENXIO));
        }


Missing the logs perhaps?

- Peter

>>>                  */
>>>                 assert(reason == ZPOOL_STATUS_OK);
>>> 
> 
> Error: Reason not found: 5



More information about the freebsd-fs mailing list