g_mirror_access() dropping geom topology_lock [Was: Kernel crash trying to import a ZFS pool with log device]

Andreas Longwitz longwitz at incore.de
Fri Mar 21 10:52:16 UTC 2014


Thanks for the quick analysis,

> I read the above as thread A entering vdev_geom_open_by_path and trying to
> "taste" /dev/mirror/gm0p3.
> 
>> g_post_event_x(0xffffffff80b16830, 0xffffff0096b24180, 2, 0)
>> vdev_geom_detach:163[1]: Closing access to mirror/gm0p3.
>> g_access(0xffffff0096b24180(mirror/gm0p3), -1, 0, -1)
>> open delta:[r-1w0e-1] old:[r1w0e1] provider:[r1w0e1]
>> 0xffffff00969c7e00(mirror/gm0p3)
> 
> 
> Simultaneously thread B is closing access /dev/mirror/gm0p3.
> It is not clear from the quoted log when and how this thread B got access to the
> device in the first place.

OK, my snip of the console output was not correct. The complete output
after the command "zpool import" follows.

_post_event_x(0xffffffff8039b8f0, 0xffffff0002c07680, 2, 262144)
g_post_event_x(0xffffffff8039b8f0, 0xffffff0096615280, 2, 262144)
g_dev_open(acd0, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002aa5300(acd0), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r0w0e0] 0xffffff0002ad6a00(acd0)
g_dev_close(acd0, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002aa5300(acd0), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r1w0e0] 0xffffff0002ad6a00(acd0)
g_dev_open(da0, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002a0cc80(da0), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r1w1e1] 0xffffff00029f1d00(da0)
g_disk_access(da0, 1, 0, 0)
g_dev_close(da0, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002a0cc80(da0), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r2w1e1] 0xffffff00029f1d00(da0)
g_disk_access(da0, -1, 0, 0)
g_dev_open(da1, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002a69180(da1), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r1w1e1] 0xffffff0002a23500(da1)
g_disk_access(da1, 1, 0, 0)
g_dev_close(da1, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002a69180(da1), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r2w1e1] 0xffffff0002a23500(da1)
g_disk_access(da1, -1, 0, 0)
g_dev_open(da2, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002a69280(da2), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r0w0e0] 0xffffff0002a23800(da2)
g_disk_access(da2, 1, 0, 0)
g_dev_close(da2, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002a69280(da2), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r1w0e0] 0xffffff0002a23800(da2)
g_disk_access(da2, -1, 0, 0)
g_dev_open(da3, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002a69480(da3), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r0w0e0] 0xffffff0002a23b00(da3)
g_disk_access(da3, 1, 0, 0)
g_dev_close(da3, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002a69480(da3), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r1w0e0] 0xffffff0002a23b00(da3)
g_disk_access(da3, -1, 0, 0)
g_dev_open(da4, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002a69600(da4), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r1w1e1] 0xffffff00023c5000(da4)
g_disk_access(da4, 1, 0, 0)
g_dev_close(da4, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002a69600(da4), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r2w1e1] 0xffffff00023c5000(da4)
g_disk_access(da4, -1, 0, 0)
g_dev_open(da5, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002a16280(da5), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r1w1e1] 0xffffff0002a5fb00(da5)
g_disk_access(da5, 1, 0, 0)
g_dev_close(da5, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002a16280(da5), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r2w1e1] 0xffffff0002a5fb00(da5)
g_disk_access(da5, -1, 0, 0)
g_dev_open(label/C325BL31, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002ba7e00(label/C325BL31), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r0w0e0]
0xffffff0002c0d400(label/C325BL31)
g_access(0xffffff0002ba7300(da2), 1, 0, 1)
open delta:[r1w0e1] old:[r0w0e0] provider:[r0w0e0] 0xffffff0002a23800(da2)
g_disk_access(da2, 1, 0, 1)
g_dev_close(label/C325BL31, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002ba7e00(label/C325BL31), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r1w0e0]
0xffffff0002c0d400(label/C325BL31)
g_access(0xffffff0002ba7300(da2), -1, 0, -1)
open delta:[r-1w0e-1] old:[r1w0e1] provider:[r1w0e1] 0xffffff0002a23800(da2)
g_disk_access(da2, -1, 0, -1)
g_dev_open(label/C330CJHW, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002a16700(label/C330CJHW), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r0w0e0]
0xffffff0002c02100(label/C330CJHW)
g_access(0xffffff0002b96280(da3), 1, 0, 1)
open delta:[r1w0e1] old:[r0w0e0] provider:[r0w0e0] 0xffffff0002a23b00(da3)
g_disk_access(da3, 1, 0, 1)
g_dev_close(label/C330CJHW, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002a16700(label/C330CJHW), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r1w0e0]
0xffffff0002c02100(label/C330CJHW)
g_access(0xffffff0002b96280(da3), -1, 0, -1)
open delta:[r-1w0e-1] old:[r1w0e1] provider:[r1w0e1] 0xffffff0002a23b00(da3)
g_disk_access(da3, -1, 0, -1)
g_dev_open(md0, 1, 8192, 0xffffff0096017000)
g_access(0xffffff00961f1900(md0), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r1w1e1] 0xffffff00961b2800(md0)
g_dev_close(md0, 1, 8192, 0xffffff0096017000)
g_access(0xffffff00961f1900(md0), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r2w1e1] 0xffffff00961b2800(md0)
g_dev_open(mirror/gm0, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0096a9ce00(mirror/gm0), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r8w8e16]
0xffffff00969c7d00(mirror/gm0)
GEOM_MIRROR[2]: Access request for mirror/gm0: r1w0e0.
g_dev_close(mirror/gm0, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0096a9ce00(mirror/gm0), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r9w8e16]
0xffffff00969c7d00(mirror/gm0)
GEOM_MIRROR[2]: Access request for mirror/gm0: r-1w0e0.
g_dev_open(mirror/gm0p1, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002b97880(mirror/gm0p1), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r0w0e0]
0xffffff0096649700(mirror/gm0p1)
g_part_access(mirror/gm0p1,1,0,0)
g_access(0xffffff0096c0f800(mirror/gm0), 1, 0, 0)
open delta:[r1w0e0] old:[r8w8e16] provider:[r8w8e16]
0xffffff00969c7d00(mirror/gm0)
GEOM_MIRROR[2]: Access request for mirror/gm0: r1w0e0.
g_dev_close(mirror/gm0p1, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002b97880(mirror/gm0p1), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r1w0e0]
0xffffff0096649700(mirror/gm0p1)
g_part_access(mirror/gm0p1,-1,0,0)
g_access(0xffffff0096c0f800(mirror/gm0), -1, 0, 0)
open delta:[r-1w0e0] old:[r9w8e16] provider:[r9w8e16]
0xffffff00969c7d00(mirror/gm0)
GEOM_MIRROR[2]: Access request for mirror/gm0: r-1w0e0.
g_dev_open(mirror/gm0p10, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0096974880(mirror/gm0p10), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r1w1e1]
0xffffff009698a800(mirror/gm0p10)
g_part_access(mirror/gm0p10,1,0,0)
g_access(0xffffff0096c0f800(mirror/gm0), 1, 0, 0)
open delta:[r1w0e0] old:[r8w8e16] provider:[r8w8e16]
0xffffff00969c7d00(mirror/gm0)
GEOM_MIRROR[2]: Access request for mirror/gm0: r1w0e0.
g_dev_close(mirror/gm0p10, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0096974880(mirror/gm0p10), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r2w1e1]
0xffffff009698a800(mirror/gm0p10)
g_part_access(mirror/gm0p10,-1,0,0)
g_access(0xffffff0096c0f800(mirror/gm0), -1, 0, 0)
open delta:[r-1w0e0] old:[r9w8e16] provider:[r9w8e16]
0xffffff00969c7d00(mirror/gm0)
GEOM_MIRROR[2]: Access request for mirror/gm0: r-1w0e0.
g_dev_open(mirror/gm0p10.journal, 1, 8192, 0xffffff0096017000)
g_access(0xffffff00966df400(mirror/gm0p10.journal), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r0w0e0]
0xffffff0002c70500(mirror/gm0p10.journal)
g_dev_close(mirror/gm0p10.journal, 1, 8192, 0xffffff0096017000)
g_access(0xffffff00966df400(mirror/gm0p10.journal), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r1w0e0]
0xffffff0002c70500(mirror/gm0p10.journal)
g_dev_open(mirror/gm0p11, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002c26c80(mirror/gm0p11), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r1w1e1]
0xffffff0096989800(mirror/gm0p11)
g_part_access(mirror/gm0p11,1,0,0)
g_access(0xffffff0096c0f800(mirror/gm0), 1, 0, 0)
open delta:[r1w0e0] old:[r8w8e16] provider:[r8w8e16]
0xffffff00969c7d00(mirror/gm0)
GEOM_MIRROR[2]: Access request for mirror/gm0: r1w0e0.
g_dev_close(mirror/gm0p11, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002c26c80(mirror/gm0p11), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r2w1e1]
0xffffff0096989800(mirror/gm0p11)
g_part_access(mirror/gm0p11,-1,0,0)
g_access(0xffffff0096c0f800(mirror/gm0), -1, 0, 0)
open delta:[r-1w0e0] old:[r9w8e16] provider:[r9w8e16]
0xffffff00969c7d00(mirror/gm0)
GEOM_MIRROR[2]: Access request for mirror/gm0: r-1w0e0.
g_dev_open(mirror/gm0p11.journal, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0096565a80(mirror/gm0p11.journal), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r0w0e0]
0xffffff0096988700(mirror/gm0p11.journal)
g_dev_close(mirror/gm0p11.journal, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0096565a80(mirror/gm0p11.journal), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r1w0e0]
0xffffff0096988700(mirror/gm0p11.journal)
g_dev_open(mirror/gm0p2, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0096b26180(mirror/gm0p2), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r0w0e0]
0xffffff009698a100(mirror/gm0p2)
g_part_access(mirror/gm0p2,1,0,0)
g_access(0xffffff0096c0f800(mirror/gm0), 1, 0, 0)
open delta:[r1w0e0] old:[r8w8e16] provider:[r8w8e16]
0xffffff00969c7d00(mirror/gm0)
GEOM_MIRROR[2]: Access request for mirror/gm0: r1w0e0.
g_dev_close(mirror/gm0p2, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0096b26180(mirror/gm0p2), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r1w0e0]
0xffffff009698a100(mirror/gm0p2)
g_part_access(mirror/gm0p2,-1,0,0)
g_access(0xffffff0096c0f800(mirror/gm0), -1, 0, 0)
open delta:[r-1w0e0] old:[r9w8e16] provider:[r9w8e16]
0xffffff00969c7d00(mirror/gm0)
GEOM_MIRROR[2]: Access request for mirror/gm0: r-1w0e0.
g_dev_open(mirror/gm0p3, 1, 8192, 0xffffff0096017000)
g_access(0xffffff009607bb00(mirror/gm0p3), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r0w0e0]
0xffffff00969c7e00(mirror/gm0p3)
g_part_access(mirror/gm0p3,1,0,0)
g_access(0xffffff0096c0f800(mirror/gm0), 1, 0, 0)
open delta:[r1w0e0] old:[r8w8e16] provider:[r8w8e16]
0xffffff00969c7d00(mirror/gm0)
GEOM_MIRROR[2]: Access request for mirror/gm0: r1w0e0.
g_dev_close(mirror/gm0p3, 1, 8192, 0xffffff0096017000)
g_access(0xffffff009607bb00(mirror/gm0p3), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r1w0e0]
0xffffff00969c7e00(mirror/gm0p3)
g_part_access(mirror/gm0p3,-1,0,0)
g_access(0xffffff0096c0f800(mirror/gm0), -1, 0, 0)
open delta:[r-1w0e0] old:[r9w8e16] provider:[r9w8e16]
0xffffff00969c7d00(mirror/gm0)
GEOM_MIRROR[2]: Access request for mirror/gm0: r-1w0e0.
g_dev_open(mirror/gm0p4, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0096562980(mirror/gm0p4), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r1w1e1]
0xffffff0002c03200(mirror/gm0p4)
g_part_access(mirror/gm0p4,1,0,0)
g_access(0xffffff0096c0f800(mirror/gm0), 1, 0, 0)
open delta:[r1w0e0] old:[r8w8e16] provider:[r8w8e16]
0xffffff00969c7d00(mirror/gm0)
GEOM_MIRROR[2]: Access request for mirror/gm0: r1w0e0.
g_dev_close(mirror/gm0p4, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0096562980(mirror/gm0p4), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r2w1e1]
0xffffff0002c03200(mirror/gm0p4)
g_part_access(mirror/gm0p4,-1,0,0)
g_access(0xffffff0096c0f800(mirror/gm0), -1, 0, 0)
open delta:[r-1w0e0] old:[r9w8e16] provider:[r9w8e16]
0xffffff00969c7d00(mirror/gm0)
GEOM_MIRROR[2]: Access request for mirror/gm0: r-1w0e0.
g_dev_open(mirror/gm0p5, 1, 8192, 0xffffff0096017000)
g_access(0xffffff00966cfa80(mirror/gm0p5), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r1w1e1]
0xffffff0096a97500(mirror/gm0p5)
g_part_access(mirror/gm0p5,1,0,0)
g_access(0xffffff0096c0f800(mirror/gm0), 1, 0, 0)
open delta:[r1w0e0] old:[r8w8e16] provider:[r8w8e16]
0xffffff00969c7d00(mirror/gm0)
GEOM_MIRROR[2]: Access request for mirror/gm0: r1w0e0.
g_dev_close(mirror/gm0p5, 1, 8192, 0xffffff0096017000)
g_access(0xffffff00966cfa80(mirror/gm0p5), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r2w1e1]
0xffffff0096a97500(mirror/gm0p5)
g_part_access(mirror/gm0p5,-1,0,0)
g_access(0xffffff0096c0f800(mirror/gm0), -1, 0, 0)
open delta:[r-1w0e0] old:[r9w8e16] provider:[r9w8e16]
0xffffff00969c7d00(mirror/gm0)
GEOM_MIRROR[2]: Access request for mirror/gm0: r-1w0e0.
g_dev_open(mirror/gm0p6, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0096a9d500(mirror/gm0p6), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r1w1e1]
0xffffff0002361600(mirror/gm0p6)
g_part_access(mirror/gm0p6,1,0,0)
g_access(0xffffff0096c0f800(mirror/gm0), 1, 0, 0)
open delta:[r1w0e0] old:[r8w8e16] provider:[r8w8e16]
0xffffff00969c7d00(mirror/gm0)
GEOM_MIRROR[2]: Access request for mirror/gm0: r1w0e0.
g_dev_close(mirror/gm0p6, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0096a9d500(mirror/gm0p6), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r2w1e1]
0xffffff0002361600(mirror/gm0p6)
g_part_access(mirror/gm0p6,-1,0,0)
g_access(0xffffff0096c0f800(mirror/gm0), -1, 0, 0)
open delta:[r-1w0e0] old:[r9w8e16] provider:[r9w8e16]
0xffffff00969c7d00(mirror/gm0)
GEOM_MIRROR[2]: Access request for mirror/gm0: r-1w0e0.
g_dev_open(mirror/gm0p7, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0096562400(mirror/gm0p7), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r1w1e1]
0xffffff0096989a00(mirror/gm0p7)
g_part_access(mirror/gm0p7,1,0,0)
g_access(0xffffff0096c0f800(mirror/gm0), 1, 0, 0)
open delta:[r1w0e0] old:[r8w8e16] provider:[r8w8e16]
0xffffff00969c7d00(mirror/gm0)
GEOM_MIRROR[2]: Access request for mirror/gm0: r1w0e0.
g_dev_close(mirror/gm0p7, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0096562400(mirror/gm0p7), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r2w1e1]
0xffffff0096989a00(mirror/gm0p7)
g_part_access(mirror/gm0p7,-1,0,0)
g_access(0xffffff0096c0f800(mirror/gm0), -1, 0, 0)
open delta:[r-1w0e0] old:[r9w8e16] provider:[r9w8e16]
0xffffff00969c7d00(mirror/gm0)
GEOM_MIRROR[2]: Access request for mirror/gm0: r-1w0e0.
g_dev_open(mirror/gm0p8, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0096c12300(mirror/gm0p8), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r1w1e1]
0xffffff009662ba00(mirror/gm0p8)
g_part_access(mirror/gm0p8,1,0,0)
g_access(0xffffff0096c0f800(mirror/gm0), 1, 0, 0)
open delta:[r1w0e0] old:[r8w8e16] provider:[r8w8e16]
0xffffff00969c7d00(mirror/gm0)
GEOM_MIRROR[2]: Access request for mirror/gm0: r1w0e0.
g_dev_close(mirror/gm0p8, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0096c12300(mirror/gm0p8), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r2w1e1]
0xffffff009662ba00(mirror/gm0p8)
g_part_access(mirror/gm0p8,-1,0,0)
g_access(0xffffff0096c0f800(mirror/gm0), -1, 0, 0)
open delta:[r-1w0e0] old:[r9w8e16] provider:[r9w8e16]
0xffffff00969c7d00(mirror/gm0)
GEOM_MIRROR[2]: Access request for mirror/gm0: r-1w0e0.
g_dev_open(mirror/gm0p8.journal, 1, 8192, 0xffffff0096017000)
g_access(0xffffff00966cf300(mirror/gm0p8.journal), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r0w0e0]
0xffffff0096172d00(mirror/gm0p8.journal)
g_dev_close(mirror/gm0p8.journal, 1, 8192, 0xffffff0096017000)
g_access(0xffffff00966cf300(mirror/gm0p8.journal), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r1w0e0]
0xffffff0096172d00(mirror/gm0p8.journal)
g_dev_open(mirror/gm0p9, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0096564e00(mirror/gm0p9), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r1w1e1]
0xffffff00969ad500(mirror/gm0p9)
g_part_access(mirror/gm0p9,1,0,0)
g_access(0xffffff0096c0f800(mirror/gm0), 1, 0, 0)
open delta:[r1w0e0] old:[r8w8e16] provider:[r8w8e16]
0xffffff00969c7d00(mirror/gm0)
GEOM_MIRROR[2]: Access request for mirror/gm0: r1w0e0.
g_dev_close(mirror/gm0p9, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0096564e00(mirror/gm0p9), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r2w1e1]
0xffffff00969ad500(mirror/gm0p9)
g_part_access(mirror/gm0p9,-1,0,0)
g_access(0xffffff0096c0f800(mirror/gm0), -1, 0, 0)
open delta:[r-1w0e0] old:[r9w8e16] provider:[r9w8e16]
0xffffff00969c7d00(mirror/gm0)
GEOM_MIRROR[2]: Access request for mirror/gm0: r-1w0e0.
g_dev_open(mirror/gm0p9.journal, 1, 8192, 0xffffff0096017000)
g_access(0xffffff00961f1980(mirror/gm0p9.journal), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r0w0e0]
0xffffff009664a600(mirror/gm0p9.journal)
g_dev_close(mirror/gm0p9.journal, 1, 8192, 0xffffff0096017000)
g_access(0xffffff00961f1980(mirror/gm0p9.journal), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r1w0e0]
0xffffff009664a600(mirror/gm0p9.journal)
g_dev_open(mirror/gmsv09, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002b95c80(mirror/gmsv09), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r9w9e17]
0xffffff0002c0d800(mirror/gmsv09)
GEOM_MIRROR[2]: Access request for mirror/gmsv09: r1w0e0.
g_dev_close(mirror/gmsv09, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002b95c80(mirror/gmsv09), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r10w9e17]
0xffffff0002c0d800(mirror/gmsv09)
GEOM_MIRROR[2]: Access request for mirror/gmsv09: r-1w0e0.
g_dev_open(mirror/gmsv09p1, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002b95880(mirror/gmsv09p1), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r0w0e0]
0xffffff0002ad6700(mirror/gmsv09p1)
g_part_access(mirror/gmsv09p1,1,0,0)
g_access(0xffffff0002b97780(mirror/gmsv09), 1, 0, 0)
open delta:[r1w0e0] old:[r9w9e17] provider:[r9w9e17]
0xffffff0002c0d800(mirror/gmsv09)
GEOM_MIRROR[2]: Access request for mirror/gmsv09: r1w0e0.
g_dev_close(mirror/gmsv09p1, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002b95880(mirror/gmsv09p1), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r1w0e0]
0xffffff0002ad6700(mirror/gmsv09p1)
g_part_access(mirror/gmsv09p1,-1,0,0)
g_access(0xffffff0002b97780(mirror/gmsv09), -1, 0, 0)
open delta:[r-1w0e0] old:[r10w9e17] provider:[r10w9e17]
0xffffff0002c0d800(mirror/gmsv09)
GEOM_MIRROR[2]: Access request for mirror/gmsv09: r-1w0e0.
g_dev_open(mirror/gmsv09p10, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002ba7100(mirror/gmsv09p10), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r1w1e1]
0xffffff0002c32100(mirror/gmsv09p10)
g_part_access(mirror/gmsv09p10,1,0,0)
g_access(0xffffff0002b97780(mirror/gmsv09), 1, 0, 0)
open delta:[r1w0e0] old:[r9w9e17] provider:[r9w9e17]
0xffffff0002c0d800(mirror/gmsv09)
GEOM_MIRROR[2]: Access request for mirror/gmsv09: r1w0e0.
g_dev_close(mirror/gmsv09p10, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002ba7100(mirror/gmsv09p10), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r2w1e1]
0xffffff0002c32100(mirror/gmsv09p10)
g_part_access(mirror/gmsv09p10,-1,0,0)
g_access(0xffffff0002b97780(mirror/gmsv09), -1, 0, 0)
open delta:[r-1w0e0] old:[r10w9e17] provider:[r10w9e17]
0xffffff0002c0d800(mirror/gmsv09)
GEOM_MIRROR[2]: Access request for mirror/gmsv09: r-1w0e0.
g_dev_open(mirror/gmsv09p10.journal, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002b94a80(mirror/gmsv09p10.journal), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r1w1e1]
0xffffff0002c30200(mirror/gmsv09p10.journal)
g_dev_close(mirror/gmsv09p10.journal, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002b94a80(mirror/gmsv09p10.journal), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r2w1e1]
0xffffff0002c30200(mirror/gmsv09p10.journal)
g_dev_open(mirror/gmsv09p2, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002b95580(mirror/gmsv09p2), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r1w1e0]
0xffffff0002c31000(mirror/gmsv09p2)
g_part_access(mirror/gmsv09p2,1,0,0)
g_access(0xffffff0002b97780(mirror/gmsv09), 1, 0, 0)
open delta:[r1w0e0] old:[r9w9e17] provider:[r9w9e17]
0xffffff0002c0d800(mirror/gmsv09)
GEOM_MIRROR[2]: Access request for mirror/gmsv09: r1w0e0.
g_dev_close(mirror/gmsv09p2, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002b95580(mirror/gmsv09p2), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r2w1e0]
0xffffff0002c31000(mirror/gmsv09p2)
g_part_access(mirror/gmsv09p2,-1,0,0)
g_access(0xffffff0002b97780(mirror/gmsv09), -1, 0, 0)
open delta:[r-1w0e0] old:[r10w9e17] provider:[r10w9e17]
0xffffff0002c0d800(mirror/gmsv09)
GEOM_MIRROR[2]: Access request for mirror/gmsv09: r-1w0e0.
g_dev_open(mirror/gmsv09p3, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002b95280(mirror/gmsv09p3), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r1w1e1]
0xffffff0002c30d00(mirror/gmsv09p3)
g_part_access(mirror/gmsv09p3,1,0,0)
g_access(0xffffff0002b97780(mirror/gmsv09), 1, 0, 0)
open delta:[r1w0e0] old:[r9w9e17] provider:[r9w9e17]
0xffffff0002c0d800(mirror/gmsv09)
GEOM_MIRROR[2]: Access request for mirror/gmsv09: r1w0e0.
g_dev_close(mirror/gmsv09p3, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002b95280(mirror/gmsv09p3), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r2w1e1]
0xffffff0002c30d00(mirror/gmsv09p3)
g_part_access(mirror/gmsv09p3,-1,0,0)
g_access(0xffffff0002b97780(mirror/gmsv09), -1, 0, 0)
open delta:[r-1w0e0] old:[r10w9e17] provider:[r10w9e17]
0xffffff0002c0d800(mirror/gmsv09)
GEOM_MIRROR[2]: Access request for mirror/gmsv09: r-1w0e0.
g_dev_open(mirror/gmsv09p4, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002ba4400(mirror/gmsv09p4), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r1w1e1]
0xffffff0002c30b00(mirror/gmsv09p4)
g_part_access(mirror/gmsv09p4,1,0,0)
g_access(0xffffff0002b97780(mirror/gmsv09), 1, 0, 0)
open delta:[r1w0e0] old:[r9w9e17] provider:[r9w9e17]
0xffffff0002c0d800(mirror/gmsv09)
GEOM_MIRROR[2]: Access request for mirror/gmsv09: r1w0e0.
g_dev_close(mirror/gmsv09p4, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002ba4400(mirror/gmsv09p4), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r2w1e1]
0xffffff0002c30b00(mirror/gmsv09p4)
g_part_access(mirror/gmsv09p4,-1,0,0)
g_access(0xffffff0002b97780(mirror/gmsv09), -1, 0, 0)
open delta:[r-1w0e0] old:[r10w9e17] provider:[r10w9e17]
0xffffff0002c0d800(mirror/gmsv09)
GEOM_MIRROR[2]: Access request for mirror/gmsv09: r-1w0e0.
g_dev_open(mirror/gmsv09p5, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002ba4780(mirror/gmsv09p5), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r1w1e1]
0xffffff0002c30900(mirror/gmsv09p5)
g_part_access(mirror/gmsv09p5,1,0,0)
g_access(0xffffff0002b97780(mirror/gmsv09), 1, 0, 0)
open delta:[r1w0e0] old:[r9w9e17] provider:[r9w9e17]
0xffffff0002c0d800(mirror/gmsv09)
GEOM_MIRROR[2]: Access request for mirror/gmsv09: r1w0e0.
g_dev_close(mirror/gmsv09p5, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002ba4780(mirror/gmsv09p5), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r2w1e1]
0xffffff0002c30900(mirror/gmsv09p5)
g_part_access(mirror/gmsv09p5,-1,0,0)
g_access(0xffffff0002b97780(mirror/gmsv09), -1, 0, 0)
open delta:[r-1w0e0] old:[r10w9e17] provider:[r10w9e17]
0xffffff0002c0d800(mirror/gmsv09)
GEOM_MIRROR[2]: Access request for mirror/gmsv09: r-1w0e0.
g_dev_open(mirror/gmsv09p6, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002b94c00(mirror/gmsv09p6), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r1w1e1]
0xffffff0002c30700(mirror/gmsv09p6)
g_part_access(mirror/gmsv09p6,1,0,0)
g_access(0xffffff0002b97780(mirror/gmsv09), 1, 0, 0)
open delta:[r1w0e0] old:[r9w9e17] provider:[r9w9e17]
0xffffff0002c0d800(mirror/gmsv09)
GEOM_MIRROR[2]: Access request for mirror/gmsv09: r1w0e0.
g_dev_close(mirror/gmsv09p6, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002b94c00(mirror/gmsv09p6), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r2w1e1]
0xffffff0002c30700(mirror/gmsv09p6)
g_part_access(mirror/gmsv09p6,-1,0,0)
g_access(0xffffff0002b97780(mirror/gmsv09), -1, 0, 0)
open delta:[r-1w0e0] old:[r10w9e17] provider:[r10w9e17]
0xffffff0002c0d800(mirror/gmsv09)
GEOM_MIRROR[2]: Access request for mirror/gmsv09: r-1w0e0.
g_dev_open(mirror/gmsv09p7, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002b94900(mirror/gmsv09p7), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r1w1e1]
0xffffff0002c30500(mirror/gmsv09p7)
g_part_access(mirror/gmsv09p7,1,0,0)
g_access(0xffffff0002b97780(mirror/gmsv09), 1, 0, 0)
open delta:[r1w0e0] old:[r9w9e17] provider:[r9w9e17]
0xffffff0002c0d800(mirror/gmsv09)
GEOM_MIRROR[2]: Access request for mirror/gmsv09: r1w0e0.
g_dev_close(mirror/gmsv09p7, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002b94900(mirror/gmsv09p7), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r2w1e1]
0xffffff0002c30500(mirror/gmsv09p7)
g_part_access(mirror/gmsv09p7,-1,0,0)
g_access(0xffffff0002b97780(mirror/gmsv09), -1, 0, 0)
open delta:[r-1w0e0] old:[r10w9e17] provider:[r10w9e17]
0xffffff0002c0d800(mirror/gmsv09)
GEOM_MIRROR[2]: Access request for mirror/gmsv09: r-1w0e0.
g_dev_open(mirror/gmsv09p7.journal, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002b95380(mirror/gmsv09p7.journal), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r1w1e1]
0xffffff0002c03d00(mirror/gmsv09p7.journal)
g_dev_close(mirror/gmsv09p7.journal, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002b95380(mirror/gmsv09p7.journal), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r2w1e1]
0xffffff0002c03d00(mirror/gmsv09p7.journal)
g_dev_open(mirror/gmsv09p8, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002ae0c80(mirror/gmsv09p8), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r1w1e1]
0xffffff0002c30300(mirror/gmsv09p8)
g_part_access(mirror/gmsv09p8,1,0,0)
g_access(0xffffff0002b97780(mirror/gmsv09), 1, 0, 0)
open delta:[r1w0e0] old:[r9w9e17] provider:[r9w9e17]
0xffffff0002c0d800(mirror/gmsv09)
GEOM_MIRROR[2]: Access request for mirror/gmsv09: r1w0e0.
g_dev_close(mirror/gmsv09p8, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002ae0c80(mirror/gmsv09p8), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r2w1e1]
0xffffff0002c30300(mirror/gmsv09p8)
g_part_access(mirror/gmsv09p8,-1,0,0)
g_access(0xffffff0002b97780(mirror/gmsv09), -1, 0, 0)
open delta:[r-1w0e0] old:[r10w9e17] provider:[r10w9e17]
0xffffff0002c0d800(mirror/gmsv09)
GEOM_MIRROR[2]: Access request for mirror/gmsv09: r-1w0e0.
g_dev_open(mirror/gmsv09p8.journal, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002ba7480(mirror/gmsv09p8.journal), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r1w1e1]
0xffffff0002c03900(mirror/gmsv09p8.journal)
g_dev_close(mirror/gmsv09p8.journal, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002ba7480(mirror/gmsv09p8.journal), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r2w1e1]
0xffffff0002c03900(mirror/gmsv09p8.journal)
g_dev_open(mirror/gmsv09p9, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002ba4e00(mirror/gmsv09p9), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r1w1e1]
0xffffff0002c30100(mirror/gmsv09p9)
g_part_access(mirror/gmsv09p9,1,0,0)
g_access(0xffffff0002b97780(mirror/gmsv09), 1, 0, 0)
open delta:[r1w0e0] old:[r9w9e17] provider:[r9w9e17]
0xffffff0002c0d800(mirror/gmsv09)
GEOM_MIRROR[2]: Access request for mirror/gmsv09: r1w0e0.
g_dev_close(mirror/gmsv09p9, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002ba4e00(mirror/gmsv09p9), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r2w1e1]
0xffffff0002c30100(mirror/gmsv09p9)
g_part_access(mirror/gmsv09p9,-1,0,0)
g_access(0xffffff0002b97780(mirror/gmsv09), -1, 0, 0)
open delta:[r-1w0e0] old:[r10w9e17] provider:[r10w9e17]
0xffffff0002c0d800(mirror/gmsv09)
GEOM_MIRROR[2]: Access request for mirror/gmsv09: r-1w0e0.
g_dev_open(mirror/gmsv09p9.journal, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002b95900(mirror/gmsv09p9.journal), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r1w1e1]
0xffffff0002c03600(mirror/gmsv09p9.journal)
g_dev_close(mirror/gmsv09p9.journal, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002b95900(mirror/gmsv09p9.journal), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r2w1e1]
0xffffff0002c03600(mirror/gmsv09p9.journal)
g_dev_open(label/C325BL31, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002ba7e00(label/C325BL31), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r0w0e0]
0xffffff0002c0d400(label/C325BL31)
g_access(0xffffff0002ba7300(da2), 1, 0, 1)
open delta:[r1w0e1] old:[r0w0e0] provider:[r0w0e0] 0xffffff0002a23800(da2)
g_disk_access(da2, 1, 0, 1)
g_dev_close(label/C325BL31, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002ba7e00(label/C325BL31), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r1w0e0]
0xffffff0002c0d400(label/C325BL31)
g_access(0xffffff0002ba7300(da2), -1, 0, -1)
open delta:[r-1w0e-1] old:[r1w0e1] provider:[r1w0e1] 0xffffff0002a23800(da2)
g_disk_access(da2, -1, 0, -1)
g_dev_open(label/C330CJHW, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002a16700(label/C330CJHW), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r0w0e0]
0xffffff0002c02100(label/C330CJHW)
g_access(0xffffff0002b96280(da3), 1, 0, 1)
open delta:[r1w0e1] old:[r0w0e0] provider:[r0w0e0] 0xffffff0002a23b00(da3)
g_disk_access(da3, 1, 0, 1)
g_dev_close(label/C330CJHW, 1, 8192, 0xffffff0096017000)
g_access(0xffffff0002a16700(label/C330CJHW), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r1w0e0]
0xffffff0002c02100(label/C330CJHW)
g_access(0xffffff0002b96280(da3), -1, 0, -1)
open delta:[r-1w0e-1] old:[r1w0e1] provider:[r1w0e1] 0xffffff0002a23b00(da3)
g_disk_access(da3, -1, 0, -1)
g_dev_open(mirror/gm0p3, 1, 8192, 0xffffff0096017000)
g_access(0xffffff009607bb00(mirror/gm0p3), 1, 0, 0)
open delta:[r1w0e0] old:[r0w0e0] provider:[r0w0e0]
0xffffff00969c7e00(mirror/gm0p3)
g_part_access(mirror/gm0p3,1,0,0)
g_access(0xffffff0096c0f800(mirror/gm0), 1, 0, 0)
open delta:[r1w0e0] old:[r8w8e16] provider:[r8w8e16]
0xffffff00969c7d00(mirror/gm0)
GEOM_MIRROR[2]: Access request for mirror/gm0: r1w0e0.
g_dev_close(mirror/gm0p3, 1, 8192, 0xffffff0096017000)
g_access(0xffffff009607bb00(mirror/gm0p3), -1, 0, 0)
open delta:[r-1w0e0] old:[r1w0e0] provider:[r1w0e0]
0xffffff00969c7e00(mirror/gm0p3)
g_part_access(mirror/gm0p3,-1,0,0)
g_access(0xffffff0096c0f800(mirror/gm0), -1, 0, 0)
open delta:[r-1w0e0] old:[r9w8e16] provider:[r9w8e16]
0xffffff00969c7d00(mirror/gm0)
GEOM_MIRROR[2]: Access request for mirror/gm0: r-1w0e0.
vdev_geom_open_by_path:554[1]: Found provider by name /dev/label/C325BL31.
vdev_geom_attach:102[1]: Attaching to label/C325BL31.
g_access(0xffffff0096b23a00(label/C325BL31), 1, 0, 1)
open delta:[r1w0e1] old:[r0w0e0] provider:[r0w0e0]
0xffffff0002c0d400(label/C325BL31)
g_access(0xffffff0002ba7300(da2), 1, 0, 2)
open delta:[r1w0e2] old:[r0w0e0] provider:[r0w0e0] 0xffffff0002a23800(da2)
g_disk_access(da2, 1, 0, 2)
vdev_geom_attach:123[1]: Created geom and consumer for label/C325BL31.
vdev_geom_read_config:248[1]: Reading config from label/C325BL31...
vdev_geom_open_by_path:569[1]: guid match for provider /dev/label/C325BL31.
vdev_geom_open_by_path:554[1]: Found provider by name /dev/label/C330CJHW.
vdev_geom_attach:102[1]: Attaching to label/C330CJHW.
g_access(0xffffff00969a5280(label/C330CJHW), 1, 0, 1)
open delta:[r1w0e1] old:[r0w0e0] provider:[r0w0e0]
0xffffff0002c02100(label/C330CJHW)
g_access(0xffffff0002b96280(da3), 1, 0, 2)
open delta:[r1w0e2] old:[r0w0e0] provider:[r0w0e0] 0xffffff0002a23b00(da3)
g_disk_access(da3, 1, 0, 2)
vdev_geom_attach:143[1]: Created consumer for label/C330CJHW.
vdev_geom_read_config:248[1]: Reading config from label/C330CJHW...
vdev_geom_open_by_path:569[1]: guid match for provider /dev/label/C330CJHW.
vdev_geom_open_by_path:554[1]: Found provider by name /dev/mirror/gm0p3.
vdev_geom_attach:102[1]: Attaching to mirror/gm0p3.
g_access(0xffffff0096b24180(mirror/gm0p3), 1, 0, 1)
open delta:[r1w0e1] old:[r0w0e0] provider:[r0w0e0]
0xffffff00969c7e00(mirror/gm0p3)
g_part_access(mirror/gm0p3,1,0,1)
g_access(0xffffff0096c0f800(mirror/gm0), 1, 0, 1)
open delta:[r1w0e1] old:[r8w8e16] provider:[r8w8e16]
0xffffff00969c7d00(mirror/gm0)
GEOM_MIRROR[2]: Access request for mirror/gm0: r1w0e1.
vdev_geom_attach:143[1]: Created consumer for mirror/gm0p3.
vdev_geom_read_config:248[1]: Reading config from mirror/gm0p3...
vdev_geom_open_by_path:569[1]: guid match for provider /dev/mirror/gm0p3.
g_post_event_x(0xffffffff80b16830, 0xffffff0096b24180, 2, 0)
vdev_geom_detach:163[1]: Closing access to mirror/gm0p3.
g_access(0xffffff0096b24180(mirror/gm0p3), -1, 0, -1)
open delta:[r-1w0e-1] old:[r1w0e1] provider:[r1w0e1]
0xffffff00969c7e00(mirror/gm0p3)
g_part_access(mirror/gm0p3,-1,0,-1)
g_access(0xffffff0096c0f800(mirror/gm0), -1, 0, -1)
open delta:[r-1w0e-1] old:[r9w8e17] provider:[r9w8e17]
0xffffff00969c7d00(mirror/gm0)
GEOM_MIRROR[2]: Access request for mirror/gm0: r-1w0e-1.
vdev_geom_open_by_path:554[1]: Found provider by name /dev/mirror/gm0p3.
vdev_geom_attach:102[1]: Attaching to mirror/gm0p3.
vdev_geom_attach:128[1]: Found consumer for mirror/gm0p3.
g_access(0xffffff0096b24180(mirror/gm0p3), 1, 0, 1)
open delta:[r1w0e1] old:[r1w0e1] provider:[r1w0e1]
0xffffff00969c7e00(mirror/gm0p3)
g_part_access(mirror/gm0p3,1,0,1)
g_access(0xffffff0096c0f800(mirror/gm0), 1, 0, 1)
open delta:[r1w0e1] old:[r9w8e17] provider:[r9w8e17]
0xffffff00969c7d00(mirror/gm0)
GEOM_MIRROR[2]: Access request for mirror/gm0: r1w0e1.
vdev_geom_detach:167[1]: Destroyed consumer to mirror/gm0p3.
g_detach(0xffffff0096b24180)
g_destroy_consumer(0xffffff0096b24180)
vdev_geom_attach:147[1]: Used existing consumer for mirror/gm0p3.
vdev_geom_read_config:248[1]:

