I am trying to setup a zone based firewall with two bonded Ethernet interfaces, one WLAN interface, a PPPoE interface and nine VLAN interfaces on the bonded interface. The firewall is already setup and committed, but as soon as I try and add a NAT rule, the config daemon crashes. Modifying an existing firewall rule does not cause the crash. I’ve only been able to trigger this when adding a NAT rule.
The config file is 117kB in size and contains 5196 lines. I’ve also removed an interface and its related firewall rules to reduce the size but the crash is still triggered.
The “init” message appear in the log followed by the config daemon restart.
vyos-configd[21197]: Received message: {“type”: “init”}
Config daemon exists and restart
vyos-configd[21197]: VyOS had an issue completing a command.
vyos-configd[21197]: We are sorry that you encountered a problem while using VyOS.
vyos-configd[21197]: There are a few things you can do to help us (and yourself):
vyos-configd[21197]: - Make sure you are running the latest version of the code available at
vyos-configd[21197]: REMOVED DUE TO FORUM LIMITS
vyos-configd[21197]: - Consult the forum to see how to handle this issue
vyos-configd[21197]: REMOVED DUE TO FORUM LIMITS
vyos-configd[21197]: - Join our community on slack where our users exchange help and advice
vyos-configd[21197]: REMOVED DUE TO FORUM LIMITS
vyos-configd[21197]: When reporting problems, please include as much information as possible:
vyos-configd[21197]: - do not obfuscate any data (feel free to contact us privately if your
vyos-configd[21197]: business policy requires it)
vyos-configd[21197]: - and include all the information presented below
vyos-configd[21197]: Report Time: 2020-09-24 02:40:46
vyos-configd[21197]: Image Version: VyOS 1.3-rolling-202009220118
vyos-configd[21197]: Release Train: equuleus
vyos-configd[21197]: Built by: REMOVED DUE TO FORUM LIMITS
vyos-configd[21197]: Built on: Tue 22 Sep 2020 01:18 UTC
vyos-configd[21197]: Build UUID: 981c6e74-4a07-452a-80b9-8c2d49712f1a
vyos-configd[21197]: Build Commit ID: d571b383797719
vyos-configd[21197]: Architecture: x86_64
vyos-configd[21197]: Boot via: installed image
vyos-configd[21197]: System type: bare metal
vyos-configd[21197]: Hardware vendor: To be filled by O.E.M.
vyos-configd[21197]: Hardware model: To be filled by O.E.M.
vyos-configd[21197]: Hardware S/N: To be filled by O.E.M.
vyos-configd[21197]: Hardware UUID: 03000200-0400-0500-0006-000700080009
vyos-configd[21197]: Traceback (most recent call last):
vyos-configd[21197]: File “/usr/libexec/vyos/services/vyos-configd”, line 238, in
vyos-configd[21197]: config = initialization(socket)
vyos-configd[21197]: File “/usr/libexec/vyos/services/vyos-configd”, line 144, in initialization
vyos-configd[21197]: session_string = socket.recv().decode()
vyos-configd[21197]: UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xf1 in position 127032: invalid continuation byte
Report Time: 2020-09-24 02:40:46
Image Version: VyOS 1.3-rolling-202009220118
Release Train: equuleus
Built by: REMOVED DUE TO FORUM LIMITS
Built on: Tue 22 Sep 2020 01:18 UTC
Build UUID: 981c6e74-4a07-452a-80b9-8c2d49712f1a
Build Commit ID: d571b383797719
Architecture: x86_64
Boot via: installed image
System type: bare metal
Hardware vendor: To be filled by O.E.M.
Hardware model: To be filled by O.E.M.
Hardware S/N: To be filled by O.E.M.
Hardware UUID: 03000200-0400-0500-0006-000700080009
Traceback (most recent call last):
File “/usr/libexec/vyos/services/vyos-configd”, line 238, in
config = initialization(socket)
File “/usr/libexec/vyos/services/vyos-configd”, line 144, in initialization
session_string = socket.recv().decode()
UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xf1 in position 127032: invalid continuation byte
systemd[1]: vyos-configd.service: Main process exited, code=exited, status=1/FAILURE
systemd[1]: vyos-configd.service: Failed with result ‘exit-code’.
systemd[1]: vyos-configd.service: Service RestartSec=100ms expired, scheduling restart.
systemd[1]: vyos-configd.service: Scheduled restart job, restart counter is at 8.
systemd[1]: Stopped VyOS configuration daemon.
systemd[1]: Started VyOS configuration daemon.
systemd[1]: opt-vyatta-config-tmp-new_config_20243.mount: Succeeded.
I’m affected by this issue (or a similar one) as well. But for me it’s not happening when adding NAT rules (which I did not try). So far it happened while:
adding a redirect and a traffic-policy to an existing pppoe interface
adding the zone node to an existing cloudflare dynamic dns configuration
To me it seems like it’s more an issue with the config system in general, and not caused by specific config nodes.
Here is one config change I tried and the corresponding vyos-configd log:
Config diff:
[edit service dns dynamic interface pppoe0 service cloudflare]
+zone example.com
vyos-configd log:
Oct 03 16:51:36 r1-ham vyos-configd[13352]: Received message: {"type": "init"}
Oct 03 16:51:40 r1-ham vyos-configd[13352]: VyOS had an issue completing a command.
Oct 03 16:51:40 r1-ham vyos-configd[13352]: We are sorry that you encountered a problem while using VyOS.
Oct 03 16:51:40 r1-ham vyos-configd[13352]: There are a few things you can do to help us (and yourself):
Oct 03 16:51:40 r1-ham vyos-configd[13352]: - Make sure you are running the latest version of the code available at
Oct 03 16:51:40 r1-ham vyos-configd[13352]: https://downloads.vyos.io/rolling/current/amd64/vyos-rolling-latest.iso
Oct 03 16:51:40 r1-ham vyos-configd[13352]: - Consult the forum to see how to handle this issue
Oct 03 16:51:40 r1-ham vyos-configd[13352]: https://forum.vyos.io
Oct 03 16:51:40 r1-ham vyos-configd[13352]: - Join our community on slack where our users exchange help and advice
Oct 03 16:51:40 r1-ham vyos-configd[13352]: https://vyos.slack.com
Oct 03 16:51:40 r1-ham vyos-configd[13352]: When reporting problems, please include as much information as possible:
Oct 03 16:51:40 r1-ham vyos-configd[13352]: - do not obfuscate any data (feel free to contact us privately if your
Oct 03 16:51:40 r1-ham vyos-configd[13352]: business policy requires it)
Oct 03 16:51:40 r1-ham vyos-configd[13352]: - and include all the information presented below
Oct 03 16:51:40 r1-ham vyos-configd[13352]: Report Time: 2020-10-03 16:51:40
Oct 03 16:51:40 r1-ham vyos-configd[13352]: Image Version: VyOS 1.3-rolling-202010020117
Oct 03 16:51:40 r1-ham vyos-configd[13352]: Release Train: equuleus
Oct 03 16:51:40 r1-ham vyos-configd[13352]: Built by: autobuild@vyos.net
Oct 03 16:51:40 r1-ham vyos-configd[13352]: Built on: Fri 02 Oct 2020 01:17 UTC
Oct 03 16:51:40 r1-ham vyos-configd[13352]: Build UUID: d1d2513f-ed8f-49db-9ad0-495d8a2e07a7
Oct 03 16:51:40 r1-ham vyos-configd[13352]: Build Commit ID: 8890819012f9a5
Oct 03 16:51:40 r1-ham vyos-configd[13352]: Architecture: x86_64
Oct 03 16:51:40 r1-ham vyos-configd[13352]: Boot via: installed image
Oct 03 16:51:40 r1-ham vyos-configd[13352]: System type: bare metal
Oct 03 16:51:40 r1-ham vyos-configd[13352]: Hardware vendor: FUJITSU
Oct 03 16:51:40 r1-ham vyos-configd[13352]: Hardware model: ESPRIMO P700
Oct 03 16:51:40 r1-ham vyos-configd[13352]: Hardware S/N:
Oct 03 16:51:40 r1-ham vyos-configd[13352]: Hardware UUID: 766b6560-ed64-e011-8b11-67f76525ff89
Oct 03 16:51:40 r1-ham vyos-configd[13352]: Traceback (most recent call last):
Oct 03 16:51:40 r1-ham vyos-configd[13352]: File "/usr/libexec/vyos/services/vyos-configd", line 238, in <module>
Oct 03 16:51:40 r1-ham vyos-configd[13352]: config = initialization(socket)
Oct 03 16:51:40 r1-ham vyos-configd[13352]: File "/usr/libexec/vyos/services/vyos-configd", line 144, in initialization
Oct 03 16:51:40 r1-ham vyos-configd[13352]: session_string = socket.recv().decode()
Oct 03 16:51:40 r1-ham vyos-configd[13352]: UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf1 in position 127032: invalid continuation byte
Oct 03 16:51:40 r1-ham python3[13352]: Report Time: 2020-10-03 16:51:40
Oct 03 16:51:40 r1-ham python3[13352]: Image Version: VyOS 1.3-rolling-202010020117
Oct 03 16:51:40 r1-ham python3[13352]: Release Train: equuleus
Oct 03 16:51:40 r1-ham python3[13352]: Built by: autobuild@vyos.net
Oct 03 16:51:40 r1-ham python3[13352]: Built on: Fri 02 Oct 2020 01:17 UTC
Oct 03 16:51:40 r1-ham python3[13352]: Build UUID: d1d2513f-ed8f-49db-9ad0-495d8a2e07a7
Oct 03 16:51:40 r1-ham python3[13352]: Build Commit ID: 8890819012f9a5
Oct 03 16:51:40 r1-ham Architecture[13352]: x86_64
Oct 03 16:51:40 r1-ham python3[13352]: Boot via: installed image
Oct 03 16:51:40 r1-ham python3[13352]: System type: bare metal
Oct 03 16:51:40 r1-ham python3[13352]: Hardware vendor: FUJITSU
Oct 03 16:51:40 r1-ham python3[13352]: Hardware model: ESPRIMO P700
Oct 03 16:51:40 r1-ham python3[13352]: Hardware S/N:
Oct 03 16:51:40 r1-ham python3[13352]: Hardware UUID: 766b6560-ed64-e011-8b11-67f76525ff89
Oct 03 16:51:40 r1-ham python3[13352]: Traceback (most recent call last):
Oct 03 16:51:40 r1-ham python3[13352]: File "/usr/libexec/vyos/services/vyos-configd", line 238, in <module>
Oct 03 16:51:40 r1-ham python3[13352]: config = initialization(socket)
Oct 03 16:51:40 r1-ham python3[13352]: File "/usr/libexec/vyos/services/vyos-configd", line 144, in initialization
Oct 03 16:51:40 r1-ham python3[13352]: session_string = socket.recv().decode()
Oct 03 16:51:40 r1-ham UnicodeDecodeError[13352]: 'utf-8' codec can't decode byte 0xf1 in position 127032: invalid continuation byte
Oct 03 16:51:40 r1-ham systemd[1]: vyos-configd.service: Main process exited, code=exited, status=1/FAILURE
Oct 03 16:51:40 r1-ham systemd[1]: vyos-configd.service: Failed with result 'exit-code'.
Oct 03 16:51:40 r1-ham systemd[1]: vyos-configd.service: Service RestartSec=100ms expired, scheduling restart.
Oct 03 16:51:40 r1-ham systemd[1]: vyos-configd.service: Scheduled restart job, restart counter is at 4.
Oct 03 16:51:40 r1-ham systemd[1]: Stopped VyOS configuration daemon.
Oct 03 16:51:40 r1-ham systemd[1]: Started VyOS configuration daemon.
@mpsl How are you running vyos? I see that the version info says ‘bare metal’, but that is a false negative (i.e., not VM) if one is running (not building, but running) within docker — just a thought in case you are doing so. Thanks.
Thanks @mpsl this information is very useful — the ethtool errors are an artifact of the restart, as were seen in the resolved bug T2952 mentioned above. I wanted to rule out running in Docker (possible, thanks to recent work by a colleague, but not common) due to known locale issues; by the way, what is the output of ‘locale’ on that system?
@JessterSB yes, that is reasonable for this issue, and I will make that change as a temporary workaround until we have a root cause. Notice that in the three separate reports it is the same byte in the same position independent of configuration, so clearly spurious. Thanks for the information.