← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1833574] [NEW] neutron-dynamic-routing fails under SQLA 1.3.1

 

Public bug reported:

Running unit tests of neutron-dynamic-routing with SQLAlchemy 1.3.1
leads to these failures. Please fix this before the Buster release, as
SQLAlchemy 1.3.x will be uploaded to Sid instead of Experimental, and
anyway, we can't upload the Stein release to Debian Experimental before
this is fixed:

======================================================================
FAIL: neutron_dynamic_routing.tests.unit.db.test_bgp_db.Ml2BgpTests.test_get_ipv6_tenant_subnet_routes_by_bgp_speaker_ipv6
neutron_dynamic_routing.tests.unit.db.test_bgp_db.Ml2BgpTests.test_get_ipv6_tenant_subnet_routes_by_bgp_speaker_ipv6
----------------------------------------------------------------------
testtools.testresult.real._StringException: Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/neutron/tests/base.py", line 174, in func
    return f(self, *args, **kwargs)
  File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/tests/unit/db/test_bgp_db.py", line 685, in test_get_ipv6_tenant_subnet_routes_by_bgp_speaker_ipv6
    binding_cidr)
  File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/tests/unit/db/test_bgp_db.py", line 644, in _advertised_routes_by_bgp_speaker
    speaker['id'])
  File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/services/bgp/bgp_plugin.py", line 225, in get_advertised_routes
    bgp_speaker_id)
  File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/db/bgp_db.py", line 315, in get_advertised_routes
    routes = self.get_routes_by_bgp_speaker_id(context, bgp_speaker_id)
  File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/db/bgp_db.py", line 480, in get_routes_by_bgp_speaker_id
    bgp_speaker_id)
  File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/db/bgp_db.py", line 674, in _get_central_fip_host_routes_by_bgp_speaker
    l3_db.Router.id == router_attrs.router_id)
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2259, in outerjoin
    from_joinpoint=from_joinpoint,
  File "<string>", line 2, in _join
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/base.py", line 220, in generate
    fn(self, *args[1:], **kw)
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2414, in _join
    left, right, onclause, prop, create_aliases, outerjoin, full
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2437, in _join_left_to_right
    ) = self._join_determine_implicit_left_side(left, right, onclause)
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2526, in _join_determine_implicit_left_side
    "Can't determine which FROM clause to join "
sqlalchemy.exc.InvalidRequestError: Can't determine which FROM clause to join from, there are multiple FROMS which can join to this entity. Try adding an explicit ON clause to help resolve the ambiguity.


======================================================================
FAIL: neutron_dynamic_routing.tests.unit.db.test_bgp_db.Ml2BgpTests.test_all_routes_by_bgp_speaker_different_tenant_address_scope
neutron_dynamic_routing.tests.unit.db.test_bgp_db.Ml2BgpTests.test_all_routes_by_bgp_speaker_different_tenant_address_scope
----------------------------------------------------------------------
testtools.testresult.real._StringException: Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/neutron/tests/base.py", line 174, in func
    return f(self, *args, **kwargs)
  File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/tests/unit/db/test_bgp_db.py", line 753, in test_all_routes_by_bgp_speaker_different_tenant_address_scope
    bgp_speaker_id)
  File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/db/bgp_db.py", line 480, in get_routes_by_bgp_speaker_id
    bgp_speaker_id)
  File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/db/bgp_db.py", line 674, in _get_central_fip_host_routes_by_bgp_speaker
    l3_db.Router.id == router_attrs.router_id)
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2259, in outerjoin
    from_joinpoint=from_joinpoint,
  File "<string>", line 2, in _join
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/base.py", line 220, in generate
    fn(self, *args[1:], **kw)
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2414, in _join
    left, right, onclause, prop, create_aliases, outerjoin, full
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2437, in _join_left_to_right
    ) = self._join_determine_implicit_left_side(left, right, onclause)
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2526, in _join_determine_implicit_left_side
    "Can't determine which FROM clause to join "