Fatal trap 12: page fault while in kernel mode

> I see two issues here.
> First, the ZFS tasting code could be made more robust.  If it never tried to
> re-use the consumer and always created a new one, then most likely this crash
> could be avoided.  But there is no bug in the code.  The code is correct and it
> it uses GEOM topology lock to avoid any concurrency issues.
> 
> But GEOM mirror code breaks a contract on which the ZFS code relies.
> g_access() must be called with the topology lock hold.
> I extend this requirement to a requirement that access method of any GEOM
> provider must operate under the topology lock and must never drop it.
> In other words, if a caller must acquire g_topology_lock before calling
> g_access, then in return it must have a guarantee that the GEOM topology stays
> unchanged across the call to g_access().
> g_mirror_access() breaks the above contract.
> 
> So, the code in vdev_geom_attach() obtains g_topology_lock, then it finds an
> existing valid consumer and calls g_access() on it.  It reasonably expects that
> the consumer remains valid, but because g_mirror_access() drops and requires the
> topology lock, there is a chance that the topology can change and the consumer
> may become invalid.

Ok, I do not understand why there are two threads A and B after "zpool
export" dealing with the zfs log device.

If you follow Pawels argumentation I am ready to test a patch for ZFS.

-- 
Andreas Longwitz



More information about the freebsd-fs mailing list