BGPD on SPARC64 crashes all BGP sessions if the updates contain too many prepends. The error is: BGP: Received signal 10 at 1187568931 (si_addr 0x16eb2f); aborting... Reproducible: Always Steps to Reproduce: 1. Establish a BGP Session and receive an prefix update with a hundred AS numbers in the path. 2. Using debug update the sessions fail and the daemon crashes at the prefix prior to the one with the hundred AS numbers in its path. 3. The version is net-misc/quagga-0.98.6-r2 USE="bgpclassless fix-connected-rt pam tcpmd5 -ipv6 -multipath -ospfapi -realms -snmp -tcp-zebra" 0 kB 4. Replicated on two different kernels running 2.6.21-gentoo-sources-r4 and vanilla-sources-2.6.17.14 Actual Results: BGPD drops ALL sessions, no longer outputs and needs restarted. Expected Results: We suffered a prolonged outage trying to isolate where the problem was and had to get our upstream provider to run debug at their side too. BGPD should have stayed up and ignored the illegal number of paths in the update.
Please ask upstream to help you. The #quagga channel available on FreeNode is the best place to start.
Thanks to Paul Jakma over at bugzilla.quagga.net for all his help. We have now confirmed that: a) The Intel version of quagga-0.98.6-r2 was unaffected b) quagga-0.99.8 on SPARC64 appears unaffected according to aspathtest Therefore when quagga-0.99.8 is marked stable on SPARC64 it should resolve this bug.