Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 14 Mar 2020 15:29:41 +0100
From:      Willem Jan Withagen <wjw@digiware.nl>
To:        Peter Eriksson <pen@lysator.liu.se>
Cc:        FreeBSD Filesystems <freebsd-fs@freebsd.org>
Subject:   Re: ZFS pools in "trouble"
Message-ID:  <e1f8a889-254e-84f8-e6b9-4d5e7dfd2943@digiware.nl>
In-Reply-To: <2137BCAA-03B7-4DFB-B4F3-B0B26A56D416@lysator.liu.se>
References:  <71e1f22a-1261-67d9-e41d-0f326bf81469@digiware.nl> <91e1cd09-b6b8-f107-537f-ae2755aba087@FreeBSD.org> <15bde4a5-0a2e-9984-dfd6-fce39f079f52@digiware.nl> <2137BCAA-03B7-4DFB-B4F3-B0B26A56D416@lysator.liu.se>

next in thread | previous in thread | raw e-mail | index | archive | help
On 14-3-2020 13:40, Peter Eriksson wrote:
> 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?

Right that is the case here, but I was led to believe that a log failure 
no longer would spell desaster
on the vdev???
But clearly it does in this case....

--WjW




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?e1f8a889-254e-84f8-e6b9-4d5e7dfd2943>