Commit Error: statement already exists

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.

  1. Log in to the virtual chassis as usual.
  2. Connect to the first member switch to restart the process on using request session member X where X 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 run sudo su after logging in.
  3. Make sure you are in the shell (not the cli mode) and run mgd -i.
  4. Repeat this process for each of the other members in the virtual chassis.

Leave a Reply

Your email address will not be published.