sqlalchemy.exc.InvalidRequestError: Can't determine which FROM clause to join from, there are multiple FROMS which can join to this entity. Try adding an explicit ON clause to help resolve the ambiguity.


======================================================================
FAIL: neutron_dynamic_routing.tests.unit.db.test_bgp_db.Ml2BgpTests.test_get_ipv4_tenant_subnet_routes_by_bgp_speaker_ipv4
neutron_dynamic_routing.tests.unit.db.test_bgp_db.Ml2BgpTests.test_get_ipv4_tenant_subnet_routes_by_bgp_speaker_ipv4
----------------------------------------------------------------------
testtools.testresult.real._StringException: Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/neutron/tests/base.py", line 174, in func
    return f(self, *args, **kwargs)
  File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/tests/unit/db/test_bgp_db.py", line 696, in test_get_ipv4_tenant_subnet_routes_by_bgp_speaker_ipv4
    binding_cidr)
  File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/tests/unit/db/test_bgp_db.py", line 644, in _advertised_routes_by_bgp_speaker
    speaker['id'])
  File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/services/bgp/bgp_plugin.py", line 225, in get_advertised_routes
    bgp_speaker_id)
  File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/db/bgp_db.py", line 315, in get_advertised_routes
    routes = self.get_routes_by_bgp_speaker_id(context, bgp_speaker_id)
  File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/db/bgp_db.py", line 480, in get_routes_by_bgp_speaker_id
    bgp_speaker_id)
  File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/db/bgp_db.py", line 674, in _get_central_fip_host_routes_by_bgp_speaker
    l3_db.Router.id == router_attrs.router_id)
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2259, in outerjoin
    from_joinpoint=from_joinpoint,
  File "<string>", line 2, in _join
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/base.py", line 220, in generate
    fn(self, *args[1:], **kw)
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2414, in _join
    left, right, onclause, prop, create_aliases, outerjoin, full
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2437, in _join_left_to_right
    ) = self._join_determine_implicit_left_side(left, right, onclause)
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2526, in _join_determine_implicit_left_side
    "Can't determine which FROM clause to join "
sqlalchemy.exc.InvalidRequestError: Can't determine which FROM clause to join from, there are multiple FROMS which can join to this entity. Try adding an explicit ON clause to help resolve the ambiguity.


======================================================================
FAIL: neutron_dynamic_routing.tests.unit.db.test_bgp_db.Ml2BgpTests.test_get_routes_by_bgp_speaker_id_with_fip
neutron_dynamic_routing.tests.unit.db.test_bgp_db.Ml2BgpTests.test_get_routes_by_bgp_speaker_id_with_fip
----------------------------------------------------------------------
testtools.testresult.real._StringException: Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/neutron/tests/base.py", line 174, in func
    return f(self, *args, **kwargs)
  File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/tests/unit/db/test_bgp_db.py", line 846, in test_get_routes_by_bgp_speaker_id_with_fip
    bgp_speaker_id)
  File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/db/bgp_db.py", line 480, in get_routes_by_bgp_speaker_id
    bgp_speaker_id)
  File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/db/bgp_db.py", line 674, in _get_central_fip_host_routes_by_bgp_speaker
    l3_db.Router.id == router_attrs.router_id)
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2259, in outerjoin
    from_joinpoint=from_joinpoint,
  File "<string>", line 2, in _join
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/base.py", line 220, in generate
    fn(self, *args[1:], **kw)
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2414, in _join
    left, right, onclause, prop, create_aliases, outerjoin, full
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2437, in _join_left_to_right
    ) = self._join_determine_implicit_left_side(left, right, onclause)
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2526, in _join_determine_implicit_left_side
    "Can't determine which FROM clause to join "
sqlalchemy.exc.InvalidRequestError: Can't determine which FROM clause to join from, there are multiple FROMS which can join to this entity. Try adding an explicit ON clause to help resolve the ambiguity.


