[PATCH 0/2] bird 3.3.0: `show proto all` SIGSEGV and out_limit underflow SIGABRT

Yifei Sun yifei.sun at inria.fr
Wed Jun 3 16:33:27 CEST 2026


This is a follows up on my earlier report

Patch 1/2 is the workaround I already linked.
In short, SIGSEGV in bgp_show_proto_info() when prometheus-bird-exporter
runs `show protocols all` every 30s under BGP churn (trace in previous mail).
The patch drops the per bucket prefix count so the walk no longer derefs a
stale bucket prefix slot (this is a very minimal workaround)

Patch 2/2 is addressing SIGABRT from an out_limit counter underflow,
please see trace below:

```console
$ colmena exec --verbose --on butte,timah -- sudo coredumpctl list
timah |
butte |
timah | TIME                            PID UID GID SIG     COREFILE EXE                                                               SIZE
timah | Wed 2026-06-03 01:50:12 UTC    1177 999 999 SIGABRT present  /nix/store/xyxkk8dfzz668lmksbb73rp5qzz88r2a-bird-3.3.0/bin/bird 109.3M
timah | Wed 2026-06-03 09:31:36 UTC 1429113 999 999 SIGABRT present  /nix/store/xyxkk8dfzz668lmksbb73rp5qzz88r2a-bird-3.3.0/bin/bird   116M
timah | Succeeded
butte | TIME                            PID UID GID SIG     COREFILE EXE                                                               SIZE
butte | Wed 2026-06-03 07:49:46 UTC 1569499 993 991 SIGABRT present  /nix/store/xyxkk8dfzz668lmksbb73rp5qzz88r2a-bird-3.3.0/bin/bird 124.2M
butte | Wed 2026-06-03 08:09:28 UTC 1630583 993 991 SIGABRT present  /nix/store/xyxkk8dfzz668lmksbb73rp5qzz88r2a-bird-3.3.0/bin/bird 120.2M
butte | Wed 2026-06-03 08:14:44 UTC 1638833 993 991 SIGABRT present  /nix/store/xyxkk8dfzz668lmksbb73rp5qzz88r2a-bird-3.3.0/bin/bird 119.9M
butte | Wed 2026-06-03 08:40:10 UTC 1641543 993 991 SIGABRT present  /nix/store/xyxkk8dfzz668lmksbb73rp5qzz88r2a-bird-3.3.0/bin/bird 121.6M
butte | Wed 2026-06-03 08:49:22 UTC 1652085 993 991 SIGABRT present  /nix/store/xyxkk8dfzz668lmksbb73rp5qzz88r2a-bird-3.3.0/bin/bird 120.1M
butte | Wed 2026-06-03 10:37:51 UTC 1656139 993 991 SIGABRT present  /nix/store/xyxkk8dfzz668lmksbb73rp5qzz88r2a-bird-3.3.0/bin/bird   125M
butte | Succeeded
      | All done!
```

