Page MenuHomeVyOS Platform

FRR 9.0.1 in VyOS current segfaults on show rpki prefix $prefix
Closed, ResolvedPublic

Description

FRR 9.0.1 in VyOS build from git just now uses an FRR built from 9.0.1-51-g8a6b43262. This version of FRR dies upon issuing a vtysh -c "show rpki prefix $prefix".

This is apparently fixed in FRR 9.0.1-61-gd5d6be1d8.

Given that this can be a nasty surprise when dealing with RPKI, it might be good to rebuild FRR from the newest stable/9.0.

See: https://github.com/FRRouting/frr/issues/14646

Details

Difficulty level
Unknown (require assessment)
Version
-
Why the issue appeared?
Will be filled on close
Is it a breaking change?
Unspecified (possibly destroys the router)
Issue type
Unspecified (please specify)

Event Timeline

tfiebig created this task.
tfiebig created this object in space S1 VyOS Public.

If you add the librtr-dev to the docker build image and build FRR (with the docker build image) yourself it works:

$ git clone -b current --single-branch https://github.com/vyos/vyos-build.git
$ cd vyos-build
$ vi docker/Dockerfile
$ git diff
diff --git a/docker/Dockerfile b/docker/Dockerfile
index 953ea4c..baeb232 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -345,6 +345,9 @@ RUN apt-get update && apt-get install -y \
       libnl-genl-3-dev \
       libxtables-dev
 
+# Packages to make vtysh -c 'show rpki prefix' not crash bgpd
+RUN apt-get update && apt-get install -y librtr-dev
+
 # Allow password-less 'sudo' for all users in group 'sudo'
 RUN sed "s/^%sudo.*/%sudo\tALL=(ALL) NOPASSWD:ALL/g" -i /etc/sudoers && \
     echo "vyos_bld\tALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers && \
$ docker build -t vyos/vyos-build:current docker
$ cd ./packages/frr/
$ git clone -b stable/9.0 --single-branch https://github.com/FRRouting/frr.git
$ cd ../../
$ docker run --rm -it --privileged -v $(pwd):/vyos -w /vyos vyos/vyos-build:current bash -c 'cd packages/frr/frr ; sudo mk-build-deps --install --tool "apt-get --yes --no-install-recommends"; cd ..; ./build-frr.sh'
$ cp packages/frr/*deb packages/.
$ docker run --rm -it --privileged -v $(pwd):/vyos -w /vyos vyos/vyos-build:current bash -c "sudo make clean; sudo ./build-vyos-image iso --architecture amd64 --build-by '[email protected]'"

It seems to be the difference between the vyos version build in the Dockerfile of librtr-dev and the Debian librtr-dev version (which works).

If you add the librtr-dev to the docker build image and build FRR (with the docker build image) yourself it works:

$ git clone -b current --single-branch https://github.com/vyos/vyos-build.git
$ cd vyos-build
$ vi docker/Dockerfile
$ git diff
diff --git a/docker/Dockerfile b/docker/Dockerfile
index 953ea4c..baeb232 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -345,6 +345,9 @@ RUN apt-get update && apt-get install -y \
       libnl-genl-3-dev \
       libxtables-dev
 
+# Packages to make vtysh -c 'show rpki prefix' not crash bgpd
+RUN apt-get update && apt-get install -y librtr-dev
+
 # Allow password-less 'sudo' for all users in group 'sudo'
 RUN sed "s/^%sudo.*/%sudo\tALL=(ALL) NOPASSWD:ALL/g" -i /etc/sudoers && \
     echo "vyos_bld\tALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers && \
$ docker build -t vyos/vyos-build:current docker
$ cd ./packages/frr/
$ git clone -b stable/9.0 --single-branch https://github.com/FRRouting/frr.git
$ cd ../../
$ docker run --rm -it --privileged -v $(pwd):/vyos -w /vyos vyos/vyos-build:current bash -c 'cd packages/frr/frr ; sudo mk-build-deps --install --tool "apt-get --yes --no-install-recommends"; cd ..; ./build-frr.sh'
$ cp packages/frr/*deb packages/.
$ docker run --rm -it --privileged -v $(pwd):/vyos -w /vyos vyos/vyos-build:current bash -c "sudo make clean; sudo ./build-vyos-image iso --architecture amd64 --build-by '[email protected]'"
syncer lowered the priority of this task from High to Normal.
Viacheslav changed the task status from Open to Needs testing.Nov 16 2023, 10:30 AM
Viacheslav closed this task as Resolved.
Viacheslav moved this task from Need Triage to Finished on the VyOS 1.4 Sagitta board.