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