```console
$ sudo coredumpctl info
           PID: 1656139 (bird)
           UID: 993 (bird)
           GID: 991 (bird)
        Signal: 6 (ABRT)
     Timestamp: Wed 2026-06-03 10:37:05 UTC (2h 15min ago)
  Command Line: /nix/store/xyxkk8dfzz668lmksbb73rp5qzz88r2a-bird-3.3.0/bin/bird -c /etc/bird/bird.conf
    Executable: /nix/store/xyxkk8dfzz668lmksbb73rp5qzz88r2a-bird-3.3.0/bin/bird
 Control Group: /system.slice/bird.service
          Unit: bird.service
         Slice: system.slice
       Boot ID: dfa9f57ca76345e98c08abe21afcc0bd
    Machine ID: 7d543c30c6554cebbc9c4c6e94f78247
      Hostname: butte
       Storage: /var/lib/systemd/coredump/core.bird.993.dfa9f57ca76345e98c08abe21afcc0bd.1656139.1780483025000000.zst (present)
  Size on Disk: 125M
       Message: Process 1656139 (bird) of user 993 dumped core.

                Module /nix/store/xyxkk8dfzz668lmksbb73rp5qzz88r2a-bird-3.3.0/bin/bird without build-id.
                Module libz.so.1 without build-id.
                Module libssh.so.4 without build-id.
                Stack trace of thread 1656139:
                #0  0x000079eb7089fdcc __pthread_kill_implementation (libc.so.6 + 0x9fdcc)
                #1  0x000079eb7084265e raise (libc.so.6 + 0x4265e)
                #2  0x000079eb70829350 abort (libc.so.6 + 0x29350)
                #3  0x0000595bc856aeca bug (/nix/store/xyxkk8dfzz668lmksbb73rp5qzz88r2a-bird-3.3.0/bin/bird + 0x13beca)
                #4  0x0000595bc84d9f85 limit_pop.part.0.lto_priv.0 (/nix/store/xyxkk8dfzz668lmksbb73rp5qzz88r2a-bird-3.3.0/bin/bird + 0xaaf85)
                #5  0x0000595bc84cc5e4 do_rt_notify (/nix/store/xyxkk8dfzz668lmksbb73rp5qzz88r2a-bird-3.3.0/bin/bird + 0x9d5e4)
                #6  0x0000595bc84ccbed rt_notify_basic (/nix/store/xyxkk8dfzz668lmksbb73rp5qzz88r2a-bird-3.3.0/bin/bird + 0x9dbed)
                #7  0x0000595bc84cd07b channel_notify_optimal_req (/nix/store/xyxkk8dfzz668lmksbb73rp5qzz88r2a-bird-3.3.0/bin/bird + 0x9e07b)
                #8  0x0000595bc84cd3c0 channel_notify_optimal (/nix/store/xyxkk8dfzz668lmksbb73rp5qzz88r2a-bird-3.3.0/bin/bird + 0x9e3c0)
                #9  0x0000595bc8492f35 ev_run_list_limited (/nix/store/xyxkk8dfzz668lmksbb73rp5qzz88r2a-bird-3.3.0/bin/bird + 0x63f35)
                #10 0x0000595bc8447001 main (/nix/store/xyxkk8dfzz668lmksbb73rp5qzz88r2a-bird-3.3.0/bin/bird + 0x18001)
                #11 0x000079eb7082b285 __libc_start_call_main (libc.so.6 + 0x2b285)
                #12 0x000079eb7082b338 __libc_start_main@@GLIBC_2.34 (libc.so.6 + 0x2b338)
                #13 0x0000595bc8447885 _start (/nix/store/xyxkk8dfzz668lmksbb73rp5qzz88r2a-bird-3.3.0/bin/bird + 0x18885)

                Stack trace of thread 1656141:
                #0  0x000079eb708a6922 __syscall_cancel_arch (libc.so.6 + 0xa6922)
                #1  0x000079eb7089a00c __internal_syscall_cancel (libc.so.6 + 0x9a00c)
                #2  0x000079eb7089a084 __syscall_cancel (libc.so.6 + 0x9a084)
                #3  0x000079eb7091778e __poll (libc.so.6 + 0x11778e)
                #4  0x0000595bc8566b3e bird_thread_main.lto_priv.0 (/nix/store/xyxkk8dfzz668lmksbb73rp5qzz88r2a-bird-3.3.0/bin/bird + 0x137b3e)
                #5  0x000079eb7089dd53 start_thread (libc.so.6 + 0x9dd53)
                #6  0x000079eb7092563c __clone3 (libc.so.6 + 0x12563c)
                ELF object binary architecture: AMD x86-64
```

Yifei Sun (2):
  BGP: skip bgp_bucket_pending() in show proto info
  Table export: don't pop out_limit for a never-exported old route

 nest/rt-table.c |  4 ++++
 proto/bgp/bgp.c | 10 ++++------
 2 files changed, 8 insertions(+), 6 deletions(-)

-- 
2.54.0



More information about the Bird-users mailing list