[Xorp-cvs] XORP cvs commit: xorp/rib
Pavlin Radoslavov
pavlin at icir.org
Tue Oct 2 17:05:49 PDT 2007
CVSROOT: /usr/local/share/doc/apache/cvs
Module name: xorp
Changes by: pavlin at xorpc.icir.org 2007-10-03 00:05:49 UTC
XORP CVS repository
Modified files:
rib Makefile.am Makefile.in redist_xrl.cc rib.cc rib.hh
route.hh rt_tab_extint.cc test_deletion.cc
test_redist.cc
Added files:
rib route.cc
Log message:
Fix a race condition when deleting a XORP interface.
Previously the corresponding Vif entry inside the RIBwas removed
immediately. However, this triggered a coredump if a routing protocol
tried to delete the routes that use the deleted vif.
By the time the delete XRL reaches the RIB the routes will contain
invalid Vif pointers that point to the deleted Vif entry.
The solution is to use a reference counter and postpone the deletion
of the vif entry until all routers that point to that vif have
been deleted.
Bug found by: Ben Greear <greearb AT candelatech.com>
Revision Changes Path
1.42 +2 -1; commitid: 971b4702db7d7ea6; xorp/rib/Makefile.am
1.62 +3 -2; commitid: 971b4702db7d7ea6; xorp/rib/Makefile.in
1.32 +2 -1; commitid: 971b4702db7d7ea6; xorp/rib/redist_xrl.cc
1.68 +107 -56; commitid: 971b4702db7d7ea6; xorp/rib/rib.cc
1.41 +65 -7; commitid: 971b4702db7d7ea6; xorp/rib/rib.hh
1.8 +57 -0 xorp/rib/route.cc (new)
1.24 +11 -23; commitid: 971b4702db7d7ea6; xorp/rib/route.hh
1.33 +4 -3; commitid: 971b4702db7d7ea6; xorp/rib/rt_tab_extint.cc
1.12 +6 -3; commitid: 971b4702db7d7ea6; xorp/rib/test_deletion.cc
1.15 +4 -2; commitid: 971b4702db7d7ea6; xorp/rib/test_redist.cc
More information about the Xorp-cvs
mailing list