From owner-freebsd-current@FreeBSD.ORG Wed Apr 12 15:12:17 2006 Return-Path: X-Original-To: freebsd-current@freebsd.org Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B43F616A400; Wed, 12 Apr 2006 15:12:17 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from server.baldwin.cx (66-23-211-162.clients.speedfactory.net [66.23.211.162]) by mx1.FreeBSD.org (Postfix) with ESMTP id E868743D49; Wed, 12 Apr 2006 15:12:16 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from localhost (john@localhost [127.0.0.1]) by server.baldwin.cx (8.13.4/8.13.4) with ESMTP id k3CFCBmB025358; Wed, 12 Apr 2006 11:12:12 -0400 (EDT) (envelope-from jhb@freebsd.org) From: John Baldwin To: freebsd-current@freebsd.org Date: Wed, 12 Apr 2006 11:03:30 -0400 User-Agent: KMail/1.9.1 References: In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200604121103.32647.jhb@freebsd.org> X-Virus-Scanned: ClamAV 0.87.1/1394/Wed Apr 12 09:45:54 2006 on server.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-4.0 required=4.2 tests=ALL_TRUSTED,AWL,BAYES_00 autolearn=ham version=3.1.0 X-Spam-Checker-Version: SpamAssassin 3.1.0 (2005-09-13) on server.baldwin.cx Cc: Csaba Henk , davidxu@freebsd.org Subject: Re: panic: Assertion !(curthread->td_flags & TDF_SINTR) failed X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Apr 2006 15:12:17 -0000 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 <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" = http://www.FreeBSD.org