Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 6 Mar 2003 18:50:10 +0300 (MSK)
From:      Maxim Konovalov <maxim@macomnet.ru>
To:        current@freebsd.org
Cc:        jhb@freebsd.org
Subject:   "blockable sleep lock" panic in latest -current.
Message-ID:  <20030306184626.A22859@news1.macomnet.ru>

index | next in thread | raw e-mail

[-- Attachment #1 --]

Hello,

Several identical kernel panics with today -current. I suspect recent
commits to subr_witness.c. See an attachment for details.

-- 
Maxim Konovalov, maxim@macomnet.ru, maxim@FreeBSD.org
[-- Attachment #2 --]
Script started on Thu Mar  6 18:42:01 2003
golf# gdb /usr/obj/usr/src/sys/GOLF5/kernel.debug -k vmcore.22
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: bwrite: buffer is not busy???
panic messages:
---
panic: blockable sleep lock (sleep mutex) sellck @ /usr/src/sys/kern/sys_generic.c:1191

syncing disks, buffers remaining... panic: bwrite: buffer is not busy???
Uptime: 1h37m38s
Dumping 511 MB
ata0: resetting devices ..
done
 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
---
#0  doadump () at /usr/src/sys/kern/kern_shutdown.c:239
239		dumping++;
(kgdb) bt
#0  doadump () at /usr/src/sys/kern/kern_shutdown.c:239
#1  0xc0235eda in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:371
#2  0xc0236143 in panic () at /usr/src/sys/kern/kern_shutdown.c:542
#3  0xc02713c2 in bwrite (bp=0xce55cf28) at /usr/src/sys/kern/vfs_bio.c:795
#4  0xc02730dc in vfs_bio_awrite (bp=0xce55cf28)
    at /usr/src/sys/kern/vfs_bio.c:1692
#5  0xc0279ed6 in vop_stdfsync (ap=0xc044e4a4)
    at /usr/src/sys/kern/vfs_default.c:755
#6  0xc02014d0 in spec_fsync (ap=0xc044e4a4)
    at /usr/src/sys/fs/specfs/spec_vnops.c:420
#7  0xc02009c8 in spec_vnoperate (ap=0x0)
    at /usr/src/sys/fs/specfs/spec_vnops.c:123
#8  0xc02fa3cd in ffs_sync (mp=0xc414e200, waitfor=2, cred=0xc150ae80, 
    td=0xc03d3e20) at vnode_if.h:612
#9  0xc028578b in sync (td=0xc03d3e20, uap=0x0)
    at /usr/src/sys/kern/vfs_syscalls.c:138
#10 0xc0235b0c in boot (howto=256) at /usr/src/sys/kern/kern_shutdown.c:280
#11 0xc0236143 in panic () at /usr/src/sys/kern/kern_shutdown.c:542
#12 0xc0255837 in witness_lock (lock=0xc03db920, flags=8, 
    file=0xc0392734 "/usr/src/sys/kern/sys_generic.c", line=1191)
    at /usr/src/sys/kern/subr_witness.c:552
#13 0xc022d1f3 in _mtx_lock_flags (m=0xc03d82a0, opts=0, 
    file=0xc03db920 " \202=À]'9À]'9À", line=1191)
---Type <return> to continue, or q <return> to quit---
    at /usr/src/sys/kern/kern_mutex.c:337
#14 0xc025955f in selwakeup (sip=0xc03d82a0)
    at /usr/src/sys/kern/sys_generic.c:1191
#15 0xc02638be in ptcwakeup (tp=0xc414f030, flag=-1069696736)
    at /usr/src/sys/kern/tty_pty.c:327
#16 0xc0263887 in ptsstart (tp=0x0) at /usr/src/sys/kern/tty_pty.c:316
#17 0xc025f8bb in ttstart (tp=0x0) at /usr/src/sys/kern/tty.c:1459
#18 0xc0261604 in tputchar (c=-1005260800, tp=0xc414f030)
    at /usr/src/sys/kern/tty.c:2579
#19 0xc0250f1b in putchar (c=10, arg=0xc044e74c)
    at /usr/src/sys/kern/subr_prf.c:349
#20 0xc025123d in kvprintf (fmt=0xc414f000 "", func=0xc0250eb0 <putchar>, 
    arg=0xc044e74c, radix=10, ap=0xc044e76c "")
    at /usr/src/sys/kern/subr_prf.c:528
#21 0xc0250e07 in printf (fmt=0x0) at /usr/src/sys/kern/subr_prf.c:305
#22 0xc03522b2 in dblfault_handler () at /usr/src/sys/i386/i386/trap.c:863
(kgdb) up 12
#12 0xc0255837 in witness_lock (lock=0xc03db920, flags=8, 
    file=0xc0392734 "/usr/src/sys/kern/sys_generic.c", line=1191)
    at /usr/src/sys/kern/subr_witness.c:552
552				panic("blockable sleep lock (%s) %s @ %s:%d",
(kgdb) l
547			 * Since spin locks include a critical section, this check
548			 * impliclty enforces a lock order of all sleep locks before
549			 * all spin locks.
550			 */
551			if (td->td_critnest != 0 && (flags & LOP_TRYLOCK) == 0)
552				panic("blockable sleep lock (%s) %s @ %s:%d",
553				    class->lc_name, lock->lo_name, file, line);
554			lock_list = &td->td_sleeplocks;
555		} else
556			lock_list = PCPU_PTR(spinlocks);
(kgdb) quit
golf# exit
exit

Script done on Thu Mar  6 18:42:33 2003
help

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