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