Re: [mpls-linux-general] ldp aborts consistently
Status: Beta
Brought to you by:
jleu
From: James R. L. <jl...@mi...> - 2001-05-21 21:37:40
|
I found the problem. I'm not handling the case where multiple LDP PDU come in the same TCP buffer. I will work on this. Jim > Hi, > The latest CVS ldp_zebra seems to dump core quite cosistently after an > assertion failure once the 2 neighbours start a session. > Attached is a log of the (end of the) console output, and a backtrace. > It seems to depend on the timing of events - if I reduce the trace level > on the failing neighbour the other one would abort instead (althugh in a > little earlier - after a keep-alive message). > -- > Eran Mann Direct : 972-4-9936230 > Senior Software Engineer Fax : 972-4-9890430 > Optical Access Email : em...@op... > ENTER: ldp_event > TCP_DATA > ->>>>>>>>>>>>>>>>>>>> SOCK: ldp_socket_tcp_read fd 8 > TCP_DATA 62 > Before header decode: size = 62 > OUT: Found type 300 > OUT: 03 00 00 0e 00 00 00 04 01 01 00 06 00 01 0a 0b > OUT: 0c b5 00 01 00 1e 0a 0b 0c b5 00 00 04 00 00 14 > OUT: 00 00 00 05 01 00 00 04 02 00 01 00 02 00 00 04 > OUT: 00 00 01 b2 > OUT: decodedSize for Adr msg = 18 > OUT: LPD Header : protocolVersion = 1 > OUT: pduLength = 24 > OUT: lsrAddress = a0b0cb5 > OUT: labelSpace = 0 > OUT: ADDRESS MSG ***START***: > OUT: baseMsg : uBit = 0 > OUT: msgType = 300 > OUT: msgLength = 14 > OUT: msgId = 4 > OUT: adrListTlv: > OUT: Tlv: > OUT: BaseTlv: uBit = 0 > OUT: fBit = 0 > OUT: type = 101 > OUT: length = 6 > OUT: adrListTlv data: addrFamily = 1 > OUT: adrListTlv addresses (with 1 addresses) : > OUT: > a0b0cb5 > OUT: ADDRESS MSG ***END***: > OUT: Mesg size: 18 (52) > ENTER: ldp_state_machine > OUT: FSM: state 5, event 4 > ENTER: ldp_state_process > ENTER: ldp_addr_process > OUT: Addr Recv: session(1) > EXIT: ldp_addr_process > EXIT: ldp_state_process > EXIT: ldp_state_machine > OUT: Found type 1 > OUT: 00 01 00 1e 0a 0b 0c b5 00 00 04 00 00 14 00 00 > OUT: 00 05 01 00 00 04 02 00 01 00 02 00 00 04 00 00 > OUT: 01 b2 > OUT: decodedSize for Notif msg = -63 > ENTER: ldp_state_machine > OUT: FSM: state 5, event 6 > Entered notif state > ENTER: ldp_state_notif > ENTER: ldp_notif_process > ldp_zebra: ldp_notif.c:160: ldp_notif_process: Assertion `0' failed. > Aborted (core dumped) > > (gdb) bt > #0 0x400624e1 in __kill () from /lib/libc.so.6 > #1 0x40062156 in raise (sig=6) at ../sysdeps/posix/raise.c:27 > #2 0x40063868 in abort () at ../sysdeps/generic/abort.c:88 > #3 0x4005c3ce in __assert_fail (assertion=0x8083be3 "0", > file=0x8083bd7 "ldp_notif.c", line=160, > function=0x8083bc5 "ldp_notif_process") at assert.c:59 > #4 0x8064a7a in ldp_notif_process (g=0x80ace70, s=0x80bba70, a=0x0, e=0x0, > r_attr=0x80bfe88) at ldp_notif.c:160 > #5 0x805f1c0 in ldp_state_notif (g=0x80ace70, s=0x80bba70, adj=0x0, > entity=0x0, event=6, msg=0xbfffbc64, from=0xbffffc54) > at ldp_state_funcs.c:437 > #6 0x805e40e in ldp_state_machine (g=0x80ace70, session=0x80bba70, adj=0x0, > entity=0x0, event=6, msg=0xbfffbc64, from=0xbffffc54) > at ldp_state_machine.c:358 > #7 0x805e230 in ldp_event (g=0x80ace70, socket=0x80ad8c8, user_from=0x0, > if_handle=0x0, buf=0x8091840, extra=0x80bba70, event=LDP_EVENT_NOTIF) > at ldp_state_machine.c:288 > #8 0x806999c in zldp_socket_read_handler (t=0xbffffce4) > at zldp_socket_impl.c:73 > #9 0x80759a6 in thread_call (thread=0xbffffce4) at thread.c:728 > #10 0x804a266 in main (argc=1, argv=0xbffffd54, envp=0xbffffd5c) > at ldp_zebra.c:613 > (gdb) -- James R. Leu |