======================================================================
FAIL: neutron_dynamic_routing.tests.unit.db.test_bgp_db.Ml2BgpTests.test_get_ipv4_tenant_subnet_routes_by_bgp_speaker_dvr_router
neutron_dynamic_routing.tests.unit.db.test_bgp_db.Ml2BgpTests.test_get_ipv4_tenant_subnet_routes_by_bgp_speaker_dvr_router
----------------------------------------------------------------------
testtools.testresult.real._StringException: Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/neutron/tests/base.py", line 174, in func
    return f(self, *args, **kwargs)
  File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/tests/unit/db/test_bgp_db.py", line 712, in test_get_ipv4_tenant_subnet_routes_by_bgp_speaker_dvr_router
    router_distributed=True)
  File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/tests/unit/db/test_bgp_db.py", line 644, in _advertised_routes_by_bgp_speaker
    speaker['id'])
  File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/services/bgp/bgp_plugin.py", line 225, in get_advertised_routes
    bgp_speaker_id)
  File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/db/bgp_db.py", line 315, in get_advertised_routes
    routes = self.get_routes_by_bgp_speaker_id(context, bgp_speaker_id)
  File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/db/bgp_db.py", line 480, in get_routes_by_bgp_speaker_id
    bgp_speaker_id)
  File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/db/bgp_db.py", line 674, in _get_central_fip_host_routes_by_bgp_speaker
    l3_db.Router.id == router_attrs.router_id)
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2259, in outerjoin
    from_joinpoint=from_joinpoint,
  File "<string>", line 2, in _join
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/base.py", line 220, in generate
    fn(self, *args[1:], **kw)
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2414, in _join
    left, right, onclause, prop, create_aliases, outerjoin, full
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2437, in _join_left_to_right
    ) = self._join_determine_implicit_left_side(left, right, onclause)
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2526, in _join_determine_implicit_left_side
    "Can't determine which FROM clause to join "
sqlalchemy.exc.InvalidRequestError: Can't determine which FROM clause to join from, there are multiple FROMS which can join to this entity. Try adding an explicit ON clause to help resolve the ambiguity.


======================================================================
FAIL: neutron_dynamic_routing.tests.unit.db.test_bgp_db.Ml2BgpTests.test_get_routes_by_bgp_speaker_id_with_fip_dvr
neutron_dynamic_routing.tests.unit.db.test_bgp_db.Ml2BgpTests.test_get_routes_by_bgp_speaker_id_with_fip_dvr
----------------------------------------------------------------------
testtools.testresult.real._StringException: Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/neutron/tests/base.py", line 174, in func
    return f(self, *args, **kwargs)
  File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/tests/unit/db/test_bgp_db.py", line 911, in test_get_routes_by_bgp_speaker_id_with_fip_dvr
    bgp_speaker_id)
  File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/db/bgp_db.py", line 480, in get_routes_by_bgp_speaker_id
    bgp_speaker_id)
  File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/db/bgp_db.py", line 674, in _get_central_fip_host_routes_by_bgp_speaker
    l3_db.Router.id == router_attrs.router_id)
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2259, in outerjoin
    from_joinpoint=from_joinpoint,
  File "<string>", line 2, in _join
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/base.py", line 220, in generate
    fn(self, *args[1:], **kw)
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2414, in _join
    left, right, onclause, prop, create_aliases, outerjoin, full
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2437, in _join_left_to_right
    ) = self._join_determine_implicit_left_side(left, right, onclause)
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2526, in _join_determine_implicit_left_side
    "Can't determine which FROM clause to join "
sqlalchemy.exc.InvalidRequestError: Can't determine which FROM clause to join from, there are multiple FROMS which can join to this entity. Try adding an explicit ON clause to help resolve the ambiguity.


