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

Reply via email to