On Thu, Dec 22, 2011 at 8:44 AM, Mathias Wolkert <[email protected]> wrote:

> 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.
>

Version 5.4.1 is rather ancient - you should start with upgrading to (at
least) 5.4.4. I've had a look at the var_ipRouteEntry() code in that last
version but haven't found anything that could cause an infinite loop.

Bart.
------------------------------------------------------------------------------
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
_______________________________________________
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