new fxp lor

Rene Ladan r.c.ladan at student.tue.nl
Wed Apr 27 15:37:05 PDT 2005


On Wed, Apr 27, 2005 at 08:01:28PM +0200, Rene Ladan wrote:
> Hi,
> 
> I experienced this new fxp LOR (probably when ntpd started during boot):

[snip 2 LORs]

> The box panics with automatic dump and reboot:
> 
> KDB: enter: witness_checkorder
> panic: blockable sleep lock (sleep mutex) tty @ /usr/src/sys/kern/kern_event.c:1495
> KDB: stack backtrace:
> Uptime: 15m33s
> Dumping 191 MB
>  16 32 48 64 80 96 112 128 144 160 176
> Dump complete

Some dump analysis (especially frames 34 and 35 look interesting):

[GDB will not be able to debug user-mode threads: /usr/lib/libthread_db.so: Undefined symbol "ps_pglobal_lookup"]
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 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-marcel-freebsd".
#0  doadump () at pcpu.h:159
159	pcpu.h: No such file or directory.
	in pcpu.h
(kgdb) bt f
#0  doadump () at pcpu.h:159
No locals.
#1  0xc04948aa in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:410
	first_buf_printf = 1
#2  0xc0494c18 in panic (
    fmt=0xc05fcf6f "blockable sleep lock (%s) %s @ %s:%d")
    at /usr/src/sys/kern/kern_shutdown.c:566
	td = (struct thread *) 0xc13e7180
	bootopt = 256
	newpanic = 1
	ap = 0xc9be56a8 "{²`ÀØÌ_À~l_À×\005"
	buf = "blockable sleep lock (sleep mutex) tty @ /usr/src/sys/kern/kern_event.c:1495", '\0' <repeats 179 times>
#3  0xc04bb5ae in witness_checkorder (lock=0xc158c510, flags=9, 
    file=0xc05f6c7e "/usr/src/sys/kern/kern_event.c", line=1495)
    at /usr/src/sys/kern/subr_witness.c:709
	lock_list = (struct lock_list_entry **) 0x15
	lle = (struct lock_list_entry *) 0xc9be56fc
	lock1 = (struct lock_instance *) 0xc13e7180
	lock2 = (struct lock_instance *) 0x0
	class = (struct lock_class *) 0xc0620ffc
	w = (struct witness *) 0xc0649468
	w1 = (struct witness *) 0x20
	td = (struct thread *) 0xc13e7180
---Type <return> to continue, or q <return> to quit---
	i = 1923
	j = -1066895508
	__func__ = "witness_checkorder"
#4  0xc048a95a in _mtx_lock_flags (m=0xc158c510, opts=0, 
    file=0xc05f6c7e "/usr/src/sys/kern/kern_event.c", line=1495)
    at /usr/src/sys/kern/kern_mutex.c:271
No locals.
#5  0xc0476ff5 in knote (list=0xc158c498, hint=0, islocked=0)
    at /usr/src/sys/kern/kern_event.c:1495
	kq = (struct kqueue *) 0xc158c438
	kn = (struct knote *) 0xc158c400
#6  0xc04c98ae in ttwwakeup (tp=0xc158c400) at /usr/src/sys/kern/tty.c:2398
No locals.
#7  0xc05baf21 in scstart (tp=0xc158c400)
    at /usr/src/sys/dev/syscons/syscons.c:1369
	rbp = (struct clist *) 0xc158c438
	len = 0
	buf = "lwhÀ\204\a\000\000\000p\000\000`whÀ€WŸÉBk[ÀlwhÀ\204\a\000\000 \000\000\000\000p\000\000BK\000 \224WŸÉ\032\205[À ªhÀlwhÀ`whÀ\000\017\000\000ÌWŸÉul[À`whÀ\204\a\000\000 \000\000\000\000\017\000\000\000\000\000\000`whÀ`whÀ ªhÀìWŸÉîÌ[À`whÀ\204\a\000\000\000\000\000"
	scp = (scr_stat *) 0xc0687760
