Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 28 Apr 2005 00:37:02 +0200
From:      Rene Ladan <r.c.ladan@student.tue.nl>
To:        stable@freebsd.org
Subject:   Re: new fxp lor
Message-ID:  <20050427223701.GA69786@82-168-79-254-bbxl.xdsl.tiscali.nl>
In-Reply-To: <20050427180127.GA15351@82-168-79-254-bbxl.xdsl.tiscali.nl>
References:  <20050427180127.GA15351@82-168-79-254-bbxl.xdsl.tiscali.nl>

next in thread | previous in thread | raw e-mail | index | archive | help

[-- Attachment #1 --]
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@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

[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (FreeBSD)

iD8DBQFCcBQNvz70qa4zXcwRAlevAJ9HKj6kTJ2787//o0heghNYcLG5vACeMMWD
qxohsODyPsEPTk/7+X97NIY=
=9k6C
-----END PGP SIGNATURE-----

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