[Xorp-cvs] XORP cvs commit: xorp/bgp
Atanu Ghosh
atanu at icir.org
Fri Aug 22 08:56:11 PDT 2008
CVSROOT: /usr/local/www/data/cvs
Module name: xorp
Changes by: atanu at chum.icir.org 2008-08-22 15:56:11 UTC
XORP CVS repository
Modified files:
bgp peer.hh
Log message:
Radim Kolar reports that BGP crashes after a peering is taken
down.
A backtrace was provided:
#6 0x08278859 in xlog_fatal (module_name=0x6 <Address 0x6 out of bounds>,
where=0x0, fmt=0x0) at xlog.c:435
#7 0x08135a20 in SocketClient::connect (this=0x84f3000, cb=
{_M_ptr = 0x8502120, _M_index = 318}) at socket.cc:190
#8 0x08093345 in BGPPeer::connect_to_peer (this=0x838bc00, cb=Cannot access mem
ory at address 0x0
) at peer.hh:258
#9 0x0808a1a0 in BGPPeer::event_start (this=0x838bc00) at peer.cc:576
#10 0x0808b2dc in BGPPeer::event_idle_hold_exp (this=0x838bc00) at peer.cc:952
#11 0x080975b9 in XorpMemberCallback0B0<void, BGPPeer>::dispatch (
this=0x8502080) at callback_nodebug.hh:305
#12 0x0829590e in OneoffTimerNode2::expire (this=0x83ab300) at timer.cc:184
#13 0x08293c93 in TimerList::expire_one (this=0x8354004, worst_priority=4)
at timer.cc:477
#14 0x082939f6 in TimerList::run (this=0x8354004) at timer.cc:424
#15 0x0827e01f in EventLoop::run (this=0x8354000) at eventloop.cc:112
#16 0x0805069c in BGPMain::main_loop (this=0xbfbfea90) at bgp.cc:793
#17 0x0805de45 in main (argv=0xbfbfec48) at main.cc:86
From the stack it looks as if the idle hold timer fired and tried to make
a new connection, and it looks like the _SocketClient was probably
zero, hence the crash.
If a peering is taken down then the idle hold timer should be
cancelled.
It would be good to reproduce the problem locally before applying a
fix, so just add an ASSERT to check that _SocketClient is valid.
Bugzilla URL: http://bugzilla.xorp.org/bugzilla/show_bug.cgi?id=729
Bug found by: Radim Kolar <hsn AT sendmail.cz>
Revision Changes Path
1.51 +2 -1; commitid: 9ce648aee19b41a7; xorp/bgp/peer.hh
More information about the Xorp-cvs
mailing list