kern/159595: gmirror unload

Christian Oaksford coaksford at gmail.com
Mon Aug 8 07:50:11 UTC 2011


>Number:         159595
>Category:       kern
>Synopsis:       gmirror unload
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Aug 08 07:50:11 UTC 2011
>Closed-Date:
>Last-Modified:
>Originator:     Christian Oaksford
>Release:        9.0-BETA1
>Organization:
>Environment:
FreeBSD fbsdvm 9.0-BETA1 FreeBSD 9.0-BETA1 #0: Thu Jul 28 17:15:31 UTC 2011     root at farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  amd64

>Description:
Testing in VirtualBox 4.1.0 because I do not have hardware to dedicate to testing this.

If you "gmirror unload" while you have an active mirror on 9.0-BETA1, it causes a panic. On 8.2-RC2, it tells you the device is busy. This seems to be the better behavior. gstripe does not show this behavior that gmirror does.


>From the VM on which this works:

fbsd-vm# uname -a
FreeBSD fbsd-vm.rchist.net 8.2-RC2 FreeBSD 8.2-RC2 #0: Wed Jan 12 17:02:35 UTC 2011     root at mason.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  amd64
fbsd-vm# gmirror label data ad4 ad6
fbsd-vm# gmirror load
GEOM_MIRROR: Device mirror/data launched (2/2).
fbsd-vm# gmirror unload
gmirror: Could not unload module: Device busy.


>From the VM on which this breaks:

fbsdvm# uname -a
FreeBSD fbsdvm 9.0-BETA1 FreeBSD 9.0-BETA1 #0: Thu Jul 28 17:15:31 UTC 2011     root at farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  amd64
fbsdvm# gmirror label data ada1 ada2
fbsdvm# gmirror load
GEOM_MIRROR: Device mirror/data launched (2/2).
fbsdvm# gmirror unload
System call kldunload returning with one of the following locks held:
exclusive sx kernel linker (kernel linker) r = 0 (0xffffffff81119a80) locked @ /usr/src/sys/kern/kern_linker.c:1082
panic: witness_warn
cpuid = 0
KDB enter: panic
[ thread pid 1058 tid 100071 ]
Stopped at      kdb_enter+0x3b: movq    $0,0x912272(%rip)
db>

>How-To-Repeat:
"gmirror label" two disks. Then "gmirror load" to get the mirror in operation, then "gmirror unload", on 9.0-BETA1.
>Fix:


>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list