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     [EMAIL 
> PROTECTED]:/usr/obj/usr/src/sys/RENE 
> 
Regards,
Rene    
-- 
"It won't fit on the line."
                -- me, 2001

Attachment: pgp57B7ecmQrY.pgp
Description: PGP signature

Reply via email to