kern/98093: [REGRESSION] Detaching gmirror/geli leads to panic

Ulrich Spoerlein uspoerlein at gmail.com
Mon May 29 08:10:42 PDT 2006


>Number:         98093
>Category:       kern
>Synopsis:       [REGRESSION] Detaching gmirror/geli leads to panic
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon May 29 15:10:14 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Ulrich Spoerlein
>Release:        FreeBSD 6.1-STABLE i386
>Organization:
>Environment:
>Description:
I have an USB attached disk, mirrored and encrypted. With 6.1-RC unplugging the USB
drive would simply remove the gmirror and geli providers. With 6.1-STABLE after the
gmirror MFC, this leads to a panic. Reverting gmirror to RELENG_6_1_RELEASE makes
the problem go away.
>How-To-Repeat:

#!/bin/sh
mdconfig -a -t malloc -s 10m -u 5
gmirror label foo /dev/md5
gmirror stop foo
gnop create /dev/md5
geli onetime /dev/mirror/foo
gnop destroy -f md5.nop

Trying to mount root from ufs:/dev/ad0s4a
GEOM_MIRROR: Device foo created (id=1040196325).
GEOM_MIRROR: Device foo: provider md5 detected.
GEOM_MIRROR: Device foo: provider md5 activated.
GEOM_MIRROR: Device foo: provider mirror/foo launched.
GEOM_MIRROR: Device foo: provider mirror/foo destroyed.
GEOM_MIRROR: Device foo destroyed.
GEOM_NOP: Device md5.nop created.
GEOM_MIRROR: Device foo created (id=1040196325).
GEOM_MIRROR: Device foo: provider md5.nop detected.
GEOM_MIRROR: Device foo: provider md5.nop activated.
GEOM_MIRROR: Device foo: provider mirror/foo launched.
GEOM_ELI: Device mirror/foo.eli created.
GEOM_ELI:     Cipher: AES
GEOM_ELI: Key length: 128
GEOM_ELI:     Crypto: software
GEOM_NOP: Device md5.nop is still open, so it can't be definitely removed.
GEOM_MIRROR: Device foo: provider md5.nop disconnected.
GEOM_MIRROR: Device foo: provider mirror/foo destroyed.
GEOM_MIRROR: Device foo destroyed.
GEOM_ELI: Device mirror/foo.eli destroyed.
panic: NULL softc (provider=mirror/foo).
KDB: enter: panic
[thread pid 2 tid 100001 ]
Stopped at      kdb_enter+0x2b: nop     
db> bt
Tracing pid 2 tid 100001 td 0xc4b03d80
kdb_enter(c06b315a) at kdb_enter+0x2b
panic(c08e6009,c4f612d8,e359ac70,c04d746e,0) at panic+0xbb
g_mirror_access(c4f61280,ffffffff,ffffffff,ffffffff,0) at g_mirror_access+0x223
g_access(c4f33080,ffffffff,ffffffff,ffffffff) at g_access+0x192
g_wither_geom_close(c4f60980,6,c4f60c80,c4f60980,c4ddc480) at g_wither_geom_close+0x68
g_eli_destroy(c4d9bc00,1,e359acdc,c04d3d6e,c4f33080) at g_eli_destroy+0x14e
g_eli_orphan(c4f33080,c4f61280,3e8,0,e359acec) at g_eli_orphan+0x30
g_orphan_register(c4f61280) at g_orphan_register+0x6e
one_event(e359ad0c,c04d561d,258,190,c04d55b0) at one_event+0x9b
g_run_events(258,190,c04d55b0,c4b0220c,e359ad24) at g_run_events+0x9
g_event_procbody(0,e359ad38,0,c04d55b0,0) at g_event_procbody+0x6d
fork_exit(c04d55b0,0,e359ad38) at fork_exit+0xa0
fork_trampoline() at fork_trampoline+0x8
--- trap 0x1, eip = 0, esp = 0xe359ad6c, ebp = 0 ---
db> reset
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list