[Olsr-dev] OLSRd SegFault

Ferry Huberts (spam-protected)
Wed Apr 20 23:14:33 CEST 2016



On 20/04/16 22:25, Gabriel wrote:
>
> On 20/04/2016 21:49, Ferry Huberts wrote:
>> Please give me more info so that I can try to reproduce it.
>>
>> How did you compile?
> I compiled it locally on the machine, i've tryied a couple of times.
> These are the commands i use:
>
> git clone https://github.com/OLSR/olsrd.git
> cd olsrd
> make
> make libs
> make install
> make install_libs
>
>
>> How did you run?
>
> /usr/local/sbin/olsrd -f /etc/olsrd/olsrd.conf.netjson
>
>
>> What do your interface look like (ifconfig)?
> 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
>      link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
>      inet 127.0.0.1/8 scope host lo
>         valid_lft forever preferred_lft forever
>      inet6 fdc0:ffee::10:150:25:1/128 scope global
>         valid_lft forever preferred_lft forever
>      inet6 ::1/128 scope host
>         valid_lft forever preferred_lft forever
> 2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue
> master br0 state DOWN
>      link/ether 04:18:d6:31:37:9f brd ff:ff:ff:ff:ff:ff
> 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state
> UNKNOWN
>      link/ether 04:18:d6:31:37:a0 brd ff:ff:ff:ff:ff:ff
>      inet6 fe80::618:d6ff:fe31:37a0/64 scope link
>         valid_lft forever preferred_lft forever
> 4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state
> UNKNOWN
>      link/ether 04:18:d6:31:37:a1 brd ff:ff:ff:ff:ff:ff
>      inet 150.***.***.***/24 brd 150.***.***.255 scope global eth2
>         valid_lft forever preferred_lft forever
>      inet6 fe80::618:d6ff:fe31:37a1/64 scope link
>         valid_lft forever preferred_lft forever
> 5: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
>      link/ether 04:18:d6:31:37:9f brd ff:ff:ff:ff:ff:ff
>      inet 10.150.25.1/24 brd 10.150.25.255 scope global br0
>         valid_lft forever preferred_lft forever
>      inet6 fe80::9850:fcff:febf:9894/64 scope link
>         valid_lft forever preferred_lft forever
> 6: (spam-protected): <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue
> state UP
>      link/ether 04:18:d6:31:37:a0 brd ff:ff:ff:ff:ff:ff
>      inet 172.19.189.3/16 brd 172.19.255.255 scope global eth1.4
>         valid_lft forever preferred_lft forever
>      inet6 fe80::618:d6ff:fe31:37a0/64 scope link
>         valid_lft forever preferred_lft forever
> 7: (spam-protected): <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue
> state UP
>      link/ether 04:18:d6:31:37:a0 brd ff:ff:ff:ff:ff:ff
>      inet 172.19.189.2/16 brd 172.19.255.255 scope global eth1.3
>         valid_lft forever preferred_lft forever
>      inet6 fe80::618:d6ff:fe31:37a0/64 scope link
>         valid_lft forever preferred_lft forever
> 8: (spam-protected): <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue
> master br0 state UP
>      link/ether 04:18:d6:31:37:a0 brd ff:ff:ff:ff:ff:ff
>      inet6 fe80::618:d6ff:fe31:37a0/64 scope link
>         valid_lft forever preferred_lft forever
> 9: (spam-protected): <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue
> state UP
>      link/ether 04:18:d6:31:37:a0 brd ff:ff:ff:ff:ff:ff
>      inet 172.19.189.1/16 brd 172.19.255.255 scope global eth1.2
>         valid_lft forever preferred_lft forever
>      inet6 fe80::618:d6ff:fe31:37a0/64 scope link
>         valid_lft forever preferred_lft forever
> 10: (spam-protected): <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc
> noqueue state UP
>      link/ether 04:18:d6:31:37:a0 brd ff:ff:ff:ff:ff:ff
>      inet 172.19.189.4/16 brd 172.19.255.255 scope global eth1.5
>         valid_lft forever preferred_lft forever
>      inet6 fe80::618:d6ff:fe31:37a0/64 scope link
>         valid_lft forever preferred_lft forever
>
>
>
>>
>> When does it crash? During startup?
>
> It crashes immediatly, but looking at the stdout it looks like it
> crashes after he interact with some peer.
>
> I've made a test only with br0 as interface and it doesn't crashes.
>
>
>
>>
>> It works fine for me.
>
> I think the key point is the MIPS architecture.
>
> 2 years ago I found a bug on this architecture.
> https://github.com/OLSR/olsrd/commit/f1db5724d04dc92866afe60858c344cc29b0b18e

I fail to see what that commit has to do with this problem

>
> It was causing a SegFault only on MIPS machines.
>
>
>
>>
>> Try to run with a debug version (DEBUG=1) and with -nofork.
>> If it crashes then repeat it using strace.
>
>
> This is the output of gdb backtrace
>
> IP addr (2-hop)  IP addr (1-hop)  Total cost
> Received MID from NON SYM neighbor 172.19.64.1
> Received MID from NON SYM neighbor 172.19.64.1
> Received HNA from NON SYM neighbor 172.19.64.1
> Received MID from NON SYM neighbor 172.19.64.1
> Received HNA from NON SYM neighbor 172.19.64.1
> Received HNA from NON SYM neighbor 172.19.64.1
> Adding 172.19.189.4=>172.19.64.1 to link set
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x00425844 in set_loss_link_multiplier (entry=0x4a4d08) at
> src/link_set.c:361
> 361	  OLSR_PRINTF(1, "Set linkloss multiplier for %s on %s to %d\n",

that is weird, it crashes in the olsr_printf

Does the attached patch help?

> (gdb) bt
> #0  0x00425844 in set_loss_link_multiplier (entry=0x4a4d08) at
> src/link_set.c:361
> #1  0x004265a0 in add_link_entry (local=0x4a3474, remote=0x7fdff194,
> remote_main=0x7fdff050, vtime=20000, htime=2000, local_if=0x4a3408) at
> src/link_set.c:602
> #2  0x00426ce4 in update_link_entry (local=0x4a3474, remote=0x7fdff194,
> message=0x7fdff048, in_if=0x4a3408) at src/link_set.c:702
> #3  0x00440ee4 in olsr_hello_tap (message=0x7fdff048, in_if=0x4a3408,
> from_addr=0x7fdff194) at src/process_package.c:417
> #4  0x00440d70 in olsr_input_hello (ser=0x493a40, inif=0x4a3408,
> from=0x7fdff194) at src/process_package.c:385
> #5  0x0043d484 in parse_packet (olsr=0x4939b4, size=196, in_if=0x4a3408,
> from_addr=0x7fdff194) at src/parser.c:397
> #6  0x0043da90 in olsr_input (fd=11, data=0x0, flags=1) at src/parser.c:511
> #7  0x004460a0 in poll_sockets () at src/scheduler.c:382
> #8  0x00446b3c in olsr_scheduler () at src/scheduler.c:540
> #9  0x00430ab4 in main (argc=6, argv=0x7fdff934) at src/main.c:738
> (gdb)
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-link_set-use-the-entry-name-in-a-printf.patch
Type: text/x-patch
Size: 891 bytes
Desc: not available
URL: <http://lists.olsr.org/pipermail/olsr-dev/attachments/20160420/e9d41e7b/attachment.bin>


More information about the Olsr-dev mailing list