Date: Wed, 12 Apr 2006 11:03:30 -0400 From: John Baldwin <jhb@freebsd.org> To: freebsd-current@freebsd.org Cc: Csaba Henk <csaba-ml@creo.hu>, davidxu@freebsd.org Subject: Re: panic: Assertion !(curthread->td_flags & TDF_SINTR) failed Message-ID: <200604121103.32647.jhb@freebsd.org> In-Reply-To: <slrne3q1f7.18h.csaba@beastie.creo.hu> References: <slrne3q1f7.18h.csaba@beastie.creo.hu>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wednesday 12 April 2006 09:52, Csaba Henk wrote: > Hi! > > With my CURRENT installation from Apr 1, I get: > > panic: Assertion !(curthread->td_flags & TDF_SINTR) failed at /usr/src/sys/kern/subr_sleepqueue.c:529 > cpuid = 0 > KDB: enter: panic The sleepq_remove() in msleep() to handle this nested sleep case isn't clearing the TDF_SINTR from the previous tsleep. I suspect this changed in the recent fixes as I think they changed the sleepqueue code to clear TDF_SINTR when the thread resumed, rather than clearing it when the thread was removed from the queue IIRC. > [...] > > #11 0xc066a32b in panic (fmt=0xc08a525c "Assertion %s failed at %s:%d") at /usr/src/sys/kern/kern_shutdown.c:542 > #12 0xc068aadc in sleepq_wait (wchan=0xc1c163a8) at /usr/src/sys/kern/subr_sleepqueue.c:529 > #13 0xc0670725 in msleep (ident=0xc1c163a8, mtx=0xc1c1629c, priority=92, wmesg=0xc08ae466 "stopevent", timo=0) > at /usr/src/sys/kern/kern_synch.c:209 > #14 0xc06966f8 in stopevent (p=0xc1c16234, event=2, val=2) at /usr/src/sys/kern/sys_process.c:1028 > #15 0xc066e034 in issignal (td=0xc18e2bd0) at /usr/src/sys/kern/kern_sig.c:2544 > #16 0xc066aed7 in cursig (td=0xc18e2bd0) at signalvar.h:265 > #17 0xc068a732 in sleepq_catch_signals (wchan=0xc1750c10) at /usr/src/sys/kern/subr_sleepqueue.c:377 > #18 0xc068ab22 in sleepq_wait_sig (wchan=0xc1750c10) at /usr/src/sys/kern/subr_sleepqueue.c:545 > #19 0xc0670716 in msleep (ident=0xc1750c10, mtx=0x0, priority=345, wmesg=0xc08afc24 "ttyin", timo=0) > at /usr/src/sys/kern/kern_synch.c:207 > #20 0xc069e945 in ttysleep (tp=0xc1750c00, chan=0xc1750c10, pri=345, wmesg=0xc08afc24 "ttyin", timo=0) > at /usr/src/sys/kern/tty.c:2762 > #21 0xc069d4e3 in ttread (tp=0xc1750c00, uio=0xc62eec64, flag=0) at /usr/src/sys/kern/tty.c:1864 > #22 0xc069f4c7 in ttyread (dev=0xc1746200, uio=0xc62eec64, flag=0) at linedisc.h:100 > #23 0xc080ec16 in scread (dev=0xc1746200, uio=0xc62eec64, flag=0) at /usr/src/sys/dev/syscons/syscons.c:596 > #24 0xc06446c1 in giant_read (dev=0xc1746200, uio=0xc62eec64, ioflag=0) at /usr/src/sys/kern/kern_conf.c:300 > #25 0xc061fc8e in devfs_read_f (fp=0xc17f70d8, uio=0xc62eec64, cred=0xc1c39480, flags=0, td=0xc18e2bd0) > at /usr/src/sys/fs/devfs/devfs_vnops.c:773 > #26 0xc0691145 in dofileread (td=0xc18e2bd0, fd=0, fp=0xc17f70d8, auio=0xc62eec64, offset=Unhandled dwarf expression opcode 0x93 > > ) at file.h:235 > #27 0xc0690fda in kern_readv (td=0xc18e2bd0, fd=0, auio=0xc62eec64) at /usr/src/sys/kern/sys_generic.c:192 > #28 0xc0690f05 in read (td=0xc18e2bd0, uap=0xc1033000) at /usr/src/sys/kern/sys_generic.c:116 > #29 0xc0830436 in syscall (frame= > {tf_fs = 59, tf_es = 59, tf_ds = 59, tf_edi = 1, tf_esi = 1, tf_ebp = -1077941016, tf_isp = -970003100, tf_ebx = 0, tf_edx > = 0, tf_ecx = 0, tf_eax = 3, tf_trapno = 12, tf_err = 2, tf_eip = 672429263, tf_cs = 51, tf_eflags = 518, tf_esp = -1077941300, > tf_ss = 59}) at /usr/src/sys/i386/i386/trap.c:1016 > #30 0xc081c11f in Xint0x80_syscall () at /usr/src/sys/i386/i386/exception.s:190 > #31 0x00000033 in ?? () > > by running the command > > strace -e read,write cat > > and then interrupting it with Ctrl-C (of course, procfs is mounted and the > devel/strace is installed before doing this). -- John Baldwin <jhb@FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" = http://www.FreeBSD.org
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200604121103.32647.jhb>