]> git.proxmox.com Git - mirror_frr.git/commit - bgpd/bgp_fsm.c
[bgpd] Peer delete can race with reconfig leading to crash
authorPaul Jakma <paul.jakma@sun.com>
Thu, 22 Feb 2007 17:48:42 +0000 (17:48 +0000)
committerPaul Jakma <paul.jakma@sun.com>
Thu, 22 Feb 2007 17:48:42 +0000 (17:48 +0000)
commitf2c31acb6f97688af0f368211536829324145919
tree6f9887992eeb0890fdf673f9c0794e7d1384edbb
parent553bdfe376c49886cbdc2d306fea7b003bead31f
[bgpd] Peer delete can race with reconfig leading to crash

2007-02-22 Paul Jakma <paul.jakma@sun.com>

* bgp_fsm.c: (bgp_fsm_change_status) Handle state change into
  clearing or greater here. Simpler.
  (bgp_event) Clearing state change work moved to previous
* bgp_route.c: (bgp_clear_route_node) Clearing adj-in here
  is too late, as it leaves a race between a peer being deleted
  and an identical peer being configured before clearing
  completes, leading to a crash.
  Simplest fix is to clean peers Adj-in up-front, rather than
  queueing such work.
  (bgp_clear_route_table) Clear peer's Adj-In and Adj-Out
  up-front here, rather than queueing such work.
  Extensive comment added on the various bits of indexed data
  that exist and how they need to be dealt with.
  (bgp_clear_route) Update comment.
bgpd/ChangeLog
bgpd/bgp_fsm.c
bgpd/bgp_route.c