Page MenuHomeVyOS Platform

VPP configuration after upgrade cannot be loaded immediatelt and requires a second reboot
Closed, ResolvedPublicBUG

Description

VPP configuration after upgrade cannot be loaded and requires a reboot 2 times

set interfaces ethernet eth0 address '192.168.122.14/24'
set interfaces ethernet eth0 description 'WAN'
set interfaces ethernet eth0 ipv6 address
set interfaces ethernet eth1 address '192.0.2.1/30'
set interfaces ethernet eth1 description 'LAN'
set interfaces ethernet eth1 vif 11 address '10.0.11.1/30'
set interfaces ethernet eth1 vif 12 address '10.0.12.1/30'
set interfaces ethernet eth1 vif 13 address '10.0.13.1/30'
set interfaces ethernet eth1 vif 14 address '10.0.14.1/30'
set interfaces ethernet eth1 vif 15 address '10.0.15.1/30'
set interfaces ethernet eth1 vif 16 address '10.0.16.1/30'
set interfaces ethernet eth1 vif 17 address '10.0.17.1/30'
set interfaces ethernet eth1 vif 18 address '10.0.18.1/30'
set system option kernel disable-mitigations
set system option kernel memory hugepage-size 2M hugepage-count '1650'
set system update-check auto-check
set system update-check url 'https://raw.githubusercontent.com/vyos/vyos-nightly-build/refs/heads/current/version.json'
set vpp settings interface eth1 dpdk-options promisc
set vpp settings interface eth1 driver 'dpdk'
set vpp settings memory main-heap-page-size '2M'
set vpp settings memory main-heap-size '3G'
set vpp settings statseg size '128M'
set vpp settings unix poll-sleep-usec '222'

Steps to reproduce: have initial config as above
And upgrade to the new image

