[NETVIRT-77] [Legacy] br-int not getting created when Netvirt used as 3node Created: 18/Aug/16 Updated: 09/Mar/18 Resolved: 24/Aug/16 |
|
| Status: | Resolved |
| Project: | netvirt |
| Component/s: | None |
| Affects Version/s: | Boron |
| Fix Version/s: | None |
| Type: | Bug | ||
| Reporter: | Venkatrangan Govindarajan | Assignee: | Bertrand Low |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Environment: |
Operating System: All |
||
| Attachments: |
|
| External issue ID: | 6455 |
| Description |
|
distribution used for testing: https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/org/opendaylight/integration/distribution-karaf/0.5.0-SNAPSHOT/distribution-karaf-0.5.0-20160817.134922-4396.zip Steps Tried out 1. Deploy 3 node as Cluster 2. Installed odl-ovsdb-openstack, odl-jolokia in 3nodes 3. Ensured the clustering is fine by checking sync status 4. Added the 3 node as Managers to OVS Observation1: br-int not getting created Observation2: Manually created br-int and then checked dump-fl;ows, the pipeline initial flows are nnot geting added. Observation 3: saw this is ODL2 log ------------------------------------------------ 5. Checked the entity owners , ODL2 was the owner of netvirt-provider entity 6. Killed karaf in ODL2 and restarted 7. ODL1 became owner of netvirt-provider |
| Comments |
| Comment by Venkatrangan Govindarajan [ 18/Aug/16 ] |
|
Attachment odl1_bug_6455_log.tgz has been added with description: ODL1 logs |
| Comment by Venkatrangan Govindarajan [ 18/Aug/16 ] |
|
Attachment odl2_bug_6455_log.tgz has been added with description: ODL2 logs |
| Comment by Venkatrangan Govindarajan [ 18/Aug/16 ] |
|
Attachment odl3_bug_6455_log.tgz has been added with description: ODL3 logs |
| Comment by Venkatrangan Govindarajan [ 19/Aug/16 ] |
|
The issue occurs in releng also now |
| Comment by Bertrand Low [ 23/Aug/16 ] |
|
The error appears to be happening because of a timing issue between O13Provider and ProviderNetworkManagerImpl The effect of this error is that Netvirt will fail to start properly. In this particular case, because ovsdbInventoryService is null, OvsdbInventoryServiceImpl will never get notified that its providers are ready, and hence the following will be true: the ovsdbDataChangeListener will not start, and both the NeutronModelsDataChangeListeners and the NetvirtTopology will not be initialized. In general though, seeing the "Failed to start Netvirt" log does not tell us which component of Netvirt has failed; it only tells us that Netvirt will not behave in an expected way. Likely, fixing the NullPointerException will allow Netvirt to start up properly and hence the successfully creation of br-int. |
| Comment by Bertrand Low [ 23/Aug/16 ] |
|
Sam pointed out that blueprint migration may have contributed to this behaviour because blueprint causes the order of ConfigActivator.start() in Netvirt and in Netvirt-Providers to be random (see https://lists.opendaylight.org/pipermail/netvirt-dev/2016-August/001274.html). That is, sometimes, Netvirt-Providers will start up before Netvirt starts up. This random order is in itself not the cause of the problem, as we have observed successful starts independent of whether Netvirt-Providers starts up before Netvirt or vice versa. However, in the instances where the timing issue described above occurs, Netvirt-Providers has been observed to start up before Netvirt. We will confirm if adding the OvsdbInventoryService dependency to netvirt-provider.xml works to properly set all dependencies before startup, thus avoiding the NullPointerException. |
| Comment by Bertrand Low [ 24/Aug/16 ] |
|
Patch submitted. Inject dependency of OvsdbInventoryService to blueprint for NetvirtProvidersProvider https://git.opendaylight.org/gerrit/#/c/44562/4 The patch has been tested and the bug has not been observed after applying the patch |
| Comment by Bertrand Low [ 24/Aug/16 ] |
|
master branch: |