Uploaded image for project: 'ovsdb'
  1. ovsdb
  2. OVSDB-410

TerminationPoint reconciliation fails if one port is already present

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • None
    • unspecified
    • None
    • Operating System: All
      Platform: All

    • 8280

      TerminationPoint reconciliation has a bug where reconciliation can fail if even one port doesn't require reconciliation. The issue is with TerminationPointCreateCommand, which checks if TerminationPoint already exists in operational or not. It seems to be failing for ports that already exist and we end up reconciling ports that are already present.

      However, trying to create a port that already exists results in constraint violation error:

      { "error": "constraint violation", "details": "Transaction causes multiple rows in \"Interface\" table to have identical values (\"tun21435b8e5dd\") for index on column \"name\". First row, with UUID fdb4afd2-9877-42bb-9dac-c35e96b3de6d, existed in the database before this transaction and was not modified by the transaction. Second row, with UUID 63d879a2-77fb-4401-9ee0-d2861791c192, was inserted by this transaction." }

      A failure in any of operations in a transaction results in all other operations also failing. This means operations to add rest of the ports fail and they never get reconciled.

      Steps to reproduce:

      1. Create two tunnel interfaces through OVSDB plugin.
      2. Note OFPort number to determine which one was second to be added (higher OF Port number).
      3. Disconnect the switch from ODL (del-manager)
      4. Delete the port with higher OF Port number from switch through CLI.
      5. Reconnect the switch using set-manager

      Expected behavior:
      Port deleted in step 4 should show back up.

      Actual behavior:
      Port is never added.

      If first port is deleted, it will not throw constraint violation, but second one will.

            thapar Vishal Thapar
            thapar Vishal Thapar
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: