MERAprojects / ops-build

Other
0 stars 0 forks source link

Memory corruption is visible in output after attempt to change remote-as for peer-group neighbor #15

Closed AKochin closed 7 years ago

AKochin commented 7 years ago

Preconditions:

switch# conf t
switch(config)# router bgp 77
switch(config-router)# neighbor AS_77 peer-group 
switch(config-router)# neighbor AS_77  remote-as 77
switch(config-router)# neighbor 1.1.1.1 peer-group AS_77

switch(config-router)#  do show run
Current configuration:
!
!Version OpenSwitch 0.4.0 (Build: genericx86-64-ops-0.4.0-meraswitch/devel/master-20170113050115-de
!Schema version 0.1.8

<...cut...>

router bgp 77
     bgp fast-external-failover
     neighbor AS_77 peer-group
     neighbor 1.1.1.1 remote-as 77
     neighbor 1.1.1.1 peer-group AS_77

<...cut...>

Steps to reproduce issue:

switch(config-router)# neighbor 1.1.1.1 remote-as 77 
% Bound to peer group 1.1.1.1 already, cannot change remote-as

Even after first try memory corruption take place:

     neighbor �M^ remote-as 77
     neighbor �M^ peer-group AS_77

More tries has no error message as "new" neighbor is created but in some cases can cause crash of image:

switch(config-router)# neighbor 1.1.1.1 remote-as 77
switch(config-router)# neighbor 1.1.1.1 remote-as 77
switch(config-router)# do show run
<...cut...>
!
router bgp 77
     bgp fast-external-failover
     neighbor AS_77 peer-group
     neighbor  remote-as 77             <----- old 1.1.1.1 neighbor
     neighbor  peer-group AS_77      <----- old 1.1.1.1 neighbor
     neighbor 1.1.1.1 remote-as 77               <----- new 1.1.1.1 neighbor not in peer-group
     neighbor AS_77 remote-as 77
AKochin commented 7 years ago
switch(config-router)# neighbor 1.1.1.1 remote-as 77
*** Error in `vtysh': double free or corruption (out): 0x00000000025eec00 ***