on 23/10/2012 23:08 Andriy Gapon said the following: > on 23/10/2012 20:56 Michael Schmiedgen said the following: >> FreeBSD 10.0-CURRENT #0: Tue Oct 23 00:14:32 CEST 2012 >> root_at_gizeh.smoke:/usr/obj/usr/src/sys/GIZEH amd64 > ... >> vdev_geom_open_by_path:519[1]: guid mismatch for provider /dev/ada0p1: >> 5267967234359339128 != 0. > > Thank you for this valuable information. > > Do you have a rough estimate of when you started to experience this issue? > > Could you please also provide output of the following command captured right > after a reboot and then after you re-add the cache disks? > $ zdb -lll /dev/ada0p > > I still would like to get the above information if possible. But here is a patch that you can try: --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c _at__at_ -270,14 +270,16 _at__at_ vdev_geom_read_config(struct g_consumer *cp, nvlist_t **config) continue; if (nvlist_lookup_uint64(*config, ZPOOL_CONFIG_POOL_STATE, - &state) != 0 || state >= POOL_STATE_DESTROYED) { + &state) != 0 || state == POOL_STATE_DESTROYED || + state > POOL_STATE_L2CACHE) { nvlist_free(*config); *config = NULL; continue; } - if (nvlist_lookup_uint64(*config, ZPOOL_CONFIG_POOL_TXG, - &txg) != 0 || txg == 0) { + if (state != POOL_STATE_SPARE && state != POOL_STATE_L2CACHE && + (nvlist_lookup_uint64(*config, ZPOOL_CONFIG_POOL_TXG, + &txg) != 0 || txg == 0)) { nvlist_free(*config); *config = NULL; continue; I think that I introduced this bug because I used some old OpenSolaris code as an inspiration and completely missed the new states. -- Andriy GaponReceived on Tue Oct 23 2012 - 18:23:32 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:31 UTC