Bug 1491327

Summary: Port status update does not work w/ High Availability
Product: Red Hat OpenStack Reporter: Tomas Jamrisko <tjamrisk>
Component: opendaylightAssignee: Josh Hershberg <jhershbe>
Status: CLOSED ERRATA QA Contact: Tomas Jamrisko <tjamrisk>
Severity: urgent Docs Contact:
Priority: urgent    
Version: 12.0 (Pike)CC: aasmith, itbrown, jchhatba, jhershbe, jschluet, mkolesni, nyechiel, sgaddam, skitt, smalleni
Target Milestone: betaKeywords: AutomationBlocker, Triaged
Target Release: 13.0 (Queens)   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: scale_lab
Fixed In Version: opendaylight-8.0.0-3 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
N/A
Last Closed: 2018-06-27 13:36:16 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Tomas Jamrisko 2017-09-13 14:08:49 UTC
Opening downstream based on a bug from upstream, ASCII art might be messed up in buzgilla but it should be readable elsewhere:

Joshua 2017-09-12 12:07:38 UTC
Our current deployment has three controllers, each with an odl instance and a neutron/n-odl instance. The neutron/n-odl instances connect to odl via a VIP. In the deployment we have all webwsocket connections are established against odl0 but the neutron port events that trigger the flow creation and set the operational port status to ACTIVE occur on odl2 which is the "leader". This means that the websocket event is generated on odl2 only...but no one is listening for websocket events on odl2...so the port never gets set to ACTIVE in neutron and the VM remains in BUILD state forever and ever. 

+-----------------------------+      +-----------------------------+      +-----------------------------+
|                             |      |                             |      |                             |
|                             |      |                             |      |                             |
|   +---------------------+   |      |   +---------------------+   |      |   +---------------------+   |
|   |                     |   |      |   |                     |   |      |   |                     |   |
|   |    odl0             |   |      |   |    odl1             |   |      |   |    odl2             |   |
|   |                     |   |      |   |                     |   |      |   |                     |   |
|   |                     |   |      |   |                     |   |      |   |   port created here |   |
|   |                     |   |      |   |                     |   |      |   |                     |   |
|   +----------+----------+   |      |   +---------------------+   |      |   +---------------------+   |
|              ^              |      |                             |      |                             |
|              |              |      |                             |      |                             |
|              websocket----------------------------+-------------------------------------+             |
|              |              |      |              |              |      |               |             |
|              |              |      |              |              |      |               |             |
|   +----------+----------+   |      |   +----------+----------+   |      |   +-----------+---------+   |
|   |                     |   |      |   |                     |   |      |   |                     |   |
|   |                     |   |      |   |                     |   |      |   |                     |   |
|   |  neutron/n-odl      |   |      |   |  neutron/n-odl      |   |      |   |  neutron/n-odl      |   |
|   |                     |   |      |   |                     |   |      |   |                     |   |
|   |                     |   |      |   |                     |   |      |   |                     |   |
|   +---------------------+   |      |   +---------------------+   |      |   +---------------------+   |
|                             |      |                             |      |                             |
|                             |      |                             |      |                             |
+-----------------------------+      +-----------------------------+      +-----------------------------+

Comment 2 Tomas Jamrisko 2017-09-19 08:28:53 UTC
Version in which this was observed:

opendaylight-6.1.0-2.el7ost

Comment 3 Tim Rozet 2017-09-20 12:59:39 UTC
*** Bug 1486917 has been marked as a duplicate of this bug. ***

Comment 4 Tim Rozet 2017-09-20 20:37:26 UTC
As a workaround for now, I have proposed patches disabling port status in OOO for HA ODL deployments:
https://review.openstack.org/#/c/505788/

Comment 5 Nir Yechiel 2017-09-28 13:40:41 UTC
Josh, can you please update this BZ? Is their an upstream NetVirt fix?

Comment 6 Aaron Smith 2017-10-04 00:58:47 UTC
Is the root of the issue that fact that the ODL "leader" selection is independent of pacemakers selection for HAProxy master?

Comment 9 Josh Hershberg 2018-03-21 09:19:58 UTC
https://git.opendaylight.org/gerrit/#/c/64602/

Janki, please add the director patches for this. The ones that set the IP of each ODL in xml config.

Comment 13 Tomas Jamrisko 2018-03-28 14:28:06 UTC
Tested on an HA deployment.

Created multiple instances across multiple networks. The instances correctly switched to ACTIVE, connectivity worked as expected.

Comment 14 Janki 2018-03-29 04:29:42 UTC
(In reply to Josh Hershberg from comment #9)
> https://git.opendaylight.org/gerrit/#/c/64602/
> 
> Janki, please add the director patches for this. The ones that set the IP of
> each ODL in xml config.

Setting of IP in xml file is done by Puppet-ODL. The patch (Gerrit id 64775) for it is already merged and backported to Carbon.

Another patch (Gerrit id 66777) is also pushed to reflect the new file changes and backported to Nitrogen.

Comment 16 errata-xmlrpc 2018-06-27 13:36:16 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHEA-2018:2086