Public bug reported:

This happened in gate:

https://763b7c31d44017973024-0677f910aec9b59957afc606ff2e533f.ssl.cf2.rackcdn.com/938106/3/check/neutron-
functional/532a7a3/testr_results.html

ft1.1: 
neutron.tests.functional.services.trunk.drivers.ovn.test_trunk_driver.TestOVNTrunkDriver.test_subport_deletetesttools.testresult.real._StringException:
 Traceback (most recent call last):
  File "/home/zuul/src/opendev.org/openstack/neutron/neutron/tests/base.py", 
line 178, in func
    return f(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File 
"/home/zuul/src/opendev.org/openstack/neutron/neutron/tests/functional/services/trunk/drivers/ovn/test_trunk_driver.py",
 line 137, in test_subport_delete
    self.assertTrue(lsp_event.wait())
  File "/usr/lib/python3.12/unittest/case.py", line 727, in assertTrue
    raise self.failureException(msg)
AssertionError: False is not true

The error is because LSP update event was not received by the ovsdb-
monitor. The reason why it did not is because OVN db transaction that
was supposed to update the SB port-binding (to remove subport) failed
with:

2025-01-13 17:07:36.572 304173 DEBUG 
neutron.services.trunk.drivers.ovn.trunk_driver [None 
req-548c0895-271f-4af7-87ab-178e41d83359 - 46f70361-ba71-4bd0-9769-3573fd227c4b 
- - - -] Unsetting parent for subport 3787fbf2-d08d-4c33-bd71-8065b2b0d3d3 
_unset_binding_profile 
/home/zuul/src/opendev.org/openstack/neutron/neutron/services/trunk/drivers/ovn/trunk_driver.py:118
2025-01-13 17:07:36.617 304173 DEBUG 
neutron.services.trunk.drivers.ovn.trunk_driver [None 
req-548c0895-271f-4af7-87ab-178e41d83359 - 46f70361-ba71-4bd0-9769-3573fd227c4b 
- - - -] Done unsetting parent for subport 3787fbf2-d08d-4c33-bd71-8065b2b0d3d3 
_unset_binding_profile 
/home/zuul/src/opendev.org/openstack/neutron/neutron/services/trunk/drivers/ovn/trunk_driver.py:155
2025-01-13 17:07:36.621 304173 ERROR ovsdbapp.backend.ovs_idl.transaction [None 
req-548c0895-271f-4af7-87ab-178e41d83359 - 46f70361-ba71-4bd0-9769-3573fd227c4b 
- - - -] Traceback (most recent call last):
  File 
"/home/zuul/src/opendev.org/openstack/neutron/.tox/dsvm-functional-gate/lib/python3.12/site-packages/ovsdbapp/backend/ovs_idl/connection.py",
 line 118, in run
    txn.results.put(txn.do_commit())
                    ^^^^^^^^^^^^^^^
  File 
"/home/zuul/src/opendev.org/openstack/neutron/.tox/dsvm-functional-gate/lib/python3.12/site-packages/ovsdbapp/backend/ovs_idl/transaction.py",
 line 92, in do_commit
    command.run_idl(txn)
  File 
"/home/zuul/src/opendev.org/openstack/neutron/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/commands.py",
 line 956, in run_idl
    raise ovn_exc.RevisionConflict(
neutron.common.ovn.exceptions.RevisionConflict: OVN revision number for 
3787fbf2-d08d-4c33-bd71-8065b2b0d3d3 (type: ports) is higher than the given 
resource. Skipping update

2025-01-13 17:07:36.622 304173 INFO 
neutron.plugins.ml2.drivers.ovn.mech_driver.ovsdb.impl_idl_ovn [None 
req-548c0895-271f-4af7-87ab-178e41d83359 - 46f70361-ba71-4bd0-9769-3573fd227c4b 
- - - -] Transaction aborted. Reason: OVN revision number for 
3787fbf2-d08d-4c33-bd71-8065b2b0d3d3 (type: ports) is higher than the given 
resource. Skipping update
2025-01-13 17:07:36.639 304173 DEBUG neutron.db.ovn_revision_numbers_db [None 
req-548c0895-271f-4af7-87ab-178e41d83359 - 46f70361-ba71-4bd0-9769-3573fd227c4b 
- - - -] Skip bumping the revision number for 
3787fbf2-d08d-4c33-bd71-8065b2b0d3d3 (type: ports) to 1. A higher version is 
already registered in the database (2) bump_revision 
/home/zuul/src/opendev.org/openstack/neutron/neutron/db/ovn_revision_numbers_db.py:194

The OVN revision number == 2 while trunk plugin attempts to update with
revision number == 1.

---

I don't know why trunk plugin believes the neutron-db record for the
subport still has revision number == 1. The logic of the test case
suggests it should be 2.

The test goes as follows:

1. create a (sub)port. (It is created with rev=1)
2. attach the port to trunk. (This bumps to 2.)
3. detach from trunk. At this point I would expect the db object to have 
rev-number>=2, but it's one, as per the log message quoted above.

It's as if the neutron db layer did not persist previous revision bump.

** Affects: neutron
     Importance: Undecided
         Status: New


** Tags: db functional-tests gate-failure ovn

** Tags added: gate

** Tags removed: gate
** Tags added: db functional-tests gate-failure ovn

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/2094846

Title:
  
neutron.tests.functional.services.trunk.drivers.ovn.test_trunk_driver.TestOVNTrunkDriver.test_subport_delete
  fails because remove_subports fails to update OVN db due to revision
  number inconsistency

Status in neutron:
  New

Bug description:
  This happened in gate:

  
https://763b7c31d44017973024-0677f910aec9b59957afc606ff2e533f.ssl.cf2.rackcdn.com/938106/3/check/neutron-
  functional/532a7a3/testr_results.html

  ft1.1: 
neutron.tests.functional.services.trunk.drivers.ovn.test_trunk_driver.TestOVNTrunkDriver.test_subport_deletetesttools.testresult.real._StringException:
 Traceback (most recent call last):
    File "/home/zuul/src/opendev.org/openstack/neutron/neutron/tests/base.py", 
line 178, in func
      return f(self, *args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^
    File 
"/home/zuul/src/opendev.org/openstack/neutron/neutron/tests/functional/services/trunk/drivers/ovn/test_trunk_driver.py",
 line 137, in test_subport_delete
      self.assertTrue(lsp_event.wait())
    File "/usr/lib/python3.12/unittest/case.py", line 727, in assertTrue
      raise self.failureException(msg)
  AssertionError: False is not true

  The error is because LSP update event was not received by the ovsdb-
  monitor. The reason why it did not is because OVN db transaction that
  was supposed to update the SB port-binding (to remove subport) failed
  with:

  2025-01-13 17:07:36.572 304173 DEBUG 
neutron.services.trunk.drivers.ovn.trunk_driver [None 
req-548c0895-271f-4af7-87ab-178e41d83359 - 46f70361-ba71-4bd0-9769-3573fd227c4b 
- - - -] Unsetting parent for subport 3787fbf2-d08d-4c33-bd71-8065b2b0d3d3 
_unset_binding_profile 
/home/zuul/src/opendev.org/openstack/neutron/neutron/services/trunk/drivers/ovn/trunk_driver.py:118
  2025-01-13 17:07:36.617 304173 DEBUG 
neutron.services.trunk.drivers.ovn.trunk_driver [None 
req-548c0895-271f-4af7-87ab-178e41d83359 - 46f70361-ba71-4bd0-9769-3573fd227c4b 
- - - -] Done unsetting parent for subport 3787fbf2-d08d-4c33-bd71-8065b2b0d3d3 
_unset_binding_profile 
/home/zuul/src/opendev.org/openstack/neutron/neutron/services/trunk/drivers/ovn/trunk_driver.py:155
  2025-01-13 17:07:36.621 304173 ERROR ovsdbapp.backend.ovs_idl.transaction 
[None req-548c0895-271f-4af7-87ab-178e41d83359 - 
46f70361-ba71-4bd0-9769-3573fd227c4b - - - -] Traceback (most recent call last):
    File 
"/home/zuul/src/opendev.org/openstack/neutron/.tox/dsvm-functional-gate/lib/python3.12/site-packages/ovsdbapp/backend/ovs_idl/connection.py",
 line 118, in run
      txn.results.put(txn.do_commit())
                      ^^^^^^^^^^^^^^^
    File 
"/home/zuul/src/opendev.org/openstack/neutron/.tox/dsvm-functional-gate/lib/python3.12/site-packages/ovsdbapp/backend/ovs_idl/transaction.py",
 line 92, in do_commit
      command.run_idl(txn)
    File 
"/home/zuul/src/opendev.org/openstack/neutron/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/commands.py",
 line 956, in run_idl
      raise ovn_exc.RevisionConflict(
  neutron.common.ovn.exceptions.RevisionConflict: OVN revision number for 
3787fbf2-d08d-4c33-bd71-8065b2b0d3d3 (type: ports) is higher than the given 
resource. Skipping update

  2025-01-13 17:07:36.622 304173 INFO 
neutron.plugins.ml2.drivers.ovn.mech_driver.ovsdb.impl_idl_ovn [None 
req-548c0895-271f-4af7-87ab-178e41d83359 - 46f70361-ba71-4bd0-9769-3573fd227c4b 
- - - -] Transaction aborted. Reason: OVN revision number for 
3787fbf2-d08d-4c33-bd71-8065b2b0d3d3 (type: ports) is higher than the given 
resource. Skipping update
  2025-01-13 17:07:36.639 304173 DEBUG neutron.db.ovn_revision_numbers_db [None 
req-548c0895-271f-4af7-87ab-178e41d83359 - 46f70361-ba71-4bd0-9769-3573fd227c4b 
- - - -] Skip bumping the revision number for 
3787fbf2-d08d-4c33-bd71-8065b2b0d3d3 (type: ports) to 1. A higher version is 
already registered in the database (2) bump_revision 
/home/zuul/src/opendev.org/openstack/neutron/neutron/db/ovn_revision_numbers_db.py:194

  The OVN revision number == 2 while trunk plugin attempts to update
  with revision number == 1.

  ---

  I don't know why trunk plugin believes the neutron-db record for the
  subport still has revision number == 1. The logic of the test case
  suggests it should be 2.

  The test goes as follows:

  1. create a (sub)port. (It is created with rev=1)
  2. attach the port to trunk. (This bumps to 2.)
  3. detach from trunk. At this point I would expect the db object to have 
rev-number>=2, but it's one, as per the log message quoted above.

  It's as if the neutron db layer did not persist previous revision
  bump.

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/2094846/+subscriptions


-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to