Hello I'm running quagga 0.99.18 on debian lenny with a full bgp table from a a rather unstable peer. From time to time I receive withdrawals for all 380k+ prefixes and new NLRIs for them all. My session is stable, but something happens one or a few hops upstream.
This (obviously) causes some churn, but it seems snmpd and zebra get stuck in a loop. Normally, adding a full feed to quagga is 10 seconds of churn and that's it. If I understand it correctly, an update received by bgp is handed over to zebra to update the kernel. As all routes in the routing table are in the snmp-mib(.1.3.6.1.2.1.4.21), somehow that info needs to go to snmpd, or if snmpd has some way of pointing at kernel data, I don't know... However after such a burst, both zebra and snmpd eat one cpu core each and never heal. When I enable debugging in zebra, I can see a lot of routing updates (remove prefix x, add prefix x with next hop y). The only thing that helps is to kill snmpd with a hammer and restart it, and all is well again. I mailed this to quagga users mailing list and it was suggested that I'd try gdb on snmpd. I did get this backtrace: #0 0x00007f5e5db6c960 in read () from /lib/libc.so.6 #1 0x00007f5e5db1ab20 in _IO_file_underflow () from /lib/libc.so.6 #2 0x00007f5e5db1c2ee in _IO_default_uflow () from /lib/libc.so.6 #3 0x00007f5e5db107a7 in _IO_getline_info () from /lib/libc.so.6 #4 0x00007f5e5db0f567 in fgets () from /lib/libc.so.6 #5 0x00007f5e5e14a6b8 in ?? () from /usr/lib/libnetsnmpmibs.so.15 #6 0x00007f5e5e14a9ba in var_ipRouteEntry () from /usr/lib/libnetsnmpmibs.so.15 #7 0x00007f5e5e42c3fd in netsnmp_old_api_helper () from /usr/lib/libnetsnmphelpers.so.15 #8 0x00007f5e5e661097 in netsnmp_call_handlers () from /usr/lib/libnetsnmpagent.so.15 #9 0x00007f5e5e6521d1 in handle_var_requests () from /usr/lib/libnetsnmpagent.so.15 #10 0x00007f5e5e653db7 in handle_pdu () from /usr/lib/libnetsnmpagent.so.15 #11 0x00007f5e5e6562c8 in netsnmp_handle_request () from /usr/lib/libnetsnmpagent.so.15 #12 0x00007f5e5e656e12 in handle_snmp_packet () from /usr/lib/libnetsnmpagent.so.15 #13 0x00007f5e5de3cba9 in ?? () from /usr/lib/libnetsnmp.so.15 #14 0x00007f5e5de3ed8d in _sess_read () from /usr/lib/libnetsnmp.so.15 #15 0x00007f5e5de3f339 in snmp_sess_read () from /usr/lib/libnetsnmp.so.15 #16 0x00007f5e5de3f38b in snmp_read () from /usr/lib/libnetsnmp.so.15 #17 0x0000000000404cab in main () snmpd version 5.4.1~dfsg-12 Any help is much appreciated. /Tias ------------------------------------------------------------------------------ Write once. Port to many. Get the SDK and tools to simplify cross-platform app development. Create new or port existing apps to sell to consumers worldwide. Explore the Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join http://p.sf.net/sfu/intel-appdev _______________________________________________ Net-snmp-users mailing list [email protected] Please see the following page to unsubscribe or change other options: https://lists.sourceforge.net/lists/listinfo/net-snmp-users
