Page MenuHomeVyOS Platform

VPP: Permanent config storage is not unlocked when a config is not validated
Not ApplicablePublicBUG

Description

How to reproduce

  1. Configure 2GB of hugepages (less than needed with a default VPP settings)
set system option kernel cpu disable-nmi-watchdog
set system option kernel cpu isolate-cpus '2-3'
set system option kernel cpu nohz-full '2-3'
set system option kernel cpu rcu-no-cbs '2-3'
set system option kernel disable-hpet
set system option kernel disable-mce
set system option kernel disable-mitigations
set system option kernel disable-softlockup
set system option kernel memory hugepage-size 2M hugepage-count '1024'

Commit and reboot.

  1. Try to enable VPP
set vpp settings interface eth0
commit

You should see (expected) error message:

[ vpp ]
Not enough free memory to start VPP!
2M HugePages memory: available 2.0 GB, required 3.2 GB
To add HugePages memory please use command
"set system option kernel memory hugepage-size ..." and reboot!
[[vpp]] failed
Commit failed
  1. Without exiting from config mode, update VPP settings to fit into available hugepages memory:
set vpp settings resource-allocation memory main-heap-size 1G
commit

You will see a traceback:

[edit]
vyos@vyos# commit
[ vpp ]

WARNING: NOTE: Current dataplane capacity (estimated): 2 M IPv4
routes. Exceeding these values will lead to a dataplane out-of-memory
condition and a crash. Extensive use of features like ACLs, NAT and
others may reduce the numbers above. Please read the documentation for
details: https://docs.vyos.io/

Traceback (most recent call last):
  File "/usr/libexec/vyos/services/vyos-configd", line 157, in run_script
    script.apply(c)
  File "/usr/libexec/vyos/conf_mode/vpp.py", line 695, in apply
    persist_config = JSONStorage('vpp_conf')
                     ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/vyos/vpp/configdb.py", line 55, in __init__
    raise FileExistsError(f'Cannot open locked storage: {self.__storage}')
FileExistsError: Cannot open locked storage: /run/vpp/vpp_conf.json

[[vpp]] failed
Commit failed

The lock file is in place, despite no config script is running at the moment:

[edit]
vyos@vyos# ls -la /run/vpp/vpp_conf.lock 
-rw-r--r-- 1 root vyattacfg 0 Feb 20 11:52 /run/vpp/vpp_conf.lock

Details

Version
2026.02.20-0025-rolling
Is it a breaking change?
Unspecified (possibly destroys the router)
Issue type
Bug (incorrect behavior)

Related Objects