Date: Thu, 11 Oct 2007 19:05:17 +0200 From: Fabian Keil <freebsd-listen@fabiankeil.de> To: freebsd-current@FreeBSD.org Subject: zpool scrub causes geli vdev to detach Message-ID: <20071011190517.770fd3ab@fabiankeil.de>
next in thread | raw e-mail | index | archive | help
--Sig_/l/ufglwFTOgljKhyw6jZlD9 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On: FreeBSD TP51.local 7.0-CURRENT FreeBSD 7.0-CURRENT #0: Thu Oct 11 09:21:19 CEST 2007 fk@TP51.local:/usr/obj/usr/src/sys/THINKPAD i386 this zpool: fk@TP51 ~ $sudo zpool status pool: tank state: ONLINE scrub: scrub completed with 0 errors on Thu Oct 11 13:56:28 2007 config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 ad0s3f.eli ONLINE 0 0 0 ad0s2.eli ONLINE 0 0 0 errors: No known data errors worked without issues when it only consisted of ad0s3f.eli, but then I added ad0s2.eli and now scrubbing the pool leads to: Unread portion of the kernel message buffer: GEOM_ELI: Detached ad0s2.eli on last close. GEOM_LABEL: Label for provider ad0s2 is msdosfs/=D2A.=DB,{(#0. panic: Function g_eli_orphan_spoil_assert() called for ad0s3f.eli. KDB: enter: panic panic: from debugger Uptime: 5m27s Physical memory: 1014 MB Dumping 120 MB: 105 89 73 57 41 25 9 #0 doadump () at pcpu.h:195 195 pcpu.h: No such file or directory. in pcpu.h (kgdb) bt =20 #0 doadump () at pcpu.h:195 #1 0xc05db8f3 in boot (howto=3D260) at /usr/src/sys/kern/kern_shutdown.c:4= 09 #2 0xc05dbb1c in panic (fmt=3DVariable "fmt" is not available. ) at /usr/src/sys/kern/kern_shutdown.c:563 #3 0xc04a40c7 in db_panic (addr=3DCould not find the frame base for "db_pa= nic". ) at /usr/src/sys/ddb/db_command.c:433 #4 0xc04a4825 in db_command_loop () at /usr/src/sys/ddb/db_command.c:401 #5 0xc04a6255 in db_trap (type=3D3, code=3D0) at /usr/src/sys/ddb/db_main.= c:222 #6 0xc06014a4 in kdb_trap (type=3D3, code=3D0, tf=3D0xf4bcac1c) at /usr/sr= c/sys/kern/subr_kdb.c:502 #7 0xc0838d2b in trap (frame=3D0xf4bcac1c) at /usr/src/sys/i386/i386/trap.= c:621 #8 0xc082120b in calltrap () at /usr/src/sys/i386/i386/exception.s:139 #9 0xc0601602 in kdb_enter (msg=3D0xc0889693 "panic") at cpufunc.h:60 #10 0xc05dbb05 in panic (fmt=3D0xc3e9a0e8 "Function %s() called for %s.") a= t /usr/src/sys/kern/kern_shutdown.c:547 #11 0xc3e92d65 in ?? () #12 0xc3e9a0e8 in ?? () #13 0xc3e99d84 in ?? () #14 0xc3e0d890 in ?? () #15 0xf4bcacac in ?? () #16 0xc058eff5 in g_spoil_event (arg=3D0xc3c92940, flag=3D-945983104) at /u= sr/src/sys/geom/geom_subr.c:903 (kgdb) f 16 #16 0xc058eff5 in g_spoil_event (arg=3D0xc3c92940, flag=3D-945983104) at /u= sr/src/sys/geom/geom_subr.c:903 903 cp->geom->spoiled(cp); (kgdb) l 898 if (!cp->spoiled) 899 continue; 900 cp->spoiled =3D 0; 901 if (cp->geom->spoiled =3D=3D NULL) 902 continue; 903 cp->geom->spoiled(cp); 904 g_topology_assert(); 905 } 906 } 907 =20 As a workaround I'm currently using: --- sys/geom/eli/g_eli.c.orig 2007-10-11 13:35:53.744592827 +0200 +++ sys/geom/eli/g_eli.c 2007-10-11 13:38:41.687509241 +0200 @@ -451,10 +451,14 @@ gp =3D sc->sc_geom; pp =3D LIST_FIRST(&gp->provider); strlcpy(ppname, pp->name, sizeof(ppname)); + + G_ELI_DEBUG(0, "Ignored request to detach %s on last close.", ppnam= e); + /* error =3D g_eli_destroy(sc, 1); KASSERT(error =3D=3D 0, ("Cannot detach %s on last close (error=3D%= d).", ppname, error)); G_ELI_DEBUG(0, "Detached %s on last close.", ppname); + */ } =20 int and with that scrubbing finishes without errors (see status above), but triggers the G_ELI_DEBUG message once or twice: Oct 11 13:46:30 TP51 sudo: fk : TTY=3Dttyv0 ; PWD=3D/home/fk ; USER= =3Droot ; COMMAND=3D/etc/rc.d/zfs start Oct 11 13:46:31 TP51 kernel: WARNING: ZFS is considered to be an experiment= al feature in FreeBSD. Oct 11 13:46:31 TP51 kernel: ZFS filesystem version 6 Oct 11 13:46:31 TP51 kernel: ZFS storage pool version 6 Oct 11 13:46:32 TP51 kernel: GEOM_ELI: Ignored request to detach ad0s3f.eli= on last close. Oct 11 13:46:32 TP51 last message repeated 3 times Oct 11 13:46:32 TP51 kernel: GEOM_ELI: Ignored request to detach ad0s2.eli = on last close. Oct 11 13:46:44 TP51 sudo: fk : TTY=3Dttyv0 ; PWD=3D/home/fk ; USER= =3Droot ; COMMAND=3D/sbin/zpool status Oct 11 13:47:12 TP51 sudo: fk : TTY=3Dttyv0 ; PWD=3D/home/fk ; USER= =3Droot ; COMMAND=3D/sbin/zpool scrub tank Oct 11 13:47:13 TP51 kernel: GEOM_ELI: Ignored request to detach ad0s3f.eli= on last close. Oct 11 13:47:13 TP51 kernel: GEOM_ELI: Ignored request to detach ad0s3f.eli= on last close. Not sure if it helps, but the zdevs are: Geom name: ad0s3f.eli EncryptionAlgorithm: AES-CBC KeyLength: 128 Crypto: software UsedKey: 0 Flags: RW-DETACH, W-OPEN Providers: 1. Name: ad0s3f.eli Mediasize: 8881561600 (8.3G) Sectorsize: 4096 Mode: r1w1e1 Consumers: 1. Name: ad0s3f Mediasize: 8881565184 (8.3G) Sectorsize: 512 Mode: r1w1e1 Geom name: ad0s2.eli EncryptionAlgorithm: AES-CBC KeyLength: 128 Crypto: software UsedKey: 0 Flags: RW-DETACH, W-OPEN Providers: 1. Name: ad0s2.eli Mediasize: 9932263424 (9.3G) Sectorsize: 4096 Mode: r1w1e1 Consumers: 1. Name: ad0s2 Mediasize: 9932267520 (9.3G) Sectorsize: 512 Mode: r1w1e1 Is there an obvious solution, or should I file a PR about this? Fabian --Sig_/l/ufglwFTOgljKhyw6jZlD9 Content-Type: application/pgp-signature; name=signature.asc Content-Disposition: attachment; filename=signature.asc -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (FreeBSD) iD8DBQFHDlfNBYqIVf93VJ0RAqiaAJ4mp6QpbH7zzdr0poVjdM+Xa5Ja5wCeIKqE HtXpvymdbzaSpb73VnkgCxk= =Vjkd -----END PGP SIGNATURE----- --Sig_/l/ufglwFTOgljKhyw6jZlD9--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20071011190517.770fd3ab>