Failed config migration from V1.2.3 to 1.2-rolling-201911030217

Hi

I just tried to upgrade a very simple VyOS 1.2.3-LTS instance to current 1.2-rolling-201911030217. Config migration failed with this console output:

[   20.983324] vyos-router[1090]: Started watchfrr.
[   20.996641] vyos-router[1090]: Mounting VyOS Config...done.
[   21.112754] vyos-router[1090]: Starting VyOS router: migrateTraceback (most recent call last):
[   21.120689] vyos-router[1090]: File "/opt/vyatta/etc/config-migrate/migrate/dns-forwarding/0-to-1", line 38, in <module>
[   21.133234] vyos-router[1090]: config = ConfigTree(config_file)
[   21.137767] vyos-router[1090]: File "/usr/lib/python3/dist-packages/vyos/configtree.py", line 175, in __init__
[   21.144921] vyos-router[1090]: raise ValueError("Failed to parse config: {0}".format(msg))
[   21.152688] vyos-router[1090]: ValueError: Failed to parse config: lexing: empty token
[   21.157479] vyos-router[1090]: Called process error: Command '['/opt/vyatta/etc/config-migrate/migrate/dns-forwarding/0-to-1', '/opt/vyatta/etc/config/config.boot']' returned non-zero exit status 1.
[   44.109480] vyos-router[1090]: rl-system firewall configure failed!
[   44.487986] vyos-config[1160]: Configuration error

I also reverted to V1.2.3 deleted complete ‘service dns’ part of the config tree and tried the upgrade again but same error.
I also tried a few days older rolling version with same error.

This should clearly not be the case.

Can you share your dns forwarding configuration please?

Of course, it’s only the base for configuration tests with domain specific forwarders:
dns {
forwarding {
allow-from 127.0.0.1/32
listen-address 127.0.0.1
name-server 172.16.13.254
}
}

Could you probably add the full configuration of DNS forwarding incl. those domain specific forwarders? You can anonymize them of course.

the migration script error also occures without the domain specific forwarders. I also see the same error on another instance where I updated from an earlier rolling version.

Here the config from the other instance with domain specific forwarder:
service {
dns {
forwarding {
cache-size 0
domain intern {
server 172.16.10.41
}
ignore-hosts-file
listen-address 127.0.0.1
listen-address 172.16.100.10
name-server 172.16.100.2
}
}
}

This does not look like a valid 1.2.3 config as the allow-from statement is missing which is mandatory.

Starting off with this test configuration

vyos@vyos# show service dns forwarding
 allow-from 0.0.0.0/0
 cache-size 0
 domain intern {
     server 172.16.10.41
 }
 ignore-hosts-file
 listen-address 127.0.0.1
 listen-address 172.16.100.10
 name-server 172.16.100.2

on

vyos@vyos# run show version
Version:          VyOS 1.2.3

upgrading to latest rolling shows no errors on bootup:

vyos@vyos:~$ show version
Version:          VyOS 1.2-rolling-201911030217
vyos@vyos# show service dns forwarding
 allow-from 0.0.0.0/0
 cache-size 0
 domain intern {
     server 172.16.10.41
 }
 ignore-hosts-file
 listen-address 127.0.0.1
 listen-address 172.16.100.10
 name-server 172.16.100.2

Could you open up a phabricator ticket and attach your /config/config.boot file so it can be reproduced? Can you also show the output of show version?

sorry for the misunderstanding. This config is not from V1.2.3, this is from the second affected instance where the old version is an older rolling version. Ok I will open a phabricator ticket and will post the ticket number here

https://phabricator.vyos.net/T1787