======================================================================
FAIL: neutron_dynamic_routing.tests.unit.db.test_bgp_db.Ml2BgpTests.test_ha_router_fips_has_no_next_hop_to_fip_agent_gateway
neutron_dynamic_routing.tests.unit.db.test_bgp_db.Ml2BgpTests.test_ha_router_fips_has_no_next_hop_to_fip_agent_gateway
----------------------------------------------------------------------
testtools.testresult.real._StringException: Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/neutron/tests/base.py", line 174, in func
    return f(self, *args, **kwargs)
  File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/tests/unit/db/test_bgp_db.py", line 1272, in test_ha_router_fips_has_no_next_hop_to_fip_agent_gateway
    self._test_legacy_router_fips_next_hop(router_ha=True)
  File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/tests/unit/db/test_bgp_db.py", line 1262, in _test_legacy_router_fips_next_hop
    self.context, bgp_speaker_id)
  File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/db/bgp_db.py", line 480, in get_routes_by_bgp_speaker_id
    bgp_speaker_id)
  File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/db/bgp_db.py", line 674, in _get_central_fip_host_routes_by_bgp_speaker
    l3_db.Router.id == router_attrs.router_id)
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2259, in outerjoin
    from_joinpoint=from_joinpoint,
  File "<string>", line 2, in _join
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/base.py", line 220, in generate
    fn(self, *args[1:], **kw)
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2414, in _join
    left, right, onclause, prop, create_aliases, outerjoin, full
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2437, in _join_left_to_right
    ) = self._join_determine_implicit_left_side(left, right, onclause)
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2526, in _join_determine_implicit_left_side
    "Can't determine which FROM clause to join "
sqlalchemy.exc.InvalidRequestError: Can't determine which FROM clause to join from, there are multiple FROMS which can join to this entity. Try adding an explicit ON clause to help resolve the ambiguity.


======================================================================
FAIL: neutron_dynamic_routing.tests.unit.db.test_bgp_db.Ml2BgpTests.test_legacy_router_fips_has_no_next_hop_to_fip_agent_gateway
neutron_dynamic_routing.tests.unit.db.test_bgp_db.Ml2BgpTests.test_legacy_router_fips_has_no_next_hop_to_fip_agent_gateway
----------------------------------------------------------------------
testtools.testresult.real._StringException: Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/neutron/tests/base.py", line 174, in func
    return f(self, *args, **kwargs)
  File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/tests/unit/db/test_bgp_db.py", line 1269, in test_legacy_router_fips_has_no_next_hop_to_fip_agent_gateway
    self._test_legacy_router_fips_next_hop()
  File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/tests/unit/db/test_bgp_db.py", line 1262, in _test_legacy_router_fips_next_hop
    self.context, bgp_speaker_id)
  File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/db/bgp_db.py", line 480, in get_routes_by_bgp_speaker_id
    bgp_speaker_id)
  File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/db/bgp_db.py", line 674, in _get_central_fip_host_routes_by_bgp_speaker
    l3_db.Router.id == router_attrs.router_id)
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2259, in outerjoin
    from_joinpoint=from_joinpoint,
  File "<string>", line 2, in _join
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/base.py", line 220, in generate
    fn(self, *args[1:], **kw)
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2414, in _join
    left, right, onclause, prop, create_aliases, outerjoin, full
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2437, in _join_left_to_right
    ) = self._join_determine_implicit_left_side(left, right, onclause)
  File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2526, in _join_determine_implicit_left_side
    "Can't determine which FROM clause to join "
sqlalchemy.exc.InvalidRequestError: Can't determine which FROM clause to join from, there are multiple FROMS which can join to this entity. Try adding an explicit ON clause to help resolve the ambiguity.


----------------------------------------------------------------------
Ran 168 tests in 62.085s

FAILED (failures=8)

** 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/1833574

Title:
  neutron-dynamic-routing fails under SQLA 1.3.1

Status in neutron:
  New

