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