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-19 09:25:21
|
I found the problem. I'll follow up on mpls-linux-devel since it will probably involve code rework... Le lundi 18 avril 2005 =C3=A0 21:02 +0200, Vincent Untz a =C3=A9crit : > No : it's just crashing before it can do anything. >=20 > 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. >=20 > There's absolutely no traffic occuring during my test. The crash is also > reproducable with a small program that just calls getifaddrs(). >=20 > 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!). >=20 > 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)... >=20 > 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&foru= m_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 d= ecode > > > 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 d= ecode > > > 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 Vincent --=20 Les gens heureux ne sont pas press=C3=A9s. |