[NETVIRT-984] OVSDB transaction of l2gw connection creation is not executed to the end in L2GW HA environment. Created: 10/Nov/17  Updated: 10/Feb/18  Resolved: 10/Feb/18

Status: Resolved
Project: netvirt
Component/s: General
Affects Version/s: None
Fix Version/s: Nitrogen-SR2, Carbon-SR3, Oxygen

Type: Bug Priority: Medium
Reporter: Ran Xiao Assignee: kaoru sueda
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

○Environment Details:
OpenStack Version: stable/pike
ODL Version: nitrogen-FR
Openvswitch Version:2.7.2
hardware_vtep schema Version:1.7.0



 Description   

The following exception occurs when create l2gw connection in L2GW HA environment.
OVSDB transaction of l2gw connection creation is not executed to the end.

  • Exception:
    2017-11-09 10:34:06,892 | ERROR | n-invoker-impl-0 | vtepOperationalCommandAggregator | 355 - org.opendaylight.ovsdb.hwvtepsouthbound-impl - 1.5.0 | Execution of command org.opendaylight.ovsdb.hwvtepsouthbound.transactions.md.HwvtepLogicalSwitchUpdateCommand@47222317 failed with the following exception. Continuing the execution of remaining commands
    java.util.NoSuchElementException
    at java.util.HashMap$HashIterator.nextNode(HashMap.java:1439)[:1.8.0_144]
    at java.util.HashMap$KeyIterator.next(HashMap.java:1461)[:1.8.0_144]
    at org.opendaylight.ovsdb.hwvtepsouthbound.transactions.md.HwvtepLogicalSwitchUpdateCommand.buildConnectionNode(HwvtepLogicalSwitchUpdateCommand.java:91)[355:org.opendaylight.ovsdb.hwvtepsouthbound-impl:1.5.0]
    at org.opendaylight.ovsdb.hwvtepsouthbound.transactions.md.HwvtepLogicalSwitchUpdateCommand.updateLogicalSwitch(HwvtepLogicalSwitchUpdateCommand.java:63)[355:org.opendaylight.ovsdb.hwvtepsouthbound-impl:1.5.0]
    at org.opendaylight.ovsdb.hwvtepsouthbound.transactions.md.HwvtepLogicalSwitchUpdateCommand.execute(HwvtepLogicalSwitchUpdateCommand.java:55)[355:org.opendaylight.ovsdb.hwvtepsouthbound-impl:1.5.0]
    at org.opendaylight.ovsdb.hwvtepsouthbound.transactions.md.HwvtepOperationalCommandAggregator.execute(HwvtepOperationalCommandAggregator.java:59)[355:org.opendaylight.ovsdb.hwvtepsouthbound-impl:1.5.0]
    at org.opendaylight.ovsdb.hwvtepsouthbound.transactions.md.TransactionInvokerImpl.run(TransactionInvokerImpl.java:107)[355:org.opendaylight.ovsdb.hwvtepsouthbound-impl:1.5.0]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)[:1.8.0_144]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)[:1.8.0_144]
    at java.lang.Thread.run(Thread.java:748)[:1.8.0_144]

○Cause

"replication-mode" is not set in HWVTEP logical-switches entry in DS
The place where it expect to be set is marked with "" below:

config/network-topology:network-topology
{
"network-topology": {
"topology": [
{
"topology-id": "hwvtep:1",
"node": [
{
"node-id": "hwvtep://uuid/8ec2ca5b-7038-4102-ae8a-e17e9a39311a",
:
"hwvtep:logical-switches": [
{
"hwvtep-node-name": "2a0f4784-3c02-4861-a7bc-0b3a84eaddf7",
"tunnel-key": "2061",
"logical-switch-uuid": "64f8b1e6-ca65-3acf-9541-5158a619fd08",
"replication-mode": "source_node"
}
],
:
},
}
:
}
]
}
}

○Reproduction steps:

  • 1. Initialize and Configure ControllerNode/ComputeNode/ODL
  • 2. Create NW/Router/VM
  • 3. Configure L2GW HA Cluster
  • 4. Create L2GW GATEWAY
  • 5. Create L2GW CONNECTION


 Comments   
Comment by kaoru sueda [ 29/Nov/17 ]

Created a fix patch for this issue.
Could someone help to review it?
Thanks in advance.

<https://git.opendaylight.org/gerrit/#/c/66051/>

Generated at Wed Feb 07 20:22:57 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.