Re: Brauche Hilfe bei Kernel Crash Dump-Analyse

From: Sebastian Inacker <inacker(at)gmail.com>
Date: Mon, 20 Feb 2006 18:33:42 +0100

Hallo.

On 2/20/06, Greg 'groggy' Lehey <grog(at)freebsd.org> wrote:
[ lokale Variable "ts = (struct turnstile *) 0x0" in subr_turnstile.c ]
> 0x0 ist ein ungültiger (nicht initialisierter) Pointer und der
> Grund des Absturzes. Jetzt müsstest du rausbekommen, wieso er nicht
> initialisiert wurde.

Kann es sein, dass der Fehler irgendwo in der Bandbreitenbegrenzung
per dummynet(4) liegt? (Oder bin ich da auf dem Holzweg?)

Der Rechner macht Bandbreitenbegrenzung per Pipes, die pro IP angelegt
und wieder gelöscht werden.

Aus der Kernelkonfig dazu:

# bandwidth management
options DUMMYNET
options HZ=1000

Grund für die Vermutung:

In Frame 9:

(kgdb) f 9
#9 0xc06d3670 in dummynet (unused=0x0) at ../../../netinet/ip_dummynet.c:785
785 DUMMYNET_LOCK();

(kgdb) i loc
p = (void *) 0x0
h = (struct dn_heap *) 0x4
heaps = {0xc093cf40, 0xc093cf60, 0xc093cf50}
i = 22
pe = (struct dn_pipe *) 0x4

In Frame 7 deuted 'td_lockname = 0xc0881766 "dummynet"' (aus "(kgdb) p
*td") schon auf dummynet hin. Der Kommentar zur Stelle im Source zu
Frame 6 lautet "Pick up the lock that td is blocked on."

Ist dummynet vielversprechend (genug) als Nullpointerursache?

Den ausführlichen Backtrack mit Kommentaren zu den Stellen im Source
(betroffene Funktion) habe ich trafficschonend unter
http://www.inacker.de/data/freebsd-kgdb-debug3.txt abgelegt, falls
sich das jemand anschauen will.

Sebastian

P.S.: Greg: Leider bin ich weder mit dem Kernel noch mit C vertraut
genug, um aus Deiner Anleitung zum Debugging am Beispiel von vinum
wirklich brauchbares für mich selbst herauszulesen... (Ich hab's
versucht) :-/

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Mon 20 Feb 2006 - 18:34:40 CET

search this site