[FUG-BR] dummynet causando kernel panics (continuação)

João Paulo Just jpjust em justsoft.com.br
Terça Setembro 30 08:09:28 BRT 2008


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Olá, lista.

Decidi iniciar outra thread porque a antiga já está bem atrás. A thread
original é essa:
http://www.fug.com.br/historico/html/freebsd/2008-09/msg00069.html

Pois bem, só pra relembrar: meu servidor vive dando kernel panic onde o
"current process" sempre é o dummynet. Hoje pela manha teve outro panic
e pude fazer o backtrace. Se alguém puder ajudar ou dar uma luz, ficaria
grato. O erro sempre é em _mtx_lock_sleep() (kern_mutex.c). Não
verifiquei nas outras vezes, mas dessa vez, o erro foi na linha 341:

if (TD_IS_RUNNING(owner)) {

Estou pensando em verificar a macro TD_IS_RUNNING e tentar adicionar uma
chacagem antes, pois acho que "owner" está indo com um valor inválido
(suspeito de ser NULL). Só que to meio receioso de acabar arrombando o
kernel. :P

Fatal trap 12: page fault while in kernel mode
cpuid = 0; apic id = 00
fault virtual address   = 0x258
fault code              = supervisor read data, page not present
instruction pointer     = 0x8:0xffffffff8047c70e
stack pointer           = 0x10:0xffffffffae4c6ab0
frame pointer           = 0x10:0xffffffffae4c6ad0
code segment            = base 0x0, limit 0xfffff, type 0x1b
~                        = DPL 0, pres 1, long 1, def32 0, gran 1
processor eflags        = interrupt enabled, resume, IOPL = 0
current process         = 47 (dummynet)
panic: from debugger
cpuid = 0
Uptime: 3d16h56m46s
Physical memory: 4002 MB
Dumping 508 MB: 493 477 461 445 429 413 397 381 365 349 333 317 301 285
269 253 237 221 205 189 173 157 141 125 109 93 77 61 45 29 13

#0  0xffffffff80487aca in isbufbusy () at
/usr/src/sys/kern/kern_shutdown.c:254
254     }
(kgdb) bt
#0  0xffffffff80487aca in isbufbusy () at
/usr/src/sys/kern/kern_shutdown.c:254
#1  0xffffffff80487aef in doadump () at pcpu.h:194
#2  0xffffffff80487fe8 in boot (howto=260) at
/usr/src/sys/kern/kern_shutdown.c:408
#3  0xffffffff80488447 in panic (fmt=Variable "fmt" is not available.
) at /usr/src/sys/kern/kern_shutdown.c:559
#4  0xffffffff801bd817 in db_panic (addr=Variable "addr" is not available.
) at /usr/src/sys/ddb/db_command.c:433
#5  0xffffffff801bde6c in db_command_loop () at
/usr/src/sys/ddb/db_command.c:401
#6  0xffffffff801bfb7f in db_trap (type=Variable "type" is not available.
) at /usr/src/sys/ddb/db_main.c:222
#7  0xffffffff804b06d5 in kdb_trap (type=12, code=0,
tf=0xffffffffae4c6a00) at /usr/src/sys/kern/subr_kdb.c:499
#8  0xffffffff8075dabd in trap_fatal (frame=Variable "frame" is not
available.
) at /usr/src/sys/amd64/amd64/trap.c:724
#9  0xffffffff8075de94 in trap_pfault (frame=0xffffffffae4c6a00,
usermode=0) at /usr/src/sys/amd64/amd64/trap.c:613
#10 0xffffffff8075e84a in trap (frame=0xffffffffae4c6a00) at
/usr/src/sys/amd64/amd64/trap.c:464
#11 0xffffffff80743b4e in alltraps_pushregs_no_rdi () at
/usr/src/sys/amd64/amd64/exception.S:159
#12 0xffffff00bbe56c50 in ?? ()
#13 0xffffff0003483680 in ?? ()
#14 0xffffff0003483680 in ?? ()
#15 0x0000000000000000 in ?? ()
#16 0x0000000000000000 in ?? ()
#17 0x00000000effffffa in ?? ()
#18 0x0000000000000006 in ?? ()
#19 0xffffff00bbe56c50 in ?? ()
#20 0xffffffffae4c6ad0 in ?? ()
#21 0x00000000efff0000 in ?? ()
#22 0xffffff012411cc00 in ?? ()
#23 0xffffff0003483680 in ?? ()
#24 0x0000000000000000 in ?? ()
#25 0x0000000000000004 in ?? ()
#26 0x00000000000000ff in ?? ()
#27 0x000000000000000c in ?? ()
#28 0x0000000000000258 in ?? ()
#29 0xffffffffae4c6ae0 in ?? ()
#30 0x0000000000000000 in ?? ()
#31 0xffffffff8047c70e in _mtx_lock_sleep (m=0xffffff00bbe56c50,
tid=18446742974252988032, opts=Variable "opts" is not available.
) at /usr/src/sys/kern/kern_mutex.c:339
#32 0xffffffff8057bf38 in ip_input (m=0xffffff012411cc00) at atomic.h:142
#33 0xffffffff8056e263 in dummynet_send (m=0xffffff012411cc00) at
/usr/src/sys/netinet/ip_dummynet.c:889
#34 0xffffffff8056f3a2 in dummynet_task (context=Variable "context" is
not available.
) at atomic.h:142
#35 0xffffffff804ba0af in taskqueue_run (queue=0xffffff0003456a00) at
/usr/src/sys/kern/subr_taskqueue.c:80
#36 0xffffffff804ba372 in taskqueue_thread_loop (arg=Variable "arg" is
not available.
) at /usr/src/sys/kern/subr_taskqueue.c:92
#37 0xffffffff804687df in fork_exit (callout=0xffffffff804ba300
<taskqueue_fast_run>, arg=0xffffffff80a9d458, frame=0xffffffffae4c6c80)
at /usr/src/sys/kern/kern_fork.c:781
#38 0xffffffff80743f1e in nmi_restoreregs () at
/usr/src/sys/amd64/amd64/exception.S:408
#39 0x0000000000000000 in ?? ()
#40 0x0000000000000000 in ?? ()
#41 0x0000000000000001 in ?? ()
#42 0x0000000000000000 in ?? ()
#43 0x0000000000000000 in ?? ()
#44 0x0000000000000000 in ?? ()
- ---Type <return> to continue, or q <return> to quit---
Quit
(kgdb) list *0xffffffff8047c70e
0xffffffff8047c70e is in _mtx_lock_sleep
(/usr/src/sys/kern/kern_mutex.c:341).
336                      */
337                     v = m->mtx_lock;
338                     if (v != MTX_UNOWNED) {
339                             owner = (struct thread *)(v &
~MTX_FLAGMASK);
340     #ifdef ADAPTIVE_GIANT
341                             if (TD_IS_RUNNING(owner)) {
342     #else
343                             if (m != &Giant && TD_IS_RUNNING(owner)) {
344     #endif
345                                     if
(LOCK_LOG_TEST(&m->lock_object, 0))
(kgdb)


- --
João Paulo Just
Diretor Executivo - Justsoft Informática Ltda.
http://www.justsoft.com.br/
- --
Feira de Santana, BA, Brasil.
+55 75 8104 8473
Blog: http://just.rg3.net/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFI4gjoXL+vuN2d7ZwRAnzJAJ90djQdlIkYmPwVuFzDtYSBPCgtrACfQp4P
FYjnP4QZn0phf8df8Hmr0aY=
=SwGe
-----END PGP SIGNATURE-----


Mais detalhes sobre a lista de discussão freebsd