Re: [mpls-linux-general] Crash in getifaddrs() when using a mpls-enabled kernel
Status: Beta
Brought to you by:
jleu
|
From: Vincent U. <vin...@im...> - 2005-04-18 19:03:04
|
No : it's just crashing before it can do anything. When tcpdump starts, it looks for available interfaces by calling getifaddrs() to know on what interfaces it can listen. This call crashs if I've setup an ilm and does not crash if there's no ilm. There's absolutely no traffic occuring during my test. The crash is also reproducable with a small program that just calls getifaddrs(). I've tried to debug this and it seems that getifaddrs() uses netlink to get the interfaces in glibc >=3D 2.3.3. And there's a bogus netlink RTM_NEWADDR (IIRC) message that is received when the crash is happening (the interface index is wrong, with a value like 6323421!). I don't know if it's a bug in mpls or in the glibc since 'ip link show' does not crash (and it uses netlink to get the list of interfaces too)... Le lundi 18 avril 2005 =C3=A0 13:06 -0500, James R. Leu a =C3=A9crit : > If I understand correctly, you're saying that tcpdump is crashing when > it tries to decode MPLS packets on the receive side? >=20 > On Mon, Apr 18, 2005 at 02:19:21PM +0200, Vincent Untz wrote: > > Hi, > >=20 > > I'm experiencing the problem described in > > http://sourceforge.net/mailarchive/forum.php?thread_id=3D6272612&forum_= id=3D5051 > >=20 > > In order to make sure I was not doing something wrong, I installed a > > stock fedora core 2, used the rpm provided on the mpls-linux project > > page. > >=20 > > Here are the steps to reproduce the crash: > >=20 > > [root@tom3 root]# cat /sys/mpls/version > > 1.946 > > [root@tom3 root]# mpls labelspace add dev eth0 labelspace 0 > > [root@tom3 root]# mpls ilm add label gen 10000 labelspace 0 > > [root@tom3 root]# mpls ilm show > > ILM entry label gen 10000 labelspace 0 proto ipv4 > > pop peek (0 bytes, 0 pkts, 0 dropped) > > [root@tom3 root]# tcpdump > > Aborted > > [root@tom3 root]# tcpdump -i eth0 > > tcpdump: verbose output suppressed, use -v or -vv for full protocol dec= ode > > listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes > > ... > > [root@tom3 root]# mpls ilm del label gen 10000 labelspace 0 > > [root@tom3 root]# tcpdump > > tcpdump: verbose output suppressed, use -v or -vv for full protocol dec= ode > > listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes > > ... > >=20 > > Here's a stack trace: > > (gdb) bt > > #0 0xffffe410 in ?? () > > #1 0xbffff5b8 in ?? () > > #2 0x00000006 in ?? () > > #3 0x00000c9e in ?? () > > #4 0xb7eebe59 in raise () from /lib/tls/libc.so.6 > > #5 0xb7eed882 in abort () from /lib/tls/libc.so.6 > > #6 0xb7f9d3fb in getifaddrs () from /lib/tls/libc.so.6 > > #7 0x0808bedd in error () > > #8 0x0808d0b9 in pcap_setnonblock_fd () > > #9 0x08081264 in ?? () > > #10 0xbffff8c0 in ?? () > > #11 0xbffffa74 in ?? () > > #12 0x080b14a8 in _IO_stdin_used () > > #13 0x00000000 in ?? () > >=20 > > I can always reproduce this. Is there anything I can do to help? > >=20 > > Thanks, > >=20 > > Vincent > >=20 > > --=20 > > Les gens heureux ne sont pas press??s. >=20 >=20 >=20 Vincent --=20 Les gens heureux ne sont pas press=C3=A9s. |