#8  0xc05be305 in scgetc (sc=0xc068aa20, flags=3)
    at /usr/src/sys/dev/syscons/syscons.c:3211
---Type <return> to continue, or q <return> to quit---
	scp = (scr_stat *) 0xc0687760
	tp = (struct tty *) 0x0
	c = 6
	this_scr = -910272488
	f = 0
	i = 0
#9  0xc05bb379 in sccngetch (flags=2)
    at /usr/src/sys/dev/syscons/syscons.c:1555
	fkey = {str = '\0' <repeats 15 times>, len = 0 '\0'}
	fkeycp = 0
	scp = (scr_stat *) 0xc0687760
	p = (u_char *) 0x0
	cur_mode = 1
	c = -1067201760
#10 0xc05bb1c2 in sccncheckc (cd=0xc06350e0)
    at /usr/src/sys/dev/syscons/syscons.c:1478
No locals.
#11 0xc04cc1f8 in cncheckc () at /usr/src/sys/kern/tty_cons.c:567
	cnd = (struct cn_device *) 0xc066d0e0
	cn = (struct consdev *) 0x0
	c = 0
#12 0xc04cc1a5 in cngetc () at /usr/src/sys/kern/tty_cons.c:548
	c = 0
#13 0xc042a765 in db_readline (lstart=0xc063cb20 "c\n", lsize=120)
---Type <return> to continue, or q <return> to quit---
    at /usr/src/sys/ddb/db_input.c:324
No locals.
#14 0xc042a8aa in db_read_line () at /usr/src/sys/ddb/db_lex.c:55
	i = 0
#15 0xc0428fc1 in db_command_loop () at /usr/src/sys/ddb/db_command.c:453
No locals.
#16 0xc042b125 in db_trap (type=3, code=0) at /usr/src/sys/ddb/db_main.c:221
	jb = {{_jb = {-910272284, -910272312, -910272232, -1052872320, 0, 
      -1069371194, 0, 0, 0, 0, -910272232, -1068823136}}}
	prev_jb = (void *) 0x0
	bkpt = 0
#17 0xc04b0e27 in kdb_trap (type=0, code=0, tf=0xc9be5978)
    at /usr/src/sys/kern/subr_kdb.c:418
	handled = -910272136
#18 0xc05d9428 in trap (frame=
      {tf_fs = -1051983848, tf_es = 16, tf_ds = -910295024, tf_edi = 9, tf_esi = -1051950492, tf_ebp = -910272064, tf_isp = -910272092, tf_ebx = -1067004164, tf_edx = 1, tf_ecx = -1056878592, tf_eax = 31, tf_trapno = 3, tf_err = 0, tf_eip = -1068823776, tf_cs = 8, tf_eflags = 646, tf_esp = -1067468212, tf_ss = -1067537639}) at /usr/src/sys/i386/i386/trap.c:576
	td = (struct thread *) 0xc13e7180
	p = (struct proc *) 0xc13e654c
	sticks = 0
	i = 0
---Type <return> to continue, or q <return> to quit---
	ucode = 0
	type = 3
	code = 0
	eva = 0
