"multiple rows" found when looking up gateway info in db

Bug #1526705 reported by Thomas Morin
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
networking-bgpvpn
Liberty
Fix Released
High
Thomas Morin
Newton
Fix Released
High
Thomas Morin

Bug Description

http://logs.openstack.org/51/232451/11/experimental/gate-install-dsvm-networking-bgpvpn-bagpipe-liberty/25b1428/logs/screen-q-svc.txt.gz#_2015-12-16_09_16_49_415

2015-12-16 09:16:49.415 1866 ERROR networking_bgpvpn.neutron.services.service_drivers.bagpipe.bagpipe Traceback (most recent call last):
2015-12-16 09:16:49.415 1866 ERROR networking_bgpvpn.neutron.services.service_drivers.bagpipe.bagpipe File "/opt/stack/new/networking-bgpvpn/networking_bgpvpn/neutron/services/service_drivers/bagpipe/bagpipe.py", line 456, in registry_port_updated
2015-12-16 09:16:49.415 1866 ERROR networking_bgpvpn.neutron.services.service_drivers.bagpipe.bagpipe self.notify_port_updated(context, port['id'])
2015-12-16 09:16:49.415 1866 ERROR networking_bgpvpn.neutron.services.service_drivers.bagpipe.bagpipe File "/opt/stack/new/networking-bgpvpn/networking_bgpvpn/neutron/services/service_drivers/bagpipe/bagpipe.py", line 355, in notify_port_updated
2015-12-16 09:16:49.415 1866 ERROR networking_bgpvpn.neutron.services.service_drivers.bagpipe.bagpipe self._retrieve_bgpvpn_network_info_for_port(context, port)
2015-12-16 09:16:49.415 1866 ERROR networking_bgpvpn.neutron.services.service_drivers.bagpipe.bagpipe File "/opt/stack/new/networking-bgpvpn/networking_bgpvpn/neutron/services/service_drivers/bagpipe/bagpipe.py", line 263, in _retrieve_bgpvpn_network_info_for_port
2015-12-16 09:16:49.415 1866 ERROR networking_bgpvpn.neutron.services.service_drivers.bagpipe.bagpipe network_info = get_network_info_for_port(context, port_id)
2015-12-16 09:16:49.415 1866 ERROR networking_bgpvpn.neutron.services.service_drivers.bagpipe.bagpipe File "/opt/stack/new/networking-bgpvpn/networking_bgpvpn/neutron/services/service_drivers/bagpipe/bagpipe.py", line 57, in get_network_info_for_port
2015-12-16 09:16:49.415 1866 ERROR networking_bgpvpn.neutron.services.service_drivers.bagpipe.bagpipe filter(models_v2.Port.id == port_id).one())
2015-12-16 09:16:49.415 1866 ERROR networking_bgpvpn.neutron.services.service_drivers.bagpipe.bagpipe File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 2698, in one
2015-12-16 09:16:49.415 1866 ERROR networking_bgpvpn.neutron.services.service_drivers.bagpipe.bagpipe "Multiple rows were found for one()")
2015-12-16 09:16:49.415 1866 ERROR networking_bgpvpn.neutron.services.service_drivers.bagpipe.bagpipe MultipleResultsFound: Multiple rows were found for one()

Tags: bagpipe
Revision history for this message
Thomas Morin (tmmorin-orange) wrote :

The issue happens after adding an IPv6 subnet, so I suspect that the query returns multiple gateways, one for IPv4 and one for IPv6.

If this assumption is correct, then the solution would be to restrict the query to Subnets having ip_version == 4 (which makes a lot of sense anyways, until we support v6).

Changed in bgpvpn:
importance: Medium → High
tags: removed: bagpipe
tags: added: bagpipe
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to networking-bgpvpn (master)

Fix proposed to branch: master
Review: https://review.openstack.org/263327

Changed in bgpvpn:
assignee: nobody → Thomas Morin (tmmorin-orange)
status: Confirmed → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to networking-bgpvpn (master)

Reviewed: https://review.openstack.org/263327
Committed: https://git.openstack.org/cgit/openstack/networking-bgpvpn/commit/?id=01d245f5a81ffff5bd85ad2698f67e658ff22a5c
Submitter: Jenkins
Branch: master

commit 01d245f5a81ffff5bd85ad2698f67e658ff22a5c
Author: Thomas Morin <email address hidden>
Date: Mon Jan 4 16:08:25 2016 +0100

    bagpipe: only select gw for IPv4 subnets

    Until bagpipe supports IPv6, we need to restrict the DB lookup
    to Ipv4 subnets.

    Change-Id: I510a498cf260a09d12a515168eacd40967701d0b
    Closes-bug: 1526705

Changed in bgpvpn:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to networking-bgpvpn (stable/liberty)

Fix proposed to branch: stable/liberty
Review: https://review.openstack.org/263806

Changed in bgpvpn:
milestone: none → next
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to networking-bgpvpn (stable/liberty)

Reviewed: https://review.openstack.org/263806
Committed: https://git.openstack.org/cgit/openstack/networking-bgpvpn/commit/?id=ff945911cc9fbc878ca85349420f9a97e8264b88
Submitter: Jenkins
Branch: stable/liberty

commit ff945911cc9fbc878ca85349420f9a97e8264b88
Author: Thomas Morin <email address hidden>
Date: Mon Jan 4 16:08:25 2016 +0100

    bagpipe: only select gw for IPv4 subnets

    Until bagpipe supports IPv6, we need to restrict the DB lookup
    to Ipv4 subnets.

    Change-Id: I510a498cf260a09d12a515168eacd40967701d0b
    Closes-bug: 1526705
    (cherry picked from commit 01d245f5a81ffff5bd85ad2698f67e658ff22a5c)

Revision history for this message
Doug Hellmann (doug-hellmann) wrote : Fix included in openstack/networking-bgpvpn 3.0.1

This issue was fixed in the openstack/networking-bgpvpn 3.0.1 release.

no longer affects: bgpvpn
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.