On 11 Mar 2016, at 5:09, Donald Sharp wrote:

> Martin -
>
> If I could get a decode of this:
>
> 2016/03/09 09:42:20 BGP: [bt 3] bgpd(+0x5c2f0) [0x7f495cb132f0]
>
> I could probably fix/narrow down the problem real fast.

Ok, did a run with full symbols and looked into the reason for it.

Here is how I can reproduce it:

Only single box needed, BGP neighbors do not need to exist

Start with this basic BGP config with a redistribute static in it:

        interface eth1
        ip address 192.168.1.101/24
        no shutdown
        !
        router bgp 500
        redistribute static
        network 192.168.1.0/24
        neighbor 192.168.1.1 remote-as 501
        neighbor 192.168.1.1 timers 60 180
        neighbor 192.168.1.1 ebgp-multihop
        end

Now add a static route
        config ter
        ip route 30.0.6.0 255.255.255.0 192.168.2.1
        end

Wait a few seconds, then remove static route
        config ter
        no ip route 30.0.6.0 255.255.255.0 192.168.2.1
        end

—> crash

Here is what some more crash info:

Program received signal SIGABRT, Aborted.
0x00007ffff74c8cc9 in __GI_raise (sig=sig@entry=6)

(gdb) bt
#0  0x00007ffff74c8cc9 in __GI_raise (sig=sig@entry=6)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1  0x00007ffff74cc0d8 in __GI_abort () at abort.c:89
#2  0x00007ffff7b9daa3 in _zlog_assert_failed (assertion=0x7ffff7bb9b28 "0", 
    file=0x7ffff7bb9970 "stream.c", line=413, 
    function=0x7ffff7bb9d11 <__func__.9032> "stream_getl") at log.c:669
#3  0x00007ffff7b98612 in stream_getl (s=0x78b620) at stream.c:413
#4  0x00000000004497ee in zebra_read_ipv4 (command=8, zclient=0x78b4f0, 
    length=17, vrf_id=0) at bgp_zebra.c:265
#5  0x00007ffff7ba5a9f in zclient_read (thread=0x7fffffffeae0)
    at zclient.c:1038
#6  0x00007ffff7b898a9 in thread_call (thread=0x7fffffffeae0) at thread.c:1260
#7  0x00000000004075c2 in main (argc=1, argv=0x7fffffffec48) at bgp_main.c:481

(gdb) up
#1  0x00007ffff74cc0d8 in __GI_abort () at abort.c:89
89      abort.c: No such file or directory.
(gdb) up
#2  0x00007ffff7b9daa3 in _zlog_assert_failed (assertion=0x7ffff7bb9b28 "0", 
    file=0x7ffff7bb9970 "stream.c", line=413, 
    function=0x7ffff7bb9d11 <__func__.9032> "stream_getl") at log.c:669
669       abort();

(gdb) up
#3  0x00007ffff7b98612 in stream_getl (s=0x78b620) at stream.c:413
413           STREAM_BOUND_WARN (s, "get long");
(gdb) list
408     
409       STREAM_VERIFY_SANE(s);
410       
411       if (STREAM_READABLE (s) < sizeof (u_int32_t))
412         {
413           STREAM_BOUND_WARN (s, "get long");
414           return 0;
415         }
416       
417       l  = s->data[s->getp++] << 24;

(gdb) up
#4  0x00000000004497ee in zebra_read_ipv4 (command=8, zclient=0x78b4f0, 
    length=17, vrf_id=0) at bgp_zebra.c:265
265           stream_getl (s); /* ifindex, unused */
(gdb) list
260           nexthop.s_addr = stream_get_ipv4 (s);
261         }
262       if (CHECK_FLAG (api.message, ZAPI_MESSAGE_IFINDEX))
263         {
264           api.ifindex_num = stream_getc (s);
265           stream_getl (s); /* ifindex, unused */
266         }
267       if (CHECK_FLAG (api.message, ZAPI_MESSAGE_DISTANCE))
268         api.distance = stream_getc (s);
269       if (CHECK_FLAG (api.message, ZAPI_MESSAGE_METRIC))


Hope this helps

- Martin


> On Thu, Mar 10, 2016 at 8:59 PM, Martin Winter <
> [email protected]> wrote:
>
>> (New thread so people actually see it)
>>
>> I really wish my suggestion to Donald/Paul would have been followed and we
>> would have created a RC version first
>> or at least updated Master first with giving me a few days for some
>> checks…  :-(
>>
>> Anyway, the brand new version 1.0.20160309 crashes in my BGP Tests:
>>
>> 2016/03/09 09:42:20 BGP: vty[??]@# exit
>> 2016/03/09 09:42:20 BGP: stream_getl: Attempt to get long out of bounds
>> 2016/03/09 09:42:20 BGP: &(struct stream): 0x7f495d91f6b0, size: 4096,
>> getp: 23, endp: 25
>>
>> 2016/03/09 09:42:20 BGP: Assertion `0' failed in file stream.c, line 413,
>> function stream_getl
>> 2016/03/09 09:42:20 BGP: Backtrace for 9 stack frames:
>> 2016/03/09 09:42:20 BGP: [bt 0]
>> /usr/lib/libzebra.so.0(zlog_backtrace+0x2b) [0x7f495c661c10]
>> 2016/03/09 09:42:20 BGP: [bt 1]
>> /usr/lib/libzebra.so.0(_zlog_assert_failed+0xa1) [0x7f495c66234c]
>> 2016/03/09 09:42:20 BGP: [bt 2] /usr/lib/libzebra.so.0(stream_getl+0x7f)
>> [0x7f495c65ef69]
>> 2016/03/09 09:42:20 BGP: [bt 3] bgpd(+0x5c2f0) [0x7f495cb132f0]
>> 2016/03/09 09:42:20 BGP: [bt 4] /usr/lib/libzebra.so.0(+0x34141)
>> [0x7f495c666141]
>> 2016/03/09 09:42:20 BGP: [bt 5] /usr/lib/libzebra.so.0(thread_call+0x7e)
>> [0x7f495c656728]
>> 2016/03/09 09:42:20 BGP: [bt 6] bgpd(main+0x417) [0x7f495caec22a]
>> 2016/03/09 09:42:20 BGP: [bt 7]
>> /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5) [0x7f495bf88ec5]
>> 2016/03/09 09:42:20 BGP: [bt 8] bgpd(+0x35267) [0x7f495caec267]
>> 2016/03/09 09:42:20 BGP: Current thread function zclient_read, scheduled
>> from file zclient.c, line 1131
>>
>> This is on Ubuntu 14.04
>>
>> I’ll start digging into the details, just wanted to give a heads up.
>>
>> Any hints on differences to the Proposed/6 branch?
>>
>> - Martin
>> (Would like to be excited on 1.0…)
>>
>> _______________________________________________
>> Quagga-dev mailing list
>> [email protected]
>> https://lists.quagga.net/mailman/listinfo/quagga-dev

_______________________________________________
Quagga-dev mailing list
[email protected]
https://lists.quagga.net/mailman/listinfo/quagga-dev

Reply via email to