Date: Wed, 9 Jul 2008 01:20:03 GMT From: =?ISO-8859-1?Q?Javier_Mart=EDn_Rueda?= <jmrueda@diatel.upm.es> To: freebsd-bugs@FreeBSD.org Subject: Re: kern/125413: Panic when doing zfs raidz with gmirror and ggate Message-ID: <200807090120.m691K3gX021705@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/125413; it has been noted by GNATS. From: =?ISO-8859-1?Q?Javier_Mart=EDn_Rueda?= <jmrueda@diatel.upm.es> To: bug-followup@FreeBSD.org, jmrueda@diatel.upm.es Cc: Subject: Re: kern/125413: Panic when doing zfs raidz with gmirror and ggate Date: Wed, 09 Jul 2008 02:52:39 +0200 This is a multi-part message in MIME format. --------------080503070700060808010208 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit I attach a console dump of the panic. --------------080503070700060808010208 Content-Type: text/plain; name="p2bis.txt" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="p2bis.txt" NOTE: in this dump, I was using da0s1, da1s1, etc. instead of da0, da1... # sysctl kern.geom.debugflags=5 # sysctl kern.geom.mirror.debug=2 # sysctl vfs.zfs.debug=1 # zpool create z1 raidz2 mirror/gm0 mirror/gm1 mirror/gm2 mirror/gm3 mirror/gm4 mirror/gm5 mirror/gm6 mirror/gm7 g_dev_open(mirror/gm0, 1, 8192, 0xc422d880) g_access(0xc3fb8d40(mirror/gm0), 1, 0, 0) open delta:[r1w0e0] old:[r0w0e0] provider:[r0w0e0] 0xc4184980(mirror/gm0) GEOM_MIRROR[2]: Access request for mirror/gm0: r1w0e0. g_dev_close(mirror/gm0, 1, 8192, 0xc422d880) g_access(0xc3fb8d40(mirror/gm0), -1, 0, 0) open delta:[r-1w0e0] old:[r1w0e0] provider:[r1w0e0] 0xc4184980(mirror/gm0) GEOM_MIRROR[2]: Accest for mirror/gm0: r-1w0e0. g_dev_open(mirror/gm0, 1, 8192, 0xc422d880) g_access(0xc3fb8d40(mirror/gm0), 1, 0, 0) open delta:[r1w0e0] old:[r0w0e0] provider:[r0w0e0] 0xc4184980(mirror/gm0) GEOM_MIRROR[2]: Access request for mirror/gm0: r1w0e0. g_dev_close(mirror/gm0, 1, 8192, 0xc422d880) g_access(0xc3fb8d40(mirror/gm0), -1, 0, 0) open delta:[r-1w0e0] old:[r1w0e0] provider:[r1w0e0] 0xc4184980(mirror/gm0) GEOM_MIRROR[2]: Access request for mirror/gm0: r-1w0e0. g_dev_open(mirror/gm1, 1, 8192, 0xc422d880) g_access(0xc419c100(mirror/gm1), 1, 0, 0) open delta:[r1w0e0] old:[r0w0e0] provider:[r0w0e0] 0xc3b57700(mirror/gm1) GEOM_MIRROR[2]: Access request for mirror/gm1: r1w0e0. g_dev_close(mirror/gm1, 1, 8192, 0xc422d880) g_access(0xc419c100(mirror/gm1), -1, 0, 0) open delta:[r-1w0e0] old:[r1w0e0] provider:[r1w0e0] 0xc3b57700(mirror/gm1) GEOM_MIRROR[2]: Access request for mirror/gm1: r-1w0e0. g_dev_open(mirror/gm1, 1, 8192, 0xc422d880) g_access(0xc419c100(mirror/gm1), 1, 0, 0) open delta:[r1w0e0] old:[r0w0e0] provider:[r0w0e0] 0xc3b57700(mirror/gm1) GEOM_MIRROR[2]: Access request for mirror/gm1: r1w0e0. g_dev_close(mirror/gm1, 1, 8192, 0xc422d880) g_access(0xc419c100(mirror/gm1), -1, 0, 0) open delta:[r-1w0e0] old:[r1w0e0] provider:[r1w0e0] 0xc3b57700(mirror/gm1) GEOM_MIRROR[2]: Access request for mirror/gm1: r-1w0e0. g_dev_open(mirror/gm2, 1, 8192, 0xc422d880) g_access(0xc419dbc0(mirror/gm2), 1, 0, 0) open delta:[r1w0e0] old:[r0w0e0] provider:[r0w0e0] 0xc3f1d400(mirror/gm2) GEOM_MIRROR[2]: Access request for mirror/gm2: r1w0e0. g_dev_close(mirror/gm2, 1, 8192, 0xc422d880) g_access(0xc419dbc0(mirror/gm2), -1, 0, 0) open delta:[r-1w0e0] old:[r1w0e0] provider:[r1w0e0] 0xc3f1d400(mirror/gm2) GEOM_MIRROR[2]: Access request for mirror/gm2: r-1w0e0. g_dev_open(mirror/gm2, 1, 8192, 0xc422d880) g_access(0xc419dbc0(mirror/gm2), 1, 0, 0) open delta:[r1w0e0] old:[r0w0e0] provider:[r0w0e0] 0xc3f1d400(mirror/gm2) GEOM_MIRROR[2]: Access request for mirror/gm2: r1w0e0. g_dev_close(mirror/gm2, 1, 8192, 0xc422d880) g_access(0xc419dbc0(mirror/gm2), -1, 0, 0) open delta:[r-1w0e0] old:[r1w0e0] provider:[r1w0e0] 0xc3f1d400(mirror/gm2) GEOM_MIRROR[2]: Access request for mirror/gm2: r-1w0e0. g_dev_open(mirror/gm3, 1, 8192, 0xc422d880) g_access(0xc4b60c00(mirror/gm3), 1, 0, 0) open delta:[r1w0e0] old:[r0w0e0] provider:[r0w0e0] 0xc3f2a900(mirror/gm3) GEOM_MIRROR[2]: Access request for mirror/gm3: r1w0e0. g_dev_close(mirror/gm3, 1, 8192, 0xc422d880) g_access(0xc4b60c00(mirror/gm3), -1, 0, 0) open delta:[r-1w0e0] old:[r1w0e0] provider:[r1w0e0] 0xc3f2a900(mirror/gm3) GEOM_MIRROR[2]: Access request for mirror/gm3: r-1w0e0. g_dev_open(mirror/gm3, 1, 8192, 0xc422d880) g_access(0xc4b60c00(mirror/gm3), 1, 0, 0) open delta:[r1w0e0] old:[r0w0e0] provider:[r0w0e0] 0xc3f2a900(mirror/gm3) GEOM_MIRROR[2]: Access request for mirror/gm3: r1w0e0. g_dev_close(mirror/gm3, 1, 8192, 0xc422d880) g_access(0xc4b60c00(mirror/gm3), -1, 0, 0) open delta:[r-1w0e0] old:[r1w0e0] provider:[r1w0e0] 0xc3f2a900(mirror/gm3) GEOM_MIRROR[2]: Access request for mirror/gm3: r-1w0e0. g_dev_open(mirror/gm4, 1, 8192, 0xc422d880) g_access(0xc3fb8dc0(mirror/gm4), 1, 0, 0) open delta:[r1w0e0] old:[r0w0e0] provider:[r0w0e0] 0xc3ecf000(mirror/gm4) GEOM_MIRROR[2]: Access request for mirror/gm4: r1w0e0. g_dev_close(mirror/gm4, 1, 8192, 0xc422d880) g_access(0xc3fb8dc0(mi0) open delta:[r-1w0e0] old:[r1w0e0] provider:[r1w0e0] 0xc3ecf000(mirror/gm4) GEOM_MIRROR[2]: Access request for mirror/gm4: r-1w0e0. g_dev_open(mirror/gm4, 1, 8192, 0xc422d880) g_access(0xc3fb8dc0(mirror/gm4), 1, 0, 0) open delta:[r1w0e0] old:[r0w0e0] provider:[r0w0e0] 0xc3ecf000(mirror/gm4) GEOM_MIRROR[2]: Access request for mirror/gm4: r1w0e0. g_dev_close(mirror/gm4, 1, 8192, 0xc422d880) g_access(0xc3fb8dc0(mirror/gm4), -1, 0, 0) open delta:[r-1w0e0] old:[r1w0e0] provider:[r1w0e0] 0xc3ecf000(mirror/gm4) GEOM_MIRROR[2]: Access request for mirror/gm4: r-1w0e0. g_dev_open(mirror/gm5, 1, 8192, 0xc422d880) g_access(0xc3fb94c0(mirror/gm5), 1, 0, 0) open delta:[r1w0e0] old:[r0w0e0] provider:[r0w0e0] 0xc417e400(mirror/gm5) GEOM_MIRROR[2]: Access request for mirror/gm5: r1w0e0. g_dev_close(mirror/gm5, 1, 8192, 0xc422d880) g_access(0xc3fb94c0(mirror/gm5), -1, 0, 0) open delta:[r-1w0e0] old:[r1w0e0] provider:[r1w0e0] 0xc417e400(mirror/gm5) GEOM_MIRROR[2]: Access request for mirror/gm5: r-1w0e0. g_dev_open(mirror/gm5, 1, 8192, 0xc422d880) g_access(0xc3fb94c0(mirror/gm5), 1, 0, 0) open delta:[r1w0e0] old:[r0w0e0] provider:[r0w0e0] 0xc417e400(mirror/gm5) GEOM_MIRROR[2]: Access request for mirror/gm5: r1w0e0. g_dev_close(mirror/gm5, 1, 8192, 0xc422d880) g_access(0xc3fb94c0(mirror/gm5), -1, 0, 0) open delta:[r-1w0e0] old:[r1w0e0] provider:[r1w0e0] 0xc417e400(mirror/gm5) GEOM_MIRROR[2]: Access request for mirror/gm5: r-1w0e0. g_dev_open(mirror/gm6, 1, 8192, 0xc422d880) g_access(0xc4b60c40(mirror/gm6), 1, 0, 0) open delta:[r1w0e0] old:[r0w0e0] provider:[r0w0e0] 0xc3ed5000(mirror/gm6) GEOM_MIRROR[2]: Access request for mirror/gm6: r1w0e0. g_dev_close(mirror/gm6, 1, 8192, 0xc422d880) g_access(0xc4b60c40(mirror/gm6), -1, 0, 0) open delta:[r-1w0e0] old:[r1w0e0] provider:[r1w0e0] 0xc3ed5000(mirror/gm6) GEOM_MIRROR[2]: Access request for mirror/gm6: r-1w0e0. g_dev_open(mirror/gm6, 1, 8192, 0xc422d880) g_access(0xc4b60c40(mirror/gm6), 1, 0, 0) open delta:[r1w0e0] old:[r0w0e0] provider:[r0w0e0] 0xc3ed5000(mirror/gm6) GEOM_MIRROR[2]: Access request for mirror/gm6: r1w0e0. g_dev_close(mirror/gm6, 1, 8192, 0xc422d880) g_access(0xc4b60c40(mirror/gm6), -1, 0, 0) open delta:[r-1w0e0] old:[r1w0e0] provider:[r1w0e0] 0xc3ed5000(mirror/gm6) GEOM_MIRROR[2]: Access request for mirror/gm6: r-1w0e0. g_dev_open(mirror/gm7, 1, 8192, 0xc422d880) g_access(0xc419c780(mirror/gm7), 1, 0, 0) open delta:[r1w0e0] old:[r0w0e0] provider:[r0w0e0] 0xc417e180(mirror/gm7) GEOM_MIRROR[2]: Access request for mirror/gm7: r1w0e0. g_dev_close(mirror/gm7, 1, 8192, 0xc422d880) g_access(0xc419c780(mirror/gm7), -1, 0, 0) open delta:[r-1w0e0] old:[r1w0e0] provider:[r1w0e0] 0xc417e180(mirror/gm7) GEOM_MIRROR[2]: Access request for mirror/gm7: r-1w0e0. g_dev_open(mirror/gm7, 1, 8192, 0xc422d880) g_access(0xc419c780(mirror/gm7), 1, 0, 0) open delta:[r1w0e0] old:[r0w0e0] provider:[r0w0e0] 0xc417e180(mirror/gm7) GEOM_MIRROR[2]: Access request for mirror/gm7: r1w0e0. g_dev_close(mirror/gm7, 1, 8192, 0xc422d880) g_access(0xc419c780(mirror/gm7), -1, 0, 0) open delta:[r-1w0e0] old:[r1w0e0] provider:[r1w0e0] 0xc417e180(mirror/gm7) GEOM_MIRROR[2]: Access request for mirror/gm7: r-1w0e0. g_post_t_x(0xc0720910, 0xc4a69560, 2, 262144) g_post_event_x(0xc0720910, 0xc48c9280, 2, 262144) g_post_event_x(0xc0720910, 0xc44c1080, 2, 262144) g_post_event_x(0xc0720910, 0xc496d120, 2, 262144) g_post_event_x(0xc0720910, 0xc4abd0a0, 2, 262144) g_post_event_x(0xc0720910, 0xc4abd0e0, 2, 262144) g_post_event_x(0xc0720910, 0xc4abd120, 2, 262144) g_post_event_x(0xc0720910, 0xc4abd160, 2, 262144) g_dev_open(mirror/gm0, 1, 8192, 0xc422d880) g_access(0xc3fb8d40(mirror/gm0), 1, 0, 0) open delta:[r1w0e0] old:[r0w0e0] provider:[r0w0e0] 0xc4184980(mirror/gm0) GEOM_MIRROR[2]: Access request for mirror/gm0: r1w0e0. g_dev_close(mirror/gm0, 1, 8192, 0xc422d880) g_access(0xc3fb8d40(mirror/gm0), -1, 0, 0) open delta:[r-1w0e0] old:[r1w0e0] provider:[r1w0e0] 0xc4184980(mirror/gm0) GEOM_MIRROR[2]: Access request for mirror/gm0: r-1w0e0. g_dev_open(mirror/gm1, 1, 8192, 0xc422d880) g_access(0xc419c100(mirror/gm1), 1, 0, 0) open delta:[r1w0e0] old:[r0w0e0] provider:[r0w0e0] 0xc3b57700(mirror/gm1) GEOM_MIRROR[2]: Access request for mirror/gm1: r1w0e0. g_dev_close(mirror/gm1, 1, 8192, 0xc422d880) g_access(0xc419c100(mirror/gm1), -1, 0, 0) open delta:[r-1w0e0] old:[r1w0e0] provider:[r1w0e0] 0xc3b57700(mirror/gm1) GEOM_MIRROR[2]: Access request for mirror/gm1: r-1w0e0. g_dev_open(mirror/gm2, 1, 8192, 0xc422d880) g_access(0xc419dbc0(mirror/gm2), 1, 0, 0) open delta:[r1w0e0] old:[r0w0e0] provider:[r0w0e0] 0xc3f1d400(mirror/gm2) GEOM_MIRROR[2]: Access request for mirror/gm2: r1w0e0. g_dev_close(mirror/gm2, 1, 8192, 0xc422d880) g_access(0xc419dbc0(mirror/gm2), -1, 0, 0) open delta:[r-1w0e0] old:[r1w0e0] provider:[r1w0e0] 0xc3f1d400(mirror/gm2) GEOM_MIRROR[2]: Access request for mirror/gm2: r-1w0e0. g_dev_open(mirror/gm3, 1, 8192, 0xc422d880) g_access(0xc4b60c00(mirror/gm3), 1, 0, 0) open delta:[r1w0e0] old:[r0w0e0] provider:[r0w0e0] 0xc3f2a900(mirror/gm3) GEOM_MIRROR[2]: Access request for mirror/gm3: r1w0e0. g_dev_close(mirror/gm3, 1, 8192, 0xc422d880) g_access(0xc4b60c00(mirror/gm3), -1, 0, 0) open delta:[r-1w0e0] old:[r1w0e0] provider:[r1w0e0] 0xc3f2a900(mirror/gm3) GEOM_MIRROR[2]: Access request for mirror/gm3: r-1w0e0. g_dev_open(mirror/gm4, 1, 8192, 0xc422d880) g_access(0xc3fb8dc0(mirror/gm4), 1, 0, 0) open delta:[r1w0e0] old:[r0w0e0] provider:[r0w0e0] 0xc3ecf000(mirror/gm4) GEOM_MIRROR[2]: Access request for mirror/gm4: r1w0e0. g_dev_close(mirror/gm4, 1, 8192, 0xc422d880) g_access(0xc3fb8dc0(mirror/gm4), -1, 0, 0) open delta:[r-1w0e0] old:[r1w0e0] provider:[r1w0e0] 0xc3ecf000(mirror/gm4) GEOM_MIRROR[2]: Access request for mirror/gm4: r-1w0e0. g_dev_open(mirror/gm5, 1, 8192, 0xc422d880) g_access(0xc3fb94c0(mirror/gm5), 1, 0, 0) open delta:[r1w0e0] old:[r0w0e0] provider:[r0w0e0] 0xc417e400(mirror/gm5) GEOM_MIRROR[2]: Access request for mirror/gm5: r1w0e0. g_dev_close(mirror/gm5, 1, 8192, 0xc422d880) g_access(0xc3fb94c0(mirror/gm5), -1, 0, 0) open delta:[r-1w0e0] old:[r1w0e0] provider:[r1w0e0] 0xc417e400(mirror/gm5) GEOM_MIRROR[2]: Access request for mirror/gm5: r-1w0e0. g_dev_open(mirror/gm6, 1, 8192, 0xc422d880) g_access(0xc4b60c40(mirror/gm6), 1, 0, 0) open delta:[r1w0e0] old:[r0w0e0] provider:[r0w0e0] 0xc3ed5000(mirror/gm6) GEOM_MIRROR[2]: Access request for mirror/gm6: r1w0e0. g_dev_close(mirror/gm6, 1, 8192, 0xc422d880) g_access(0xc4b60c40(mirror/gm6), -1, 0, 0) open delta:[r-1w0e0] old:[r1w0e0] provider:[r1w0e0] 0xc3ed5000(mirror/gm6) GEOM_MIRROR[2]: Access request for mirror/gm6: r-1w0e0. g_dev_open(mirror/gm7, 1, 8192, 0xc422d880) g_access(0xc419c780(mirror/gm7), 1, 0, 0) open delta:[r1w0e0] old:[r0w0e0] provider:[r0w0e0] 0xc417e180(mirror/gm7) GEOM_MIRROR[2]: Access request for mirror/gm7: r1w0e0. g_dev_close(mirror/gm7, 1, 8192, 0xc422d880) g_access(0xc419c780(mirror/gm7), -1, 0, 0) open delta:[r-1w0e0] old:[r1w0e0] provider:[r1w0e0] 0xc417e180(mirror/gm7) GEOM_MIRROR[2]: Access request for mirror/gm7: r-1w0e0. vdev_geom_open:371[1]: Found provider by name /dev/mirror/gm0. vdev_geom_attach:116[1]: Attaching to mirror/gm0. g_access(0xc41a4800(mirror/gm0), 1, 1, 1) open delta:[r1w1e1] old:[r0w0e0] provider:[r0w0e0] 0xc4184980(mirror/gm0) GEOM_MIRROR[2]: Access request for mirror/gm0: r1w1e1. g_post_event_x(0xc0724990, 0xc4184980, 2, 0) ref 0xc4184980 vdev_geom_attach:137[1]: Created geom and consumer for mirror/gm0. vdev_geom_open:371[1]: Found provider by name /dev/mirror/gm1. vdev_geom_attach:116[1]: Attaching to mirror/gm1. g_access(0xc41a49c0(mirror/gm1), 1, 1, 1) open delta:[r1w1e1] old:[r0w0e0] provider:[r0w0e0] 0xc3b57700(mirror/gm1) GEOM_MIRROR[2]: Access request for mirror/gm1: r1w1e1. g_post_event_x(0xc0724990, 0xc3b57700, 2, 0) ref 0xc3b57700 vdev_geom_attach:157[1]: Created consumer for mirror/gm1. vdev_geom_open:371[1]: Found provider by name /dev/mirror/gm2. vdev_geom_attach:116[1]: Attaching to mirror/gm2. g_access(0xc419da80(mirror/gm2), 1, 1, 1) open delta:[r1w1e1] old:[r0w0e0] provider:[r0w0e0] 0xc3f1d400(mirror/gm2) GEOM_MIRROR[2]: Access request for mirror/gm2: r1w1e1. g_post_event_x(0xc0724990, 0xc3f1d400, 2, 0) ref 0xc3f1d400 vdev_geom_attach:157[1]: Created consumer for mirror/gm2. vdev_geom_open:371[1]: Found provider by name /dev/mirror/gm3. vdev_geom_attach:116[1]: Attaching to mirror/gm3. g_access(0xc4b60940(mirror/gm3), 1, 1, 1) open delta:[r1w1e1] old:[r0w0e0] provider:[r0w0e0] 0xc3f2a900(mirror/gm3) GEOM_MIRROR[2]: Access request for mirror/gm3: r1w1e1. g_post_event_x(0xc0724990, 0xc3f2a900, 2, 0) ref 0xc3f2a900 vdev_geom_attach:157[1]: Created consumer for mirror/gm3. vdev_geom_open:371[1]: Found provider by name /dev/mirror/gm4. vdev_geom_attach:116[1]: Attaching to mirror/gm4. g_access(0xc4b61140(mirror/gm4), 1, 1, 1) open delta:[r1w1e1] old:[r0w0e0] provider:[r0w0e0] 0xc3ecf000(mirror/gm4) GEOM_MIRROR[2]: Access request for mirror/gm4: r1w1e1. g_post_event_x(0xc0724990, 0xc3ecf000, 2, 0) ref 0xc3ecf000 vdev_geom_attach:157[1]: Created consumer for mirror/gm4. vdev_geom_open:371[1]: Found provider by name /dev/mirror/gm5. vdev_geom_attach:116[1]: Attaching to mirror/gm5. g_access(0xc4b60800(mirror/gm5), 1, 1, 1) open delta:[r1w1e1] old:[r0w0e0] provider:[r0w0e0] 0xc417e400(mirror/gm5) GEOM_MIRROR[2]: Access request for mirror/gm5: r1w1e1. g_post_event_x(0xc0724990, 0xc417e400, 2, 0) ref 0xc417e400 vdev_geom_attach:157[1]: Created consumer for mirror/gm5. vdev_geom_open:371[1]: Found provider by name /dev/mirror/gm6. vdev_geom_attach:116[1]: Attaching to mirror/gm6. g_access(0xc4b60c80(mirror/gm6), 1, 1, 1) open delta:[r1w1e1] old:[r0w0e0] provider:[r0w0e0] 0xc3ed5000(mirror/gm6) GEOM_MIRROR[2]: Access request for mirror/gm6: r1w1e1. g_post_event_x(0xc0724990, 0xc3ed5000, 2, 0) ref 0xc3ed5000 vdev_geom_attach:157[1]: Created consumer for mirror/gm6. vdev_geom_open:371[1]: Found provider by name /dev/mirror/gm7. vdev_geom_attach:116[1]: Attaching to mirror/gm7. g_access(0xc419d240(mirror/gm7), 1, 1, 1) open delta:[r1w1e1] old:[r0w0e0] provider:[r0w0e0] 0xc417e180(mirror/gm7) GEOM_MIRROR[2]: Access request for mirror/gm7: r1w1e1. g_post_event_x(0xc0724990, 0xc417e180, 2, 0) ref 0xc417e180 vdev_geom_attach:157[1]: Created consumer for mirror/gm7. GEOM_MIRROR[1]: Disk da0s1 (device gm0) marked as dirty. GEOM_MIRROR[2]: Metadata on da0s1 updated. GEOM_MIRROR[1]: Disk ggate0 (device gm0) marked as dirty. GEOM_MIRROR[2]: Metadata on ggate0 updated. GEOM_MIRROR[1]: Disk da1s1 (device gm1) marked as dirty. GEOM_MIRROR[2]: Metadata on da1s1 updated. GEOM_MIRROR[1]: Disk ggate1 (device gm1) marked as dirty. GEOM_MIRROR[2]: Metadata on ggate1 updated. GEOM_MIRROR[1]: Disk da2s1 (device gm2) marked as dirty. GEOM_MIRROR[2]: Metadata on da2s1 updated. GEOM_MIRROR[1]: Disk ggate2 (device gm2) marked as dirty. GEOM_MIRROR[2]: Metadata on ggate2 updated. GEOM_MIRROR[1]: Disk da3s1 (device gm3) marked as dirty. GEOM_MIRROR[2]: Metadata on da3s1 updated. GEOM_MIRROR[1]: Disk ggate3 (device gm3) marked as dirty. GEOM_MIRROR[2]: Metadata on ggate3 updated. GEOM_MIRROR[1]: Disk da4s1 (device gm4) marked as dirty. GEOM_MIRROR[2]: Metadata on da4s1 updated. GEOM_MIRROR[1]: Disk ggate4 (device gm4) marked as dirty. GEOM_MIRROR[2]: Metadata on ggate4 updated. GEOM_MIRROR[1]: Disk da5s1 (device gm5) marked as dirty. GEOM_MIRROR[2]: Metadata on da5s1 updated. GEOM_MIRROR[1]: Disk ggate5 (device gm5) marked as dirty. GEOM_MIRROR[2]: Metadata on ggate5 updated. GEOM_MIRROR[1]: Disk da6s1 (device gm6) marked as dirty. GEOM_MIRROR[2]: Metadata on da6s1 updated. GEOM_MIRROR[1]: Disk ggate6 (device gm6) marked as dirty. GEOM_MIRROR[2]: Metadata on ggate6 updated. GEOM_MIRROR[1]: Disk da7s1 (device gm7) marked as dirty. GEOM_MIRROR[2]: Metadata on da7s1 updated. GEOM_MIRROR[1]: Disk ggate7 (device gm7) marked as dirty. GEOM_MIRROR[2]: Metadata on ggate7 updated. g_disk_flushcache(da0) g_disk_flushcache(da1) g_disk_flushcache(da2) g_disk_flushcache(da3) g_disk_flushcache(da4) g_disk_flushcache(da5) g_disk_flushcache(da6) g_disk_flushcache(da7) NOTE: this is when vdev_reopen gets called. g_post_event_x(0xc0e185a0, 0xc41a4800, 2, 0) vdev_geom_detach:177[1]: Closing access to mirror/gm0. g_access(0xc41a4800(mirror/gm0), -1, 0, -1) open delta:[r-1w0e-1] old:[r1w1e1] provider:[r1w1e1] 0xc4184980(mirror/gm0) GEOM_MIRROR[2]: Access request for mirror/gm0: r-1w0e-1. vdev_geom_detach:181[1]: Destroyed consumer to mirror/gm0. g_access(0xc41a4800(mirror/gm0), 0, -1, 0) open delta:[r0w-1e0] old:[r0w1e0] provider:[r0w1e0] 0xc4184980(mirror/gm0) GEOM_MIRROR[2]: Access request for mirror/gm0: r0w-1e0. GEOM_MIRROR[1]: Disk da0s1 (device gm0) marked as clean. g_poGEOM_MIRROR[2]: Metadata on da0s1 updated. GEOM_MIRROR[1]: Disk ggate0 (device gm0) marked as clean. st_event_x(0xc0e185a0, 0xc41a49c0, 2, 0) g_post_event_x(0xc0e185a0, 0xc419da80, 2, 0) g_post_event_x(0xc0e185a0, 0xc4b60940, 2, 0) g_post_event_x(0xc0e185a0, 0xc4b61140, 2, 0) g_post_event_x(0xc0e185a0, 0xc4b60800, 2, 0) g_post_event_x(0xc0e185a0, 0xc4b60c80, 2, 0) g_post_event_x(0xc0e185a0, 0xc419d240, 2, 0) NOTE: the above geom events are the vdev_geom_detach of vdev_close for 8 devices. The first one is processed, but the others remain in the queue when vdev_close returns. At this moment, vdev_reopen resumes and invokes vdev_open. The consumer for gm0 has been destroyed already, but the zfs::vdev geom still exists, as 7 of the consumers still appear as active. vdev_open reuses the consumer for gm0, but now it has no provider (it is a null pointer), and as soon as the code attempts to access the provider, it faults. See below. vdev_geom_open:371[1]: Found provider by name /dev/mirror/gm0. vdev_geom_attach:116[1]: Attaching to mirror/gm0. vdev_geom_attach:142[1]: Found consumer for mirror/gm0. g_access(0xc41a4800(mirror/gm0), 1, 0, 1) open delta:[r1w0e1] old:[r0w1e0] provider:[r0w1e0] 0xc4184980(mirror/gm0) GEOM_MIRROR[2]: Access request for mirror/gm0: r1w0e1. GEOM_MIRROR[2]: Metadata on ggate0 updated. g_post_event_x(0xc0724790, 0xc4184980, 2, 0) ref 0xc4184980 g_detach(0xc41a4800) g_destroy_consumer(0xc41a4800) vdev_geom_detach:177[1]: Closing access to mirror/gm1. g_access(0xc41a49c0(mirror/gm1), -1, 0, -1) open delta:[r-1w0e-1] old:[r1w1e1] provider:[r1w1e1] 0xc3b57700(mirror/gm1) GEOM_MIRROR[2]: Access request for mirror/gm1: r-1w0e-1. vdev_geom_detach:181[1]: Destroyed consumer to mirror/gm1. g_access(0xc41a49c0(mirror/gm1), 0, -1, 0) open delta:[r0w-1e0] old:[r0w1e0] provider:[r0w1e0] 0xc3b57700(mirror/gm1) GEOM_MIRROR[2]: Access request for mirror/gm1: r0w-1e0. GEOM_MIRROR[1]: Disk da1s1 (device gm1) marked as clean. vdev_geom_attach:161[1]: Used existing consumer for mirror/gm0. Fatal trap GEOM_MIRROR[2]: Metadata on da1s1 updated. GEOM_MIRROR[1]: Disk ggate1 (device gm1) marked as clean. 12: page fault while in kernel mode cpuid = 0; apic id = 00 fault virtual address = 0x30 fault code = supervisor read, page not present instruction pointer = 0x20:0xc0e193d6 stack pointer = 0x28:0xe0489aa0 frame pointer = 0x28:0xe0489ae4 code segment = base 0x0, limit 0xfffff, type 0x1b = DPL 0, pres 1, def32 1, gran 1 processor eflags = interrupt enabled, resume, IOPL = 0 current process = 1053 (solthread 0xc0dcfa7) [thread pid 1053 tid 100113 ] Stopped at vdev_geom_open+0x6d6: movl 0x30(%eax),%edx As I said in the bug report, the above instruction corresponds to vdev_geom.c:420. --------------080503070700060808010208--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200807090120.m691K3gX021705>