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

Reply via email to