Hello Ondrej,

I think I found the root cause of the messages on my console/log: I think I managed to run bird twice from the same config at the same time. This would cause horrible things to happen. When I killed Bird on all my routers (VMs) and started everything in an orderly manner, the messages were gone.

I had an error in my config, which prevented the virtual link to start, but when I fixed that (I had defined all the connections between three routers in area 1 as pointopoint links, which doesn't work off course) the virtual link came up and everything works now, as can be seen in the output I've attached to this e-mail in the file bird_output.txt

To be absolutely clear: thanks for the patch, this fixes the original segfault issue.

Kind regards,
Cybertinus

On 2018-12-10 21:17, Cybertinus wrote:
Hello Ondrej,

Thanks for the quick response and patch! I just applied it on a stock
1.6.4 source, compiled it on my CentOS 7.6 testmachines (with
./configure --prefix=/ --enable-debug; make; make install) and loaded
my config with it.
My console/logfile is now being flooded with messages like:
bird: ospf1: Bad DBDES packet from nbr 2.2.2.2 on enp0s8 - MS-bit mismatch (7)
bird: ospf1: Bad DBDES packet from nbr 2.2.2.2 on enp0s8 - DD sequence
number mismatch (4281812757)
bird: ospf1: Bad DBDES packet from nbr 2.2.2.2 on enp0s8 - DD sequence
number mismatch (4177508748)
bird: ospf1: Bad DBDES packet from nbr 2.2.2.2 on enp0s8 - MS-bit mismatch (7)
bird: ospf1: Bad DBDES packet from nbr 2.2.2.2 on enp0s8 - too late
for DD exchange (7)

But I suspect that this is because I have something wrong in my Bird
config (it is a test network for a reason off course ;) ).

Will this patch be included in a 1.6.5 release? And do you know when
such a version will be available?
Does 2.0.x have the same problem and can this patch fix the issue there too?

Kind regards,
Cybertinus

On 2018-12-10 02:04, Ondrej Zajicek wrote:
On Sat, Dec 08, 2018 at 09:48:52PM +0100, Cybertinus wrote:
Hello everybody,

Today I was experimenting with a Bird setup. All the Bird machines are
CentOS 7.6 VMs running in Virtualbox on my laptop. When I add an OSPF
virtual link to hook up two area 0's together I get a segfault of Bird 1.6.4 itself. All the links between the VMs are defined as "Internal Network" links. Each connection between routers got it's own internal network, so
there should be no overlap between those connections.

Hello

Thanks for the thorough bugreport, the attached patch should fix the issue.

Steps to reproduce:
1. Create a bird.conf with the following contents specified in the attached
bird.conf
2. Start Bird
3. Add the following line to the area 1 config:
       virtual link 2.2.2.2;
4. Run `birdc configure`
5. Observe the following error in your syslog:
Dec 8 21:01:35 r3 kernel: bird[3469]: segfault at 32 ip 0000000000429fe0 sp
00007fff599d3350 error 4 in bird[400000+73

Technically it would crash during reconfiguration when vlink is already
defined, even if the reconfiguration changes nothing.
bird> show ospf
ospf1:
RFC1583 compatibility: disabled
Stub router: No
RT scheduler tick: 1
Number of areas: 2
Number of LSAs in DB:   28
        Area: 0.0.0.0 (0) [BACKBONE]
                Stub:   No
                NSSA:   No
                Transit:        No
                Number of interfaces:   2
                Number of neighbors:    2
                Number of adjacent neighbors:   2
        Area: 0.0.0.1 (1) 
                Stub:   No
                NSSA:   No
                Transit:        Yes
                Number of interfaces:   2
                Number of neighbors:    2
                Number of adjacent neighbors:   2
bird> show ospf interface 
ospf1:
Virtual link vlink0 to 2.2.2.2
        Peer IP: 10.23.1.2
        Transit area: 0.0.0.1 (1)
        State: PtP
        Priority: 0
        Cost: 10
        Hello timer: 10
        Wait timer: 40
        Dead timer: 40
        Retransmit timer: 5
Interface enp0s10 (10.35.1.0/24)
        Type: ptp
        Area: 0.0.0.0 (0)
        State: PtP
        Priority: 1
        Cost: 10
        Hello timer: 10
        Wait timer: 40
        Dead timer: 40
        Retransmit timer: 5
Interface enp0s8 (10.23.1.0/24)
        Type: broadcast
        Area: 0.0.0.1 (1)
        State: DR
        Priority: 1
        Cost: 10
        Hello timer: 10
        Wait timer: 40
        Dead timer: 40
        Retransmit timer: 5
        Designated router (ID): 3.3.3.3
        Designated router (IP): 10.23.1.3
        Backup designated router (ID): 2.2.2.2
        Backup designated router (IP): 10.23.1.2
Interface enp0s9 (10.34.1.0/24)
        Type: broadcast
        Area: 0.0.0.1 (1)
        State: DR
        Priority: 1
        Cost: 10
        Hello timer: 10
        Wait timer: 40
        Dead timer: 40
        Retransmit timer: 5
        Designated router (ID): 3.3.3.3
        Designated router (IP): 10.34.1.3
        Backup designated router (ID): 4.4.4.4
        Backup designated router (IP): 10.34.1.4

Reply via email to