Skip site navigation (1)Skip section navigation (2)
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>