[Xorp-hackers] xorp_fea crashes when interface is removed from OS at in-opportune time.

Ben Greear greearb at candelatech.com
Fri Oct 19 19:53:17 PDT 2007


Seems xorp is very fragile when it comes to adding/deleting
interfaces.  I think a lot of these errors should just be warnings,
not asserts.


===================================================================
RCS file: /cvs/xorp/fea/data_plane/fibconfig/fibconfig_entry_set_netlink_socket.cc,v
retrieving revision 1.15
diff -u -r1.15 fibconfig_entry_set_netlink_socket.cc
--- fibconfig_entry_set_netlink_socket.cc       12 Oct 2007 07:53:47 -0000      1.15
+++ fibconfig_entry_set_netlink_socket.cc       20 Oct 2007 02:50:35 -0000
@@ -268,9 +268,9 @@
             }

             // Catchall.
-           XLOG_FATAL("Could not find interface index for name %s",
+           XLOG_ERROR("Could not find interface index for name %s, maybe it was just deleted?",
                        fte.vifname().c_str());
-           break;
+           return XORP_ERROR;
         } while (false);
      }


#0  0xffffe410 in __kernel_vsyscall ()
#1  0x49d42ee9 in raise () from /lib/libc.so.6
#2  0x49d444f1 in abort () from /lib/libc.so.6
#3  0x08287659 in xlog_fatal (module_name=Could not find the frame base for "xlog_fatal".
) at xlog.c:435
#4  0x08106a46 in FibConfigEntrySetNetlinkSocket::add_entry (this=0x842e9f8, fte=@0x778f1e24)
     at fibconfig_entry_set_netlink_socket.cc:271
#5  0x0810706d in FibConfigEntrySetNetlinkSocket::add_entry4 (this=0x842e9f8, fte=@0x8472e40)
     at fibconfig_entry_set_netlink_socket.cc:100
#6  0x0807eee4 in FibConfig::add_entry4 (this=0x778fe48c, fte=@0x8472e40) at fibconfig.cc:1077
#7  0x0805e025 in FibAddEntry4::dispatch (this=0x8472e38) at fibconfig_transaction.hh:112
#8  0x082b2377 in TransactionManager::Transaction::commit (this=0x84733a4) at transaction.cc:59
#9  0x082b0e66 in TransactionManager::commit (this=0x837e910, tid=8531650) at transaction.cc:201
#10 0x08080684 in FibConfig::commit_transaction (this=0x778fe48c, tid=8531650, error_msg=@0x778f1fd0)
     at fibconfig.cc:135
#11 0x080553ad in XrlFeaTarget::redist_transaction4_0_1_commit_transaction (this=0x778fefc0, tid=@0x84539d4)
     at xrl_fea_target.cc:2351
#12 0x0817daf0 in XrlFeaTargetBase::handle_redist_transaction4_0_1_commit_transaction (this=0x778fefc0,
     xa_inputs=@0x778f604c) at fea_base.cc:3230
#13 0x081a893f in XorpMemberCallback2B0<XrlCmdError const, XrlFeaTargetBase, XrlArgs const&, XrlArgs*>::dispatch (
     this=0x8418148, a1=@0x778f604c, a2=0x778f6030) at ../../libxorp/callback_nodebug.hh:4615
#14 0x08256f15 in XrlCmdEntry::dispatch (this=0x84181b4, inputs=@0x778f604c, outputs=0x778f6030) at xrl_cmd_map.hh:37
#15 0x0825da0a in XrlDispatcher::dispatch_xrl (this=0x778fe198, method_name=@0x778f5fc0, inputs=@0x778f604c,
     outputs=@0x778f6030) at xrl_dispatcher.cc:60
#16 0x08240d09 in XrlRouter::dispatch_xrl (this=0x778fe198, method_name=@0x778f6048, inputs=@0x778f604c,
---Type <return> to continue, or q <return> to quit---
     outputs=@0x778f6030) at xrl_router.cc:587
#17 0x08265eed in STCPRequestHandler::dispatch_request (this=0x84794b0, seqno=428, packed_xrl=0x6fd30323 "?",
     packed_xrl_bytes=101) at xrl_pf_stcp.cc:235
#18 0x082665c3 in STCPRequestHandler::read_event (this=0x84794b0, ev=BufferedAsyncReader::DATA,
     buffer=0x6fd3030b "STCP\001\001", buffer_bytes=125) at xrl_pf_stcp.cc:199
#19 0x08267bbc in XorpMemberCallback4B0<void, STCPRequestHandler, BufferedAsyncReader*, BufferedAsyncReader::Event, unsigned char*, unsigned int>::dispatch (this=0x846f080, a1=0x84794b8, a2=BufferedAsyncReader::DATA,
     a3=0x6fd3030b "STCP\001\001", a4=125) at ../libxorp/callback_nodebug.hh:8965
#20 0x0828c0a3 in BufferedAsyncReader::announce_event (this=0x84794b8, ev=BufferedAsyncReader::DATA)
     at buffered_asyncio.cc:248
#21 0x0828c3e2 in BufferedAsyncReader::io_event (this=0x84794b8, fd={_filedesc = 51}, type=IOT_READ)
     at buffered_asyncio.cc:201
#22 0x0828cc24 in XorpMemberCallback2B0<void, BufferedAsyncReader, XorpFd, IoEventType>::dispatch (this=0x8440c48, a1=
       {_filedesc = 51}, a2=IOT_READ) at ../libxorp/callback_nodebug.hh:4635
#23 0x082a8756 in SelectorList::Node::run_hooks (this=0x8475a1c, m=SEL_RD, fd={_filedesc = 51}) at selector.cc:149
#24 0x082a73c1 in SelectorList::wait_and_dispatch (this=0x778ff034, timeout=@0x778fe120) at selector.cc:435
#25 0x0828e590 in EventLoop::run (this=0x778feff8) at eventloop.cc:137
#26 0x0804d192 in fea_main (finder_hostname=@0x778ff210, finder_port=19999) at xorp_fea.cc:101
#27 0x0804d478 in main (argc=0, argv=0x778ff2d8) at xorp_fea.cc:175

-- 
Ben Greear <greearb at candelatech.com>
Candela Technologies Inc  http://www.candelatech.com



More information about the Xorp-hackers mailing list