7.3-STABLE 'zfs attach' results in geom guid mismatch?

Karl Pielorz kpielorz_lst at tdx.co.uk
Tue Jul 6 13:03:49 UTC 2010


Hi All,

This is related to a post I made the other day in freebsd-fs, which didn't 
get any replies (I'm a bit desperate as I need to replace a failing drive 
on the system - hence need to attach a spare - so apologies for the kind of 
cross-post)...

I'm running 7.3-STABLE on an amd64, w/10Gb of RAM, and 2 * dual core 
Opteron 285's.

When I do a 'zfs attach' the system hangs with no I/O - everything that 
touches zfs hangs. Doing some digging around (turning on ZFS debug) I see:

host# zfs attach vol ad34 ad40

"
vdev_geom_attach:112[1]: Attaching to ad40.
vdev_geom_attach:153[1]: Created consumer for ad40.
vdev_geom_read_guid:334[1]: guid for ad40 is 13247785578180267154
vdev_geom_detach:173[1]: Closing access to ad40.
vdev_geom_detach:177[1]: Destroyed consumer to ad40.
vdev_geom_open_by_path:472[1]: guid mismatch for provider /dev/ad40: 
835553262974889329 != 13247785578180267154.
vdev_geom_open_by_guid:430[1]: Searching by guid [835553262974889329].
"

Should I be worried about that first "mismatch for provider"?

It then seems to iterate through all the disk devices on the system 
(including some ZFS 'volumes') before appearing to hang on one of those 
(i.e. with GEOM debug turned on) the end of output is:

"
...
Jul  5 19:42:50 host kernel: 
g_access(0xffffff0035015380(zvol/vol2/zfs_backups/scanned), 1, 0, 0)
Jul  5 19:42:50 host kernel: open delta:[r1w0e0] old:[r0w0e0] 
provider:[r0w0e0] 0xffffff000e1fd000(zvol/vol2/zfs_backups/scanned)
Jul  5 19:42:50 host kernel: 
g_access(0xffffff0035015380(zvol/vol2/zfs_backups/scanned), -1, 0, 0)
Jul  5 19:42:50 host kernel: open delta:[r-1w0e0] old:[r1w0e0] 
provider:[r1w0e0] 0xffffff000e1fd000(zvol/vol2/zfs_backups/scanned)
Jul  5 19:42:50 host kernel: g_detach(0xffffff0035015380)
Jul  5 19:42:50 host kernel: 
g_access(0xffffff0035015380(zvol/vol/scanned at 1237495449), 1, 0, 0)
Jul  5 19:42:50 host kernel: open delta:[r1w0e0] old:[r0w0e0] 
provider:[r0w0e0] 0xffffff000e60b300(zvol/vol/scanned at 1237495449)
[hangs here]
"

ps axl at that point shows:

"
 0  2250  2004   0  -8  0 14460  2044 g_wait D+    p0    0:00.01 zpool 
attach vol ad34 ad40
"

So it appears to be hung in 'g_wait'.

Any suggestions?


-Karl


More information about the freebsd-hackers mailing list