Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 23 Mar 2003 15:59:22 +1100
From:      Private Individual <kpeter@melbpc.org.au>
To:        current@FreeBSD.ORG
Subject:   panic: blockable sleep lock (sleep mutex); panic: mi_switch: switch in critical section
Message-ID:  <3E7D3F2A.1020501@melbpc.org.au>

next in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------060400010207020906000804
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

Hi

I received this panic whilst terminating program sem_d 
(src/lib/libpthread/test) with Ctrl+C. sem_d seems to stall after the 
first block of threads have been completed: the system only panics upon 
issuing a Ctrl+C to sem_d. sem_d successfully ran to completion when 
compiled with -pthread.

My system was cvsup'ed and generated Mar 21.

If there is anything else I can provide ...

-- 

Regards

Peter

As always the organisation disavows knowledge of this email


--------------060400010207020906000804
Content-Type: text/plain;
 name="14.txt"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="14.txt"

Script started on Sun Mar 23 14:31:13 2003
GNU gdb 5.2.1 (FreeBSD)
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-undermydesk-freebsd"...
panic: mi_switch: switch in a critical section
panic messages:
---
panic: blockable sleep lock (sleep mutex) process lock @ /mnt/cvs/FreeBSD/usr/src/sys/i386/i386/trap.c:728

syncing disks, buffers remaining... 3863 3863 panic: mi_switch: switch in a critical section
Uptime: 1h32m24s
Dumping 511 MB
ata0: resetting devices ..
ata0: pre reset mask=03 ostat0=50 ostat2=50
ad0: ATAPI 00 00
ad1: ATAPI 00 00
ata0: after reset mask=03 stat0=50 stat1=50
ad0: ATA 01 a5
ad1: ATA 01 a5
ata0: devices=03
ad1: success setting BIOSPIO on Intel ICH4 chip
ad0: success setting UDMA100 on Intel ICH4 chip
done
[CTRL-C to abort] [CTRL-C to abort] [CTRL-C to abort]  16 32 48 64 80 96 112 128 144 160 176 192 208 224 240 256 272 288 304 320 336 352 368 384 400 416 432 448 464 480 496
---
Reading symbols from /usr/obj/mnt/cvs/FreeBSD/usr/src/sys/EVA/modules/mnt/cvs/FreeBSD/usr/src/sys/modules/linux/linux.ko.debug...
done.
Loaded symbols for /usr/obj/mnt/cvs/FreeBSD/usr/src/sys/EVA/modules/mnt/cvs/FreeBSD/usr/src/sys/modules/linux/linux.ko.debug
Reading symbols from /usr/obj/mnt/cvs/FreeBSD/usr/src/sys/EVA/modules/mnt/cvs/FreeBSD/usr/src/sys/modules/acpi/acpi.ko.debug...done.
Loaded symbols for /usr/obj/mnt/cvs/FreeBSD/usr/src/sys/EVA/modules/mnt/cvs/FreeBSD/usr/src/sys/modules/acpi/acpi.ko.debug
Reading symbols from /usr/obj/mnt/cvs/FreeBSD/usr/src/sys/EVA/modules/mnt/cvs/FreeBSD/usr/src/sys/modules/linprocfs/linprocfs.ko.debug...done.
Loaded symbols for /usr/obj/mnt/cvs/FreeBSD/usr/src/sys/EVA/modules/mnt/cvs/FreeBSD/usr/src/sys/modules/linprocfs/linprocfs.ko.debug
#0  doadump () at /mnt/cvs/FreeBSD/usr/src/sys/kern/kern_shutdown.c:239
/mnt/cvs/FreeBSD/usr/src/sys/kern/kern_shutdown.c:239:6799:beg:0xc02397eb
(kgdb) bt
#0  doadump () at /mnt/cvs/FreeBSD/usr/src/sys/kern/kern_shutdown.c:239
#1  0xc0239e13 in boot (howto=260) at /mnt/cvs/FreeBSD/usr/src/sys/kern/kern_shutdown.c:371
#2  0xc023a113 in panic () at /mnt/cvs/FreeBSD/usr/src/sys/kern/kern_shutdown.c:542
#3  0xc0240731 in mi_switch () at /mnt/cvs/FreeBSD/usr/src/sys/kern/kern_synch.c:466
#4  0xc0239aff in boot (howto=256) at /mnt/cvs/FreeBSD/usr/src/sys/kern/kern_shutdown.c:311
#5  0xc023a113 in panic () at /mnt/cvs/FreeBSD/usr/src/sys/kern/kern_shutdown.c:542
#6  0xc025bb2f in witness_lock (lock=0xc28ae268, flags=8, file=0xc03e12df "/mnt/cvs/FreeBSD/usr/src/sys/i386/i386/trap.c", line=728)
    at /mnt/cvs/FreeBSD/usr/src/sys/kern/subr_witness.c:574
#7  0xc02304a1 in _mtx_lock_flags (m=0xc2299500, opts=0, file=0xc03e12df "/mnt/cvs/FreeBSD/usr/src/sys/i386/i386/trap.c", 
    line=-1031085464) at /mnt/cvs/FreeBSD/usr/src/sys/kern/kern_mutex.c:336
#8  0xc03868ed in trap_pfault (frame=0xd8cb5914, usermode=0, eva=220) at /mnt/cvs/FreeBSD/usr/src/sys/i386/i386/trap.c:728
#9  0xc038658d in trap (frame=
      {tf_fs = -1069219816, tf_es = -1069219824, tf_ds = -1069219824, tf_edi = 0, tf_esi = 216, tf_ebp = -657761948, tf_isp = -657761984, tf_ebx = 26, tf_edx = -1037462272, tf_ecx = -1040471136, tf_eax = -1069425608, tf_trapno = 12, tf_err = 2, tf_eip = -1071385900, tf_cs = 8, tf_eflags = 66118, tf_esp = -1040471136, tf_ss = -1040471136}) at /mnt/cvs/FreeBSD/usr/src/sys/i386/i386/trap.c:444
