Moin!
Ich habe hier einen Server, der sich seit neustem immer mal wieder
rebootet hat. Ueber die serielle Konsole konnte ich dann rausfinden, das
er sich aufgrund einer Panic neu startet.
Der Kernel steigt immer im Dummynet-Code aus, das ist auch tatsaechlich
eine Stelle an der es kuerzlich eine Aenderung bei uns auf dem Server
gegeben hat, es wird nun halbstuendlich an den Dummynet-Pipes
herumgestellt um Benutzer zeitnah ins Shaping einzubauen.
Anscheinend mache ich dabei etwas, das dem Dummynet-Code nicht gefaellt.
Ich bin nun grade dabei, lt. Developer Handbuch alle Informationen zu
sammeln die ich wohl fuer einen ordentlich Bug-Report brauche, bin mir
aber nicht so ganz sicher ob ich alles richtig machen.
Das System ist ein 4-stable vom 4.2.2005, ich habe jetzt einen
Debug-Kernel installiert und crashdumps aktiviert, was mich auch
informationen liefert:
--8<--
IdlePTD at physical address 0x0037b000
initial pcb at physical address 0x002df260
panicstr: page fault
panic messages:
--- Fatal trap 12: page fault while in kernel mode fault virtual address = 0x8001c fault code = supervisor read, page not present instruction pointer = 0x8:0xc01b0e31 stack pointer = 0x10:0xdb17fca0 frame pointer = 0x10:0xdb17fcac code segment = base 0x0, limit 0xfffff, type 0x1b = DPL 0, pres 1, def32 1, gran 1 processor eflags = interrupt enabled, resume, IOPL = 0 current process = 7555 (sh) interrupt mask = net tty trap number = 12 panic: page fault syncing disks... 29 1 done Uptime: 9h16m5s -->8-- Der Instruction Pointer ist nun ueber mehrere Panics hinweg der gleiche: --8<-- (kgdb) list *0xc01b0e31 0xc01b0e31 is in transmit_event (/usr/home/stable/src/sys/netinet/ip_dummynet.c:484). 479 printf("dummynet: bad switch %d!\n", pkt->dn_dir); 480 m_freem(pkt->dn_m); 481 break ; 482 } 483 free(pkt, M_DUMMYNET); 484 } 485 /* if there are leftover packets, put into the heap for next event */ 486 if ( (pkt = pipe->head) ) 487 heap_insert(&extract_heap, pkt->output_time, pipe ) ; 488 /* XXX should check errors on heap_insert, by draining the (kgdb) -->8-- Ich bin mir nun nur unsicher, ob denn da in Zeile 484 wirklich ein Panic passieren kann, weil das ist ja nur die schliessende Klammer? Waere nett wenn mir da jemand mal kurz sagen koennte ob die Informationen so sinnvoll aussehen, oder ob noch irgendwas falsch laeuft und ich noch was aendern muss. Danke schonmal, Eike -- Eike Bernhardt http://unorganized.net/ ICQ: 11256658 The nice thing about standards is that there are so many of them to choose from. -- Andrew S. Tanenbaum To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org with "unsubscribe de-bsd-questions" in the body of the messageReceived on Mon 07 Feb 2005 - 12:23:35 CET