vyos@r14:~$ add system image latest 
Redirecting to https://release-assets.githubusercontent.com/github-production-release-asset/674742659/83271970-0926-493c-a958-ab8eae5f6954?sp=r&sv=2018-11-09&sr=b&spr=https&se=2025-07-22T10%3A58%3A55Z&rscd=attachment%3B+filename%3Dvyos-2025.07.22-0021-rolling-generic-amd64.iso&rsct=application%2Foctet-stream&skoid=96c2d410-5711-43a1-aedd-ab1947aa7ab0&sktid=398a6654-997b-47e9-b12b-9515b896b4de&skt=2025-07-22T09%3A58%3A24Z&ske=2025-07-22T10%3A58%3A55Z&sks=b&skv=2018-11-09&sig=6YzhxV2muXVQq9rkM7M6iVyttwU8Ztv8Jk3lBVFqYdk%3D&jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmVsZWFzZS1hc3NldHMuZ2l0aHVidXNlcmNvbnRlbnQuY29tIiwia2V5Ijoia2V5MSIsImV4cCI6MTc1MzE3ODkzMiwibmJmIjoxNzUzMTc4NjMyLCJwYXRoIjoicmVsZWFzZWFzc2V0cHJvZHVjdGlvbi5ibG9iLmNvcmUud2luZG93cy5uZXQifQ.wXxf_8BNRFq-n5bAQ3cJt0SUfat7p4Cu382XzVlQD08&response-content-disposition=attachment%3B%20filename%3Dvyos-2025.07.22-0021-rolling-generic-amd64.iso&response-content-type=application%2Foctet-stream
The file is 605.000 MiB.
[#####################################################################################################################################################################] 100%
Validating signature
Signature is valid
Validating image compatibility
Validating image checksums
What would you like to name this image? (Default: 2025.07.22-0021-rolling) 
Would you like to set the new image as the default one for boot? [Y/n] 
An active configuration was found. Would you like to copy it to the new image? [Y/n] 
Copying configuration directory
Would you like to copy SSH host keys? [Y/n] 
Copying SSH host keys
Copying system image files
Cleaning up
Unmounting target filesystems
Removing temporary files
vyos@r14:~$ 
vyos@r14:~$ 
vyos@r14:~$ 
vyos@r14:~$ reboot now

Broadcast message from root@vyos on pts/1 (Tue 2025-07-22 13:04:30 EEST):

The system will reboot now!


Connection to 192.168.122.14 closed by remote host.
Connection to 192.168.122.14 closed.
sever@sever:~$ sr14
Warning: Permanently added '192.168.122.14' (ED25519) to the list of known hosts.
Hello,
VyOS World!

---
WARNING: This VyOS system is not a stable long-term support version and
         is not intended for production use.
vyos@r14:~$ 
vyos@r14:~$ 
vyos@r14:~$ 
vyos@r14:~$ show conf com | match vpp
vyos@r14:~$ 
vyos@r14:~$ 
vyos@r14:~$ conf
WARNING: There was a config error on boot: saving the configuration now could overwrite data.
You may want to check and reload the boot config
[edit]
vyos@r14# load 
Load complete. Use 'commit' to make changes effective.
[edit]
vyos@r14# compare 
+ vpp {
+     settings {
+         interface eth1 {
+             dpdk-options {
+                 promisc
+             }
+             driver "dpdk"
+         }
+         memory {
+             main-heap-page-size "2M"
+             main-heap-size "3G"
+         }
+         statseg {
+             size "128M"
+         }
+         unix {
+             poll-sleep-usec "222"
+         }
+     }
+ }

[edit]
vyos@r14# 
[edit]
vyos@r14# 
[edit]
vyos@r14# load commands
Cannot load: configuration modified.
Commit or discard the changes before loading a config file.
[edit]
vyos@r14# compare commands

set vpp settings interface eth1 dpdk-options promisc
set vpp settings interface eth1 driver 'dpdk'
set vpp settings memory main-heap-page-size '2M'
set vpp settings memory main-heap-size '3G'
set vpp settings statseg size '128M'
set vpp settings unix poll-sleep-usec '222'

[edit]
vyos@r14# 
[edit]
vyos@r14# commit
[ vpp ]
Not enough free hugepage memory to start VPP: available: 0.0 GB,
required: 3.2 GB. Please add kernel memory options for HugePages and
reboot
[[vpp]] failed
Commit failed
[edit]
vyos@r14# show system option kernel 
 disable-mitigations
 memory {
     hugepage-size 2M {
         hugepage-count 1650
     }
 }
[edit]
vyos@r14# cat /proc/cmdline 
BOOT_IMAGE=/boot/2025.07.22-0021-rolling/vmlinuz boot=live rootdelay=5 noautologin net.ifnames=0 biosdevname=0 vyos-union=/boot/2025.07.22-0021-rolling mitigations=off console=tty0
[edit]
vyos@r14# 
[edit]
vyos@r14# cat /proc/cmdline 
BOOT_IMAGE=/boot/2025.07.22-0021-rolling/vmlinuz boot=live rootdelay=5 noautologin net.ifnames=0 biosdevname=0 vyos-union=/boot/2025.07.22-0021-rolling mitigations=off console=tty0
[edit]
vyos@r14# run reboot now

After the second reboot, it is ok:

vyos@r14:~$ show conf com | match vpp
set vpp settings interface eth1 dpdk-options promisc
set vpp settings interface eth1 driver 'dpdk'
set vpp settings memory main-heap-page-size '2M'
set vpp settings memory main-heap-size '3G'
set vpp settings statseg size '128M'
set vpp settings unix poll-sleep-usec '222'
vyos@r14:~$

So it requires a reboot 2 times after the update/upgrade

It seems the reason is that the kernel options cannot be applied during the upgrade and require a reboot 2 times

set system option kernel memory hugepage-size 2M hugepage-count '1650'

After the second reboot:

vyos@r14:~$ cat /proc/cmdline 
BOOT_IMAGE=/boot/2025.07.22-0021-rolling/vmlinuz boot=live rootdelay=5 noautologin net.ifnames=0 biosdevname=0 vyos-union=/boot/2025.07.22-0021-rolling mitigations=off hugepagesz=2M hugepages=1650 console=tty0
vyos@r14:~$

Possible fix requires changes here https://github.com/vyos/vyos-1x/blob/fe8559ec092aea60bf4104dfb1f91cd790ce9b55/src/op_mode/image_installer.py#L501-L513

Details

Version
2025.07.14-0022-rolling, 2025.07.22-0021-rolling
Is it a breaking change?
Perfectly compatible
Issue type
Bug (incorrect behavior)

Event Timeline

Viacheslav triaged this task as High priority.
Viacheslav changed the task status from Open to Needs testing.Jul 24 2025, 5:06 PM
Viacheslav claimed this task.
Viacheslav moved this task from Need Triage to Completed on the VyOS Rolling board.
Viacheslav moved this task from Open to Finished on the VyOS 1.5 Circinus (1.5-stream-2025-Q3) board.
dmbaturin changed Is it a breaking change? from Unspecified (possibly destroys the router) to Perfectly compatible.
dmbaturin renamed this task from VPP configuration after upgrade cannot be loaded and required reboot 2 times to VPP configuration after upgrade cannot be loaded immediatelt and requires a second reboot.Thu, Nov 13, 1:48 AM