Symptom
The BGP process crashes on IOS-XR router with BGP NSR configured.
The following message is seen prior to the BGP process crash:
syslog_dev[84]: bgp[125]: : 2940 elem->element_type == BGP_ILIST_ELEM_POSTIT -- assertion failed
When the BGP process crashes all BGP sessions will drop unless the nsr process-failures switchover command is configured. When nsr process-failures switchover is configured the NSR enabled protocols are protected when the process crashes by triggering an RP failover if NSR is enabled and in the NSR ready state.
Conditions
With NSR enabled a list is maintained on the active RP to track synchronization of events between the active and standby. The BGP process crashed due to the corruption of the list.
Multiple BGP threads access the list. The corruption occurred due to a race condition whereby two different threads acted on the list.
The following BGP events may trigger this crash on a BGP NSR enabled device:
BGP Configuration Changes
Neighbor Reset
Route Refresh
This crash will not happen if BGP NSR is disabled.