While managing a virtual chassis for 4 QFX5100 devices, I managed to create an inconsistent state between the virtual chassis members.
When committing the configuration, the following error would show:
fpc0: configuration check succeeds fpc1: [edit interfaces irb] 'unit 1800' warning: statement already exists [edit interfaces irb unit 1800 bandwidth] 'bandwidth 10g' warning: statement exists but matches patch [edit interfaces irb unit 1800 family] 'inet' warning: statement already exists [edit interfaces irb unit 1800 family inet mtu] 'mtu 1500' warning: statement exists but matches patch [edit interfaces irb unit 1800 family inet] 'address x.x.x.x/32' warning: statement already exists error: remote load-configuration failed on fpc1
I tried a few things to fix this at first, eg. removing the IRB interface in question then trying to commit then adding it back, running commit synchronize force peers-synchronize
and so on.
To fix this you need to connect to the members in the virtual chassis and restart the mgd
process. This does not need to be done on the master. In my case fpc0 is the current master which leaves fpc1, fpc2, fpc3 to have the process restart. This process restart did not cause any outage/downtime, it was transparent.
- Log in to the virtual chassis as usual.
- Connect to the first member switch to restart the process on using
request session member X
whereX
is the FPC number (in my case 1/2/3). If you are not currently logged in as the root user (eg. you use an authentication database such as RADIUS) you can just push enter on the first password prompt and you will then get a prompt for the username. Alternatively you can connect to the member and runsudo su
after logging in. - Make sure you are in the shell (not the
cli
mode) and runmgd -i
. - Repeat this process for each of the other members in the virtual chassis.