On Mon, Jun 14, 2021 at 04:25:04PM +0100, Matthew Reeve wrote:
Hi,
when using bird 2.0.8 on openwrt 21.02 (and other versions) on a Netgear R7800 router, if the OSPF protocol is used, either v2 or v3, bird immediately crashes on startup with:
Fri Jun 11 14:41:11 2021 daemon.info bird: Started Fri Jun 11 14:41:11 2021 kern.err kernel: [ 3500.853248] Alignment trap: not handling instruction f44c0a1f at [<00035848>] Fri Jun 11 14:41:11 2021 kern.alert kernel: [ 3500.853283] 8<--- cut here --- Fri Jun 11 14:41:11 2021 kern.alert kernel: [ 3500.859363] Unhandled fault: alignment exception (0x801) at 0x007e0624 Fri Jun 11 14:41:11 2021 kern.alert kernel: [ 3500.862443] pgd = 0bbef4fd Fri Jun 11 14:41:11 2021 kern.alert kernel: [ 3500.868821] [007e0624] *pgd=5d6ca835, *pte=5c40b75f, *ppte=5c40bc7f
This router uses an ARMv7 processor and the issue seems to be to do with memory alignment issues. I've debugged it and traced it to an access to the top_hash_entry struct. I've found that if I add the PACKED macro to the struct definition then it fixes the problem, as per this patch:
Hi Thanks, could you try to get backtrace from the coredump using gdb to see where is the invalid access? -- Elen sila lumenn' omentielvo Ondrej 'Santiago' Zajicek (email: santiago@crfreenet.org) OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net) "To err is human -- to blame it on a computer is even more so."