#19 0xc05c880a in calltrap () at /usr/src/sys/i386/i386/exception.s:140
No locals.
#20 0xc14c0018 in ?? ()
No symbol table info available.
#21 0x00000010 in ?? ()
No symbol table info available.
#22 0xc9be0010 in ?? ()
No symbol table info available.
#23 0x00000009 in ?? ()
No symbol table info available.
#24 0xc14c8264 in ?? ()
No symbol table info available.
#25 0xc9be59c0 in ?? ()
No symbol table info available.
#26 0xc9be59a4 in ?? ()
No symbol table info available.
#27 0xc066cefc in w_locklistdata ()
No symbol table info available.
#28 0x00000001 in ?? ()
No symbol table info available.
---Type <return> to continue, or q <return> to quit---
#29 0xc1015000 in ?? ()
No symbol table info available.
#30 0x0000001f in ?? ()
No symbol table info available.
#31 0x00000003 in ?? ()
No symbol table info available.
#32 0x00000000 in ?? ()
No symbol table info available.
#33 0xc04b0b20 in kdb_enter (msg=0x0) at cpufunc.h:56
No locals.
#34 0xc04bbbab in witness_checkorder (lock=0xc14c8264, flags=9, 
    file=0xc06fe7bd "/usr/src/sys/modules/fxp/../../dev/fxp/if_fxp.c", 
    line=1232) at /usr/src/sys/kern/subr_witness.c:946
	lock_list = (struct lock_list_entry **) 0xc13e71f0
	lle = (struct lock_list_entry *) 0xc066cef8
	lock1 = (struct lock_instance *) 0xc066cefc
	lock2 = (struct lock_instance *) 0x0
	class = (struct lock_class *) 0xc0620ffc
	w = (struct witness *) 0xc0649530
	w1 = (struct witness *) 0xc064a778
	td = (struct thread *) 0xc066cefc
	i = -1
	j = 0
	__func__ = "witness_checkorder"
---Type <return> to continue, or q <return> to quit---
#35 0xc048a95a in _mtx_lock_flags (m=0xc14c8264, opts=0, 
    file=0xc06fe7bd "/usr/src/sys/modules/fxp/../../dev/fxp/if_fxp.c", 
    line=1232) at /usr/src/sys/kern/kern_mutex.c:271
No locals.
#36 0xc06fbdc7 in ?? ()
No symbol table info available.
#37 0xc14c8264 in ?? ()
No symbol table info available.
#38 0x00000000 in ?? ()
No symbol table info available.
#39 0xc06fe7bd in ?? ()
No symbol table info available.
#40 0x000004d0 in ?? ()
No symbol table info available.
#41 0xc14c8000 in ?? ()
No symbol table info available.
#42 0xc14c8000 in ?? ()
No symbol table info available.
#43 0xc9be5a70 in ?? ()
No symbol table info available.
#44 0xc050b1c9 in if_start (ifp=0xc14c8264) at /usr/src/sys/net/if.c:1959
No locals.
Previous frame identical to this frame (corrupt stack?)

(kgdb) frame 33
#33 0xc04b0b20 in kdb_enter (msg=0x0) at cpufunc.h:56
56	cpufunc.h: No such file or directory.
	in cpufunc.h
(kgdb) frame 34
#34 0xc04bbbab in witness_checkorder (lock=0xc14c8264, flags=9, 
    file=0xc06fe7bd "/usr/src/sys/modules/fxp/../../dev/fxp/if_fxp.c", 
    line=1232) at /usr/src/sys/kern/subr_witness.c:946
946			kdb_enter(__func__);
(kgdb) frame 35
#35 0xc048a95a in _mtx_lock_flags (m=0xc14c8264, opts=0, 
    file=0xc06fe7bd "/usr/src/sys/modules/fxp/../../dev/fxp/if_fxp.c", 
    line=1232) at /usr/src/sys/kern/kern_mutex.c:271
271		WITNESS_CHECKORDER(&m->mtx_object, opts | LOP_NEWORDER | LOP_EXCLUSIVE,
(kgdb) print *m
$1 = {mtx_object = {lo_class = 0xc0620ffc, lo_name = 0xc14a57e0 "fxp0", 
    lo_type = 0xc06fe820 "network driver", lo_flags = 196608, lo_list = {
      tqe_next = 0xc14c8208, tqe_prev = 0xc14bf010}, 
    lo_witness = 0xc0649530}, mtx_lock = 4, mtx_recurse = 0}
(kgdb) q

I still have this dump (~65MB uncompressed) available.

> This is on:
> 
> FreeBSD 5.4-STABLE #0: Tue Apr 26 07:30:25 CEST 2005     root at 82-168-79-254-bbxl.xdsl.tiscali.nl:/usr/obj/usr/src/sys/RENE 
> 
Regards,
Rene	
-- 
"It won't fit on the line."
		-- me, 2001
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20050428/7784e445/attachment.bin


More information about the freebsd-stable mailing list