Bug description:
  Running unit tests of neutron-dynamic-routing with SQLAlchemy 1.3.1
  leads to these failures. Please fix this before the Buster release, as
  SQLAlchemy 1.3.x will be uploaded to Sid instead of Experimental, and
  anyway, we can't upload the Stein release to Debian Experimental
  before this is fixed:

  ======================================================================
  FAIL: neutron_dynamic_routing.tests.unit.db.test_bgp_db.Ml2BgpTests.test_get_ipv6_tenant_subnet_routes_by_bgp_speaker_ipv6
  neutron_dynamic_routing.tests.unit.db.test_bgp_db.Ml2BgpTests.test_get_ipv6_tenant_subnet_routes_by_bgp_speaker_ipv6
  ----------------------------------------------------------------------
  testtools.testresult.real._StringException: Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/neutron/tests/base.py", line 174, in func
      return f(self, *args, **kwargs)
    File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/tests/unit/db/test_bgp_db.py", line 685, in test_get_ipv6_tenant_subnet_routes_by_bgp_speaker_ipv6
      binding_cidr)
    File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/tests/unit/db/test_bgp_db.py", line 644, in _advertised_routes_by_bgp_speaker
      speaker['id'])
    File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/services/bgp/bgp_plugin.py", line 225, in get_advertised_routes
      bgp_speaker_id)
    File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/db/bgp_db.py", line 315, in get_advertised_routes
      routes = self.get_routes_by_bgp_speaker_id(context, bgp_speaker_id)
    File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/db/bgp_db.py", line 480, in get_routes_by_bgp_speaker_id
      bgp_speaker_id)
    File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/db/bgp_db.py", line 674, in _get_central_fip_host_routes_by_bgp_speaker
      l3_db.Router.id == router_attrs.router_id)
    File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2259, in outerjoin
      from_joinpoint=from_joinpoint,
    File "<string>", line 2, in _join
    File "/usr/lib/python3/dist-packages/sqlalchemy/orm/base.py", line 220, in generate
      fn(self, *args[1:], **kw)
    File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2414, in _join
      left, right, onclause, prop, create_aliases, outerjoin, full
    File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2437, in _join_left_to_right
      ) = self._join_determine_implicit_left_side(left, right, onclause)
    File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2526, in _join_determine_implicit_left_side
      "Can't determine which FROM clause to join "
  sqlalchemy.exc.InvalidRequestError: Can't determine which FROM clause to join from, there are multiple FROMS which can join to this entity. Try adding an explicit ON clause to help resolve the ambiguity.

  
  ======================================================================
  FAIL: neutron_dynamic_routing.tests.unit.db.test_bgp_db.Ml2BgpTests.test_all_routes_by_bgp_speaker_different_tenant_address_scope
  neutron_dynamic_routing.tests.unit.db.test_bgp_db.Ml2BgpTests.test_all_routes_by_bgp_speaker_different_tenant_address_scope
  ----------------------------------------------------------------------
  testtools.testresult.real._StringException: Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/neutron/tests/base.py", line 174, in func
      return f(self, *args, **kwargs)
    File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/tests/unit/db/test_bgp_db.py", line 753, in test_all_routes_by_bgp_speaker_different_tenant_address_scope
      bgp_speaker_id)
    File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/db/bgp_db.py", line 480, in get_routes_by_bgp_speaker_id
      bgp_speaker_id)
    File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/db/bgp_db.py", line 674, in _get_central_fip_host_routes_by_bgp_speaker
      l3_db.Router.id == router_attrs.router_id)
    File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2259, in outerjoin
      from_joinpoint=from_joinpoint,
    File "<string>", line 2, in _join
    File "/usr/lib/python3/dist-packages/sqlalchemy/orm/base.py", line 220, in generate
      fn(self, *args[1:], **kw)
    File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2414, in _join
      left, right, onclause, prop, create_aliases, outerjoin, full
    File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2437, in _join_left_to_right
      ) = self._join_determine_implicit_left_side(left, right, onclause)
    File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2526, in _join_determine_implicit_left_side
      "Can't determine which FROM clause to join "
  sqlalchemy.exc.InvalidRequestError: Can't determine which FROM clause to join from, there are multiple FROMS which can join to this entity. Try adding an explicit ON clause to help resolve the ambiguity.

  
  ======================================================================
  FAIL: neutron_dynamic_routing.tests.unit.db.test_bgp_db.Ml2BgpTests.test_get_ipv4_tenant_subnet_routes_by_bgp_speaker_ipv4
  neutron_dynamic_routing.tests.unit.db.test_bgp_db.Ml2BgpTests.test_get_ipv4_tenant_subnet_routes_by_bgp_speaker_ipv4
  ----------------------------------------------------------------------
  testtools.testresult.real._StringException: Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/neutron/tests/base.py", line 174, in func
      return f(self, *args, **kwargs)
    File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/tests/unit/db/test_bgp_db.py", line 696, in test_get_ipv4_tenant_subnet_routes_by_bgp_speaker_ipv4
      binding_cidr)
    File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/tests/unit/db/test_bgp_db.py", line 644, in _advertised_routes_by_bgp_speaker
      speaker['id'])
    File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/services/bgp/bgp_plugin.py", line 225, in get_advertised_routes
      bgp_speaker_id)
    File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/db/bgp_db.py", line 315, in get_advertised_routes
      routes = self.get_routes_by_bgp_speaker_id(context, bgp_speaker_id)
    File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/db/bgp_db.py", line 480, in get_routes_by_bgp_speaker_id
      bgp_speaker_id)
    File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/db/bgp_db.py", line 674, in _get_central_fip_host_routes_by_bgp_speaker
      l3_db.Router.id == router_attrs.router_id)
    File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2259, in outerjoin
      from_joinpoint=from_joinpoint,
    File "<string>", line 2, in _join
    File "/usr/lib/python3/dist-packages/sqlalchemy/orm/base.py", line 220, in generate
      fn(self, *args[1:], **kw)
    File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2414, in _join
      left, right, onclause, prop, create_aliases, outerjoin, full
    File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2437, in _join_left_to_right
      ) = self._join_determine_implicit_left_side(left, right, onclause)
    File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2526, in _join_determine_implicit_left_side
      "Can't determine which FROM clause to join "
  sqlalchemy.exc.InvalidRequestError: Can't determine which FROM clause to join from, there are multiple FROMS which can join to this entity. Try adding an explicit ON clause to help resolve the ambiguity.

  
  ======================================================================
  FAIL: neutron_dynamic_routing.tests.unit.db.test_bgp_db.Ml2BgpTests.test_get_routes_by_bgp_speaker_id_with_fip
  neutron_dynamic_routing.tests.unit.db.test_bgp_db.Ml2BgpTests.test_get_routes_by_bgp_speaker_id_with_fip
  ----------------------------------------------------------------------
  testtools.testresult.real._StringException: Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/neutron/tests/base.py", line 174, in func
      return f(self, *args, **kwargs)
    File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/tests/unit/db/test_bgp_db.py", line 846, in test_get_routes_by_bgp_speaker_id_with_fip
      bgp_speaker_id)
    File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/db/bgp_db.py", line 480, in get_routes_by_bgp_speaker_id
      bgp_speaker_id)
    File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/db/bgp_db.py", line 674, in _get_central_fip_host_routes_by_bgp_speaker
      l3_db.Router.id == router_attrs.router_id)
    File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2259, in outerjoin
      from_joinpoint=from_joinpoint,
    File "<string>", line 2, in _join
    File "/usr/lib/python3/dist-packages/sqlalchemy/orm/base.py", line 220, in generate
      fn(self, *args[1:], **kw)
    File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2414, in _join
      left, right, onclause, prop, create_aliases, outerjoin, full
    File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2437, in _join_left_to_right
      ) = self._join_determine_implicit_left_side(left, right, onclause)
    File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2526, in _join_determine_implicit_left_side
      "Can't determine which FROM clause to join "
  sqlalchemy.exc.InvalidRequestError: Can't determine which FROM clause to join from, there are multiple FROMS which can join to this entity. Try adding an explicit ON clause to help resolve the ambiguity.

  
  ======================================================================
  FAIL: neutron_dynamic_routing.tests.unit.db.test_bgp_db.Ml2BgpTests.test_get_ipv4_tenant_subnet_routes_by_bgp_speaker_dvr_router
  neutron_dynamic_routing.tests.unit.db.test_bgp_db.Ml2BgpTests.test_get_ipv4_tenant_subnet_routes_by_bgp_speaker_dvr_router
  ----------------------------------------------------------------------
  testtools.testresult.real._StringException: Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/neutron/tests/base.py", line 174, in func
      return f(self, *args, **kwargs)
    File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/tests/unit/db/test_bgp_db.py", line 712, in test_get_ipv4_tenant_subnet_routes_by_bgp_speaker_dvr_router
      router_distributed=True)
    File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/tests/unit/db/test_bgp_db.py", line 644, in _advertised_routes_by_bgp_speaker
      speaker['id'])
    File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/services/bgp/bgp_plugin.py", line 225, in get_advertised_routes
      bgp_speaker_id)
    File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/db/bgp_db.py", line 315, in get_advertised_routes
      routes = self.get_routes_by_bgp_speaker_id(context, bgp_speaker_id)
    File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/db/bgp_db.py", line 480, in get_routes_by_bgp_speaker_id
      bgp_speaker_id)
    File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/db/bgp_db.py", line 674, in _get_central_fip_host_routes_by_bgp_speaker
      l3_db.Router.id == router_attrs.router_id)
    File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2259, in outerjoin
      from_joinpoint=from_joinpoint,
    File "<string>", line 2, in _join
    File "/usr/lib/python3/dist-packages/sqlalchemy/orm/base.py", line 220, in generate
      fn(self, *args[1:], **kw)
    File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2414, in _join
      left, right, onclause, prop, create_aliases, outerjoin, full
    File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2437, in _join_left_to_right
      ) = self._join_determine_implicit_left_side(left, right, onclause)
    File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2526, in _join_determine_implicit_left_side
      "Can't determine which FROM clause to join "
  sqlalchemy.exc.InvalidRequestError: Can't determine which FROM clause to join from, there are multiple FROMS which can join to this entity. Try adding an explicit ON clause to help resolve the ambiguity.

  
  ======================================================================
  FAIL: neutron_dynamic_routing.tests.unit.db.test_bgp_db.Ml2BgpTests.test_get_routes_by_bgp_speaker_id_with_fip_dvr
  neutron_dynamic_routing.tests.unit.db.test_bgp_db.Ml2BgpTests.test_get_routes_by_bgp_speaker_id_with_fip_dvr
  ----------------------------------------------------------------------
  testtools.testresult.real._StringException: Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/neutron/tests/base.py", line 174, in func
      return f(self, *args, **kwargs)
    File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/tests/unit/db/test_bgp_db.py", line 911, in test_get_routes_by_bgp_speaker_id_with_fip_dvr
      bgp_speaker_id)
    File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/db/bgp_db.py", line 480, in get_routes_by_bgp_speaker_id
      bgp_speaker_id)
    File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/db/bgp_db.py", line 674, in _get_central_fip_host_routes_by_bgp_speaker
      l3_db.Router.id == router_attrs.router_id)
    File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2259, in outerjoin
      from_joinpoint=from_joinpoint,
    File "<string>", line 2, in _join
    File "/usr/lib/python3/dist-packages/sqlalchemy/orm/base.py", line 220, in generate
      fn(self, *args[1:], **kw)
    File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2414, in _join
      left, right, onclause, prop, create_aliases, outerjoin, full
    File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2437, in _join_left_to_right
      ) = self._join_determine_implicit_left_side(left, right, onclause)
    File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2526, in _join_determine_implicit_left_side
      "Can't determine which FROM clause to join "
  sqlalchemy.exc.InvalidRequestError: Can't determine which FROM clause to join from, there are multiple FROMS which can join to this entity. Try adding an explicit ON clause to help resolve the ambiguity.

  
  ======================================================================
  FAIL: neutron_dynamic_routing.tests.unit.db.test_bgp_db.Ml2BgpTests.test_ha_router_fips_has_no_next_hop_to_fip_agent_gateway
  neutron_dynamic_routing.tests.unit.db.test_bgp_db.Ml2BgpTests.test_ha_router_fips_has_no_next_hop_to_fip_agent_gateway
  ----------------------------------------------------------------------
  testtools.testresult.real._StringException: Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/neutron/tests/base.py", line 174, in func
      return f(self, *args, **kwargs)
    File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/tests/unit/db/test_bgp_db.py", line 1272, in test_ha_router_fips_has_no_next_hop_to_fip_agent_gateway
      self._test_legacy_router_fips_next_hop(router_ha=True)
    File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/tests/unit/db/test_bgp_db.py", line 1262, in _test_legacy_router_fips_next_hop
      self.context, bgp_speaker_id)
    File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/db/bgp_db.py", line 480, in get_routes_by_bgp_speaker_id
      bgp_speaker_id)
    File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/db/bgp_db.py", line 674, in _get_central_fip_host_routes_by_bgp_speaker
      l3_db.Router.id == router_attrs.router_id)
    File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2259, in outerjoin
      from_joinpoint=from_joinpoint,
    File "<string>", line 2, in _join
    File "/usr/lib/python3/dist-packages/sqlalchemy/orm/base.py", line 220, in generate
      fn(self, *args[1:], **kw)
    File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2414, in _join
      left, right, onclause, prop, create_aliases, outerjoin, full
    File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2437, in _join_left_to_right
      ) = self._join_determine_implicit_left_side(left, right, onclause)
    File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2526, in _join_determine_implicit_left_side
      "Can't determine which FROM clause to join "
  sqlalchemy.exc.InvalidRequestError: Can't determine which FROM clause to join from, there are multiple FROMS which can join to this entity. Try adding an explicit ON clause to help resolve the ambiguity.

  
  ======================================================================
  FAIL: neutron_dynamic_routing.tests.unit.db.test_bgp_db.Ml2BgpTests.test_legacy_router_fips_has_no_next_hop_to_fip_agent_gateway
  neutron_dynamic_routing.tests.unit.db.test_bgp_db.Ml2BgpTests.test_legacy_router_fips_has_no_next_hop_to_fip_agent_gateway
  ----------------------------------------------------------------------
  testtools.testresult.real._StringException: Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/neutron/tests/base.py", line 174, in func
      return f(self, *args, **kwargs)
    File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/tests/unit/db/test_bgp_db.py", line 1269, in test_legacy_router_fips_has_no_next_hop_to_fip_agent_gateway
      self._test_legacy_router_fips_next_hop()
    File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/tests/unit/db/test_bgp_db.py", line 1262, in _test_legacy_router_fips_next_hop
      self.context, bgp_speaker_id)
    File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/db/bgp_db.py", line 480, in get_routes_by_bgp_speaker_id
      bgp_speaker_id)
    File "/<<PKGBUILDDIR>>/neutron_dynamic_routing/db/bgp_db.py", line 674, in _get_central_fip_host_routes_by_bgp_speaker
      l3_db.Router.id == router_attrs.router_id)
    File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2259, in outerjoin
      from_joinpoint=from_joinpoint,
    File "<string>", line 2, in _join
    File "/usr/lib/python3/dist-packages/sqlalchemy/orm/base.py", line 220, in generate
      fn(self, *args[1:], **kw)
    File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2414, in _join
      left, right, onclause, prop, create_aliases, outerjoin, full
    File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2437, in _join_left_to_right
      ) = self._join_determine_implicit_left_side(left, right, onclause)
    File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2526, in _join_determine_implicit_left_side
      "Can't determine which FROM clause to join "
  sqlalchemy.exc.InvalidRequestError: Can't determine which FROM clause to join from, there are multiple FROMS which can join to this entity. Try adding an explicit ON clause to help resolve the ambiguity.

  
  ----------------------------------------------------------------------
  Ran 168 tests in 62.085s

  FAILED (failures=8)

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