kern/98538: Kernel panic on ggate destroy
Christian Laursen
xi at borderworlds.dk
Mon Jun 5 09:20:29 PDT 2006
>Number: 98538
>Category: kern
>Synopsis: Kernel panic on ggate destroy
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Mon Jun 05 16:20:17 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator: Christian Laursen
>Release: FreeBSD 7.0-CURRENT i386
>Organization:
The Border Worlds
>Environment:
System: FreeBSD hest.borderworlds.dk 7.0-CURRENT FreeBSD 7.0-CURRENT #0: Mon Jun 5 17:48:41 CEST 2006 root at hest.borderworlds.dk:/usr/obj/usr/src/sys/HEST i386
>Description:
When destroying two ggate providers after each other the kernel panics.
The backtrace looks like this:
#0 doadump () at pcpu.h:166
#1 0xc06984a4 in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:409
#2 0xc06987b9 in panic (fmt=0xc08da3ee "%s")
at /usr/src/sys/kern/kern_shutdown.c:565
#3 0xc0892f12 in trap_fatal (frame=0xc8506a54, eva=3735929054)
at /usr/src/sys/i386/i386/trap.c:870
#4 0xc0892c1b in trap_pfault (frame=0xc8506a54, usermode=0, eva=3735929054)
at /usr/src/sys/i386/i386/trap.c:778
#5 0xc0892839 in trap (frame=
{tf_fs = 8, tf_es = 40, tf_ds = 40, tf_edi = 0, tf_esi = 1, tf_ebp = -934253932, tf_isp = -934253952, tf_ebx = -1064209282, tf_edx = -559038242, tf_ecx = 0, tf_eax = -559038242, tf_trapno = 12, tf_err = 0, tf_eip = -1066392268, tf_cs = 32, tf_eflags = 66118, tf_esp = -934253728, tf_ss = -1066705864})
at /usr/src/sys/i386/i386/trap.c:463
#6 0xc087d9aa in calltrap () at /usr/src/sys/i386/i386/exception.s:138
#7 0xc0702534 in strlen (str=0xdeadc0de <Address 0xdeadc0de out of bounds>)
at /usr/src/sys/libkern/strlen.c:41
#8 0xc06b5c38 in kvprintf (fmt=0xc091747e " @ %s:%d",
func=0xc06b5540 <snprintf_func>, arg=0xc8506b7c, radix=10,
ap=0xc8506bc4 ".#\233Á\035\002") at /usr/src/sys/kern/subr_prf.c:681
#9 0xc06b54dd in vsnprintf (
str=0xdeadc0de <Address 0xdeadc0de out of bounds>, size=3735929054,
format=0xc0917463 "mtx_lock() of spin mutex %s @ %s:%d",
ap=0xc8506bc0 "ÞÀÞ.#\233Á\035\002") at /usr/src/sys/kern/subr_prf.c:414
#10 0xc06986f6 in panic (fmt=0xc0917463 "mtx_lock() of spin mutex %s @ %s:%d")
at /usr/src/sys/kern/kern_shutdown.c:532
#11 0xc068fd0a in _mtx_lock_flags (m=0xc1980038, opts=0,
file=0xc19b232e "/usr/src/sys/modules/geom/geom_gate/../../../geom/gate/g_gate.c", line=541) at /usr/src/sys/kern/kern_mutex.c:279
#12 0xc19b17aa in ?? ()
#13 0xc1980038 in ?? ()
#14 0x00000000 in ?? ()
#15 0xc19b232e in ?? ()
#16 0x0000021d in ?? ()
#17 0xc1980010 in ?? ()
#18 0x00000000 in ?? ()
#19 0xc0913fef in ?? ()
#20 0x00000044 in ?? ()
#21 0xc8506c10 in ?? ()
#22 0xc0671d72 in dev_refthread (dev=0xc1980000)
at /usr/src/sys/kern/kern_conf.c:124
#23 0xc064c43f in devfs_ioctl_f (fp=0xc1980038, com=3245738024,
data=0xc172f940, cred=0xc18c3680, td=0xc178fd80)
at /usr/src/sys/fs/devfs/devfs_vnops.c:401
#24 0xc06c0d8c in ioctl (td=0xc178fd80, uap=0xc8506d04) at file.h:265
#25 0xc0893216 in syscall (frame=
{tf_fs = 59, tf_es = 59, tf_ds = 59, tf_edi = 0, tf_esi = 0, tf_ebp = -1078074552, tf_isp = -934253212, tf_ebx = 0, tf_edx = -1077943392, tf_ecx = 0, tf_eax = 54, tf_trapno = 22, tf_err = 2, tf_eip = 672789399, tf_cs = 51, tf_eflags = 662, tf_esp = -1078074580, tf_ss = 59}) at /usr/src/sys/i386/i386/trap.c:1016
#26 0xc087d9ff in Xint0x80_syscall () at /usr/src/sys/i386/i386/exception.s:191
#27 0x00000033 in ?? ()
>How-To-Repeat:
I have reproduced this on both 7.0-CURRENT and 6.1-RELEASE.
The following sequence of commands triggers the panic every time I try:
# ggatec create -o rw 10.1.0.2 /tmp/fil1.img
ggate0
# ggatec create -o rw 10.1.0.2 /tmp/fil1.img
ggate1
# ggatec destroy -u 0; ggatec destroy -u 1
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list