#10 0xc0376e48 in calltrap () at {standard input}:96
#11 0xc024be4f in sched_rem (ke=0x1a) at /mnt/cvs/FreeBSD/usr/src/sys/kern/sched_ule.c:252
#12 0xc023efe0 in setrunqueue (td=0x1a) at /mnt/cvs/FreeBSD/usr/src/sys/kern/kern_switch.c:345
#13 0xc024b95c in sched_wakeup (td=0xc28af200) at /mnt/cvs/FreeBSD/usr/src/sys/kern/sched_ule.c:604
#14 0xc02409d0 in setrunnable (td=0xc28af200) at /mnt/cvs/FreeBSD/usr/src/sys/kern/kern_synch.c:582
#15 0xc024044f in abortsleep (td=0xc28af2ec) at /mnt/cvs/FreeBSD/usr/src/sys/kern/kern_synch.c:363
#16 0xc023cb5a in tdsignal (td=0xc28af2ec, sig=2, action=0xc28af200) at /mnt/cvs/FreeBSD/usr/src/sys/kern/kern_sig.c:1606
#17 0xc023c8c6 in psignal (p=0xc28af200, sig=2) at /mnt/cvs/FreeBSD/usr/src/sys/kern/kern_sig.c:1491
#18 0xc023c359 in pgsignal (pgrp=0xc25a6800, sig=2, checkctty=1) at /mnt/cvs/FreeBSD/usr/src/sys/kern/kern_sig.c:1252
#19 0xc026952d in ttyinput (c=3, tp=0xc25edc30) at /mnt/cvs/FreeBSD/usr/src/sys/kern/tty.c:424
#20 0xc026f990 in ptcwrite (dev=0x0, uio=0xd8cb5c7c, flag=8323089) at /mnt/cvs/FreeBSD/usr/src/sys/kern/tty_pty.c:607
#21 0xc02023e0 in spec_write (ap=0xd8cb5be0) at /mnt/cvs/FreeBSD/usr/src/sys/fs/specfs/spec_vnops.c:311
#22 0xc0201ce8 in spec_vnoperate (ap=0x0) at /mnt/cvs/FreeBSD/usr/src/sys/fs/specfs/spec_vnops.c:123
#23 0xc029a3fe in vn_write (fp=0xc2311708, uio=0xd8cb5c7c, active_cred=0xc25d3c00, flags=0, td=0xc2299500) at vnode_if.h:417
#24 0xc025e568 in dofilewrite (td=0xc2299500, fp=0xc2311708, fd=0, buf=0x8061dc0, nbyte=0, offset=0, flags=0) at file.h:239
#25 0xc025e3a9 in write (td=0xc2299500, uap=0xd8cb5d10) at /mnt/cvs/FreeBSD/usr/src/sys/kern/sys_generic.c:329
#26 0xc038701e in syscall (frame=
      {tf_fs = 47, tf_es = 47, tf_ds = 47, tf_edi = 1, tf_esi = -1077937904, tf_ebp = -1077938200, tf_isp = -657760908, tf_ebx = 1, tf_edx = 1, tf_ecx = 134618560, tf_eax = 4, tf_trapno = 12, tf_err = 2, tf_eip = 672785795, tf_cs = 31, tf_eflags = 643, tf_esp = -1077938228, tf_ss = 47}) at /mnt/cvs/FreeBSD/usr/src/sys/i386/i386/trap.c:1030
#27 0xc0376e9d in Xint0x80_syscall () at {standard input}:138
---Can't read userspace from dump, or kernel process---

(kgdb) up 11
#11 0xc024be4f in sched_rem (ke=0x1a) at /mnt/cvs/FreeBSD/usr/src/sys/kern/sched_ule.c:252
/mnt/cvs/FreeBSD/usr/src/sys/kern/sched_ule.c:252:8496:beg:0xc024be4f
(kgdb) l
247	}
248	static __inline void
249	kseq_rem(struct kseq *kseq, struct kse *ke)
250	{
251		kseq->ksq_load--;
252		runq_remove(ke->ke_runq, ke);
253	#ifdef SMP
254		kseq->ksq_rslices -= ke->ke_slice;
255	#endif
256	}
(kgdb) up 1
#12 0xc023efe0 in setrunqueue (td=0x1a) at /mnt/cvs/FreeBSD/usr/src/sys/kern/kern_switch.c:345
/mnt/cvs/FreeBSD/usr/src/sys/kern/kern_switch.c:345:10789:beg:0xc023efe0
(kgdb) l
340				ke = tda->td_kse;
341				tda->td_kse = NULL;
342				ke->ke_thread = NULL;
343				tda = kg->kg_last_assigned =
344			    	    TAILQ_PREV(tda, threadqueue, td_runq);
345				sched_rem(ke);
346			}
347		} else {
348			/* 
349			 * Temporarily disassociate so it looks like the other cases.
(kgdb) l -10
335				kg->kg_idle_kses--;
336			} else if (tda && (tda->td_priority > td->td_priority)) {
337				/*
338				 * None free, but there is one we can commandeer.
339				 */
340				ke = tda->td_kse;
341				tda->td_kse = NULL;
342				ke->ke_thread = NULL;
343				tda = kg->kg_last_assigned =
344			    	    TAILQ_PREV(tda, threadqueue, td_runq);
(kgdb) p ke
$1 = (struct kse *) 0x0
(kgdb) q

Script done on Sun Mar 23 14:33:44 2003

--------------060400010207020906000804--


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3E7D3F2A.1020501>