BIRD 3.1.5 crash: Assertion failure in do_lock / if_find_by_index
David Petera
david.petera at nic.cz
Mon Jan 5 23:00:21 CET 2026
Hi,
we looked into it and it really is a regression bug in the v3.1.5
connected to locking domains in BGP.
The newly released v3.2 should not have this issue so I recommend using
that version.
Though v3.1.6 with the fix will be released also.
Thanks a lot for reporting this bug to us!
David
David Petera (he/him) | BIRD Tech Support | CZ.NIC, z.s.p.o.
On 12/11/25 18:50, Moraxyc via Bird-users wrote:
> Hi BIRD Team,
>
> I wanna report a crash with BIRD 3.1.5 running on NixOS.
>
> The crash triggers a `bug()` assertion failure related to locking
> mechanisms during interface lookup (`if_find_by_index`).
>
> I have successfully reproduced this issue locally with a minimal
> configuration.
>
> Environment:
> - BIRD Version: 3.1.5
> - OS: NixOS unstable (glibc 2.40)
> - Kernel: Linux 6.17.9 #1-NixOS SMP PREEMPT_DYNAMIC x86_64 GNU/Linux
>
> Reproduction Steps:
> 1. Configure a BGP protocol using an IPv6 Link-Local neighbor on a
> physical interface.
> 2. Start BIRD. Wait for the protocol to enter 'Active' or 'Connect'
> state so the port is listening.
> 3. Initiate a TCP connection to the BGP port:
> $ nc -6 -v <Link-Local-IP>%<interface> <port>
> 4. BIRD crashes immediately upon receiving the connection.
>
> Crash Summary (from GDB):
> The main thread (Thread 1) hits a bug() assertion:
> #3 0x000056536f6ef97a in bug (msg=<optimized out>) at
> sysdep/unix/log.c:412
> #4 0x000056536f6fa9a1 in do_lock (dg=0x5653774ace60,
> lsp=0x7fba0208a2a8) at sysdep/unix/domain.c:116
> #5 0x000056536f64c8ac in if_find_by_index (idx=23) at nest/iface.c:721
> #6 0x000056536f6e4ac8 in sockaddr_read6 ... at sysdep/unix/io.c:583
> #8 0x000056536f6ecfd7 in sk_passive_connected ... at
> sysdep/unix/io.c:1451
>
> Attachments:
> 1. backtrace.txt: Full GDB backtrace.
> 2. config_snippet.txt: The minimal config used to reproduce the crash.
>
> Best regards,
> Moraxyc
More information about the Bird-users
mailing list