← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1441488] [NEW] stale db objects due to session reuse

 

Public bug reported:

many of neutron code seems to be written without considering
the reuse of session and its associated object cache.

it's a problem for UTs where admin context (and thus its session) is
reused heavily.  here's an example of the failure [1].
but there might be non-test code possibly affected.

switching to expire_on_commit=True might improve the situation.
but it doesn't entirely solve the problem because some of read-only
queries are done without explicit transactions.

[1] http://logs.openstack.org/82/158182/5/check/gate-neutron-python27/402b450/
Traceback (most recent call last):
  File "neutron/tests/unit/plugins/ml2/drivers/l2pop/test_mech_driver.py", line 864, in test_host_changed_twice
    mock.ANY, 'remove_fdb_entries', expected)
  File "/home/jenkins/workspace/gate-neutron-python27/.tox/py27/local/lib/python2.7/site-packages/mock.py", line 831, in assert_called_with
    raise AssertionError('Expected call: %s\nNot called' % (expected,))
AssertionError: Expected call: _notification_fanout(<ANY>, 'remove_fdb_entries', {u'58de62e4-5001-485b-a334-b65c3da97745': {'segment_id': 1, 'ports': {'20.0.0.1': [('00:00:00:00:00:00', '0.0.0.0'), PortInfo(mac_address=u'12:34:56:78:fa:4a', ip_address=u'10.0.0.2')]}, 'network_type': 'vxlan'}})
Not called

** Affects: neutron
     Importance: Undecided
         Status: New

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

Title:
  stale db objects due to session reuse

Status in OpenStack Neutron (virtual network service):
  New

Bug description:
  many of neutron code seems to be written without considering
  the reuse of session and its associated object cache.

  it's a problem for UTs where admin context (and thus its session) is
  reused heavily.  here's an example of the failure [1].
  but there might be non-test code possibly affected.

  switching to expire_on_commit=True might improve the situation.
  but it doesn't entirely solve the problem because some of read-only
  queries are done without explicit transactions.

  [1] http://logs.openstack.org/82/158182/5/check/gate-neutron-python27/402b450/
  Traceback (most recent call last):
    File "neutron/tests/unit/plugins/ml2/drivers/l2pop/test_mech_driver.py", line 864, in test_host_changed_twice
      mock.ANY, 'remove_fdb_entries', expected)
    File "/home/jenkins/workspace/gate-neutron-python27/.tox/py27/local/lib/python2.7/site-packages/mock.py", line 831, in assert_called_with
      raise AssertionError('Expected call: %s\nNot called' % (expected,))
  AssertionError: Expected call: _notification_fanout(<ANY>, 'remove_fdb_entries', {u'58de62e4-5001-485b-a334-b65c3da97745': {'segment_id': 1, 'ports': {'20.0.0.1': [('00:00:00:00:00:00', '0.0.0.0'), PortInfo(mac_address=u'12:34:56:78:fa:4a', ip_address=u'10.0.0.2')]}, 'network_type': 'vxlan'}})
  Not called

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


Follow ups

References