test_update_network_constrained_by_revision fails: Constrained to 2, but current revision is 3

Bug #1709880 reported by Itzik Brown
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
networking-odl
Won't Fix
Low
Unassigned

Bug Description

The Neutron API test neutron.tests.tempest.api.test_revisions.TestRevisions.test_update_network_constrained_by_revision fails

The test error
==============
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers [req-a0545d22-75f5-479e-a062-e28a0629065d 02d962afddff4e56a7570ab7f4b73612 39a6b3e9622e431885de21dc4ad9eac9 - default default] Mechanism driver 'opendaylight_v2' failed in update_network_precommit: RevisionNumberConstraintFailed: Constrained to 2, but current revision is 3
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers Traceback (most recent call last):
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers File "/usr/lib/python2.7/site-packages/neutron/plugins/ml2/managers.py", line 426, in _call_on_drivers
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers getattr(driver.obj, method_name)(context)
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers File "/usr/lib/python2.7/site-packages/oslo_log/helpers.py", line 67, in wrapper
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers return method(*args, **kwargs)
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers File "/usr/lib/python2.7/site-packages/networking_odl/ml2/mech_driver_v2.py", line 129, in update_network_precommit
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers context, odl_const.ODL_NETWORK, odl_const.ODL_UPDATE)
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers File "/usr/lib/python2.7/site-packages/networking_odl/ml2/mech_driver_v2.py", line 109, in _record_in_journal
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers ml2_context=context)
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers File "/usr/lib/python2.7/site-packages/networking_odl/journal/journal.py", line 97, in record
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers operation, data, depending_on=depending_on)
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers File "/usr/lib/python2.7/site-packages/oslo_db/api.py", line 150, in wrapper
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers ectxt.value = e.inner_exc
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 220, in __exit__
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers self.force_reraise()
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 196, in force_reraise
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers six.reraise(self.type_, self.value, self.tb)
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers File "/usr/lib/python2.7/site-packages/oslo_db/api.py", line 138, in wrapper
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers return f(*args, **kwargs)
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers File "/usr/lib/python2.7/site-packages/networking_odl/db/db.py", line 144, in create_pending_row
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers session.flush()
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/session.py", line 2171, in flush
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers self._flush(objects)
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/session.py", line 2198, in _flush
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers self.dispatch.before_flush(self, flush_context, objects)
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers File "/usr/lib64/python2.7/site-packages/sqlalchemy/event/attr.py", line 218, in __call__
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers fn(*args, **kw)
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers File "/usr/lib/python2.7/site-packages/neutron/services/revisions/revision_plugin.py", line 45, in bump_revisions
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers self._enforce_if_match_constraints(session)
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers File "/usr/lib/python2.7/site-packages/neutron/services/revisions/revision_plugin.py", line 184, in _enforce_if_match_constraints
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers instance.revision_number)
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers RevisionNumberConstraintFailed: Constrained to 2, but current revision is 3
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers
2017-08-10 13:41:46.148 727854 INFO neutron.pecan_wsgi.hooks.translation [req-a0545d22-75f5-479e-a062-e28a0629065d 02d962afddff4e56a7570ab7f4b73612 39a6b3e9622e431885de21dc4ad9eac9 - default default] PUT failed (client error): Constrained to 2, but current revision is 3

The Neutron log error
=====================
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers [req-a0545d22-75f5-479e-a062-e28a0629065d 02d962afddff4e56a7570ab7f4b73612 39a6b3e9622e431885de21dc4ad9eac9 - default default] Mechanism driver 'opendaylight_v2' failed in update_network_precommit: RevisionNumberConstraintFailed: Constrained to 2, but current revision is 3
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers Traceback (most recent call last):
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers File "/usr/lib/python2.7/site-packages/neutron/plugins/ml2/managers.py", line 426, in _call_on_drivers
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers getattr(driver.obj, method_name)(context)
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers File "/usr/lib/python2.7/site-packages/oslo_log/helpers.py", line 67, in wrapper
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers return method(*args, **kwargs)
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers File "/usr/lib/python2.7/site-packages/networking_odl/ml2/mech_driver_v2.py", line 129, in update_network_precommit
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers context, odl_const.ODL_NETWORK, odl_const.ODL_UPDATE)
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers File "/usr/lib/python2.7/site-packages/networking_odl/ml2/mech_driver_v2.py", line 109, in _record_in_journal
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers ml2_context=context)
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers File "/usr/lib/python2.7/site-packages/networking_odl/journal/journal.py", line 97, in record
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers operation, data, depending_on=depending_on)
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers File "/usr/lib/python2.7/site-packages/oslo_db/api.py", line 150, in wrapper
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers ectxt.value = e.inner_exc
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 220, in __exit__
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers self.force_reraise()
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 196, in force_reraise
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers six.reraise(self.type_, self.value, self.tb)
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers File "/usr/lib/python2.7/site-packages/oslo_db/api.py", line 138, in wrapper
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers return f(*args, **kwargs)
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers File "/usr/lib/python2.7/site-packages/networking_odl/db/db.py", line 144, in create_pending_row
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers session.flush()
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/session.py", line 2171, in flush
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers self._flush(objects)
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/session.py", line 2198, in _flush
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers self.dispatch.before_flush(self, flush_context, objects)
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers File "/usr/lib64/python2.7/site-packages/sqlalchemy/event/attr.py", line 218, in __call__
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers fn(*args, **kw)
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers File "/usr/lib/python2.7/site-packages/neutron/services/revisions/revision_plugin.py", line 45, in bump_revisions
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers self._enforce_if_match_constraints(session)
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers File "/usr/lib/python2.7/site-packages/neutron/services/revisions/revision_plugin.py", line 184, in _enforce_if_match_constraints
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers instance.revision_number)
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers RevisionNumberConstraintFailed: Constrained to 2, but current revision is 3
2017-08-10 13:41:46.145 727854 ERROR neutron.plugins.ml2.managers
2017-08-10 13:41:46.148 727854 INFO neutron.pecan_wsgi.hooks.translation [req-a0545d22-75f5-479e-a062-e28a0629065d 02d962afddff4e56a7570ab7f4b73612 39a6b3e9622e431885de21dc4ad9eac9 - default default] PUT failed (client error): Constrained to 2, but current revision is 3

Version
========
python-networking-odl-11.0.0-0.20170804111351.a27bd55.el7ost.noarch

Changed in networking-odl:
importance: Undecided → High
Mike Kolesnik (mkolesni)
Changed in networking-odl:
importance: High → Low
Revision history for this message
Isaku Yamahata (yamahata) wrote :

For now we haven't understood why this test fails.
One possibility is that networking-odl update network resource with callback to bump revision number so that the test may be invalid. But we haven't investigated it yet.

this isn't critical or high because it doesn't cause any explicit harm and there is no clear contract between plugin and driver regarding to how many revision number should be bumped.
So marking this low priority and unsigned.

This should be closed until we understand why.

Revision history for this message
Mike Kolesnik (mkolesni) wrote :

Closing for now as noi progress has been made for months, please reopen if this bug is worked on

Changed in networking-odl:
status: New → Won't Fix
Revision history for this message
Manjeet Singh Bhatia (manjeet-s-bhatia) wrote :

the test basically tries to update the network and check the revision before and after update, however
when it tries to update the network for testing if revision is getting bumped, neutron updates db along with revision, and there's rev_bump param which is true and then sends it to precommit, which loses rev_bump and complains about revision mismatch. It could be a bug in neutron as well.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.