Details
-
Bug
-
Status: Resolved
-
Resolution: Done
-
None
-
None
-
None
-
Operating System: All
Platform: All
-
5050
Description
When the Helium version of OpenFlow plugin connected to an OpenFlow 1.3 switch, it failed to execute a role push request.
As the result, the plugin could not do anything to the switch, including installing flow entries.
The issue occasionally happens when the Helium version connects to OpenFlow 1.3 switches.
For example, it occurred in the VTN CSIT, too.
https://jenkins.opendaylight.org/releng/view/vtn/job/vtn-csit-1node-manager-only-beryllium/67/artifact/karaf.log
I had not observed this issue before yesterday, so I guess the bug is created recently, likely yesterday.
I used the ODL controller which was built today from the latest source code of the stable/beryllium branch of the VTN project to detect the issue.
When I observed the issue, I ran just one single controller.
The error messages I saw in the karaf.log are as follows:
2016-01-21 06:45:08,556 | INFO | entLoopGroup-9-7 | ConnectionAdapterImpl | 159 - org.opendaylight.openflowjava.openflow-protocol-impl - 0.7.0.SNAPSHOT | Hello received / branch
2016-01-21 06:45:08,558 | INFO | entLoopGroup-9-7 | OfEntityManager | 162 - org.opendaylight.openflowplugin - 0.2.0.SNAPSHOT | requestOpenflowEntityOwnership: Registered controller for the
ownership of Uri [_value=openflow:6]
2016-01-21 06:45:08,559 | INFO | entLoopGroup-9-7 | OfEntityManager | 162 - org.opendaylight.openflowplugin - 0.2.0.SNAPSHOT | setSlaveRole: Set controller as a SLAVE controller for 6
2016-01-21 06:45:08,559 | INFO | ofEntity-0 | RolePushTask | 162 - org.opendaylight.openflowplugin - 0.2.0.SNAPSHOT | Pushing SLAVE role configuration to device openflow:6
2016-01-21 06:45:08,559 | INFO | ofEntity-0 | RolePushTask | 162 - org.opendaylight.openflowplugin - 0.2.0.SNAPSHOT | Received generation-id 18446744073709551615 for role change request from device 6
2016-01-21 06:45:08,560 | INFO | ofEntity-0 | RolePushTask | 162 - org.opendaylight.openflowplugin - 0.2.0.SNAPSHOT | Pushing role change SLAVE config request with generation-id 0 to device 6
2016-01-21 06:45:08,560 | INFO | pool-28-thread-1 | StatNodeRegistrationImpl | 167 - org.opendaylight.openflowplugin.applications.statistics-manager - 0.2.0.SNAPSHOT | Received onNodeUpdated for node FlowCapableNodeUpdated [_description=None, _hardware=Open vSwitch, _manufacturer=Nicira, Inc., _serialNumber=None, _software=2.1.0]
2016-01-21 06:45:08,560 | INFO | lt-dispatcher-22 | OfEntityManager | 162 - org.opendaylight.openflowplugin - 0.2.0.SNAPSHOT | onDeviceOwnershipChanged: Set controller as a MASTER controller because it's the OWNER of the Entity{type='openflow', id=/(urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:general-entity?revision=2015-08-20)entity/entity[
]}
2016-01-21 06:45:08,564 | INFO | ofEntity-0 | OfEntityManager | 162 - org.opendaylight.openflowplugin - 0.2.0.SNAPSHOT | setSlaveRole: Controller is set as a SLAVE for 6
2016-01-21 06:45:08,567 | INFO | lt-dispatcher-22 | OfEntityManager | 162 - org.opendaylight.openflowplugin - 0.2.0.SNAPSHOT | registerRoutedRPCForSwitch: Registered routed rpc for ModelDrivenSwitch openflow:6
2016-01-21 06:45:08,567 | INFO | ofEntity-0 | RolePushTask | 162 - org.opendaylight.openflowplugin - 0.2.0.SNAPSHOT | Pushing MASTER role configuration to device openflow:6
2016-01-21 06:45:08,568 | WARN | entLoopGroup-9-7 | ResponseExpectedRpcListener | 159 - org.opendaylight.openflowjava.openflow-protocol-impl - 0.7.0.SNAPSHOT | Request for RpcResultKey [xid=12, outputClazz=org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.BarrierOutput] did not receive a response
2016-01-21 06:45:08,568 | WARN | entLoopGroup-9-7 | ConnectionAdapterImpl | 159 - org.opendaylight.openflowjava.openflow-protocol-impl - 0.7.0.SNAPSHOT | received unexpected rpc response: RpcResultKey [xid=13, outputClazz=org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.BarrierOutput]
016-01-21 06:45:08,568 | ERROR | ofEntity-0 | RolePushTask | 162 - org.opendaylight.openflowplugin - 0.2.0.SNAPSHOT | Role push request failed for device [6]
org.opendaylight.openflowplugin.openflow.md.core.session.RolePushException: Giving up role change: read generation-id failed Timeout waiting for task.
at org.opendaylight.openflowplugin.openflow.md.core.session.RolePushTask.call(RolePushTask.java:117)[162:org.opendaylight.openflowplugin:0.2.0.SNAPSHOT]
at org.opendaylight.openflowplugin.openflow.md.core.session.RolePushTask.call(RolePushTask.java:38)[162:org.opendaylight.openflowplugin:0.2.0.SNAPSHOT]
at java.util.concurrent.FutureTask.run(FutureTask.java:262)[:1.7.0_75]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)[:1.7.0_75]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)[:1.7.0_75]
at java.lang.Thread.run(Thread.java:745)[:1.7.0_75]
2016-01-21 06:45:08,569 | ERROR | ofEntity-0 | RolePushTask | 162 - org.opendaylight.openflowplugin - 0.2.0.SNAPSHOT | Generation ID is NULL for device [6]
2016-01-21 06:45:08,569 | WARN | ofEntity-0 | OfEntityManager | 162 - org.opendaylight.openflowplugin - 0.2.0.SNAPSHOT | onDeviceOwnershipChanged: Controller is not able to set the MASTER role for 6.
org.opendaylight.openflowplugin.openflow.md.core.session.RolePushException: Giving up role change: current generation-id can not be read
at org.opendaylight.openflowplugin.openflow.md.core.session.RolePushTask.call(RolePushTask.java:129)[162:org.opendaylight.openflowplugin:0.2.0.SNAPSHOT]
at org.opendaylight.openflowplugin.openflow.md.core.session.RolePushTask.call(RolePushTask.java:38)[162:org.opendaylight.openflowplugin:0.2.0.SNAPSHOT]
at java.util.concurrent.FutureTask.run(FutureTask.java:262)[:1.7.0_75]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)[:1.7.0_75]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)[:1.7.0_75]
at java.lang.Thread.run(Thread.java:745)[:1.7.0_75]
2016-01-21 06:45:08,569 | INFO | ofEntity-0 | OfEntityManager | 162 - org.opendaylight.openflowplugin - 0.2.0.SNAPSHOT | onDeviceOwnershipChanged: ..and this instance is owner of the device 6. Closing the registration, so other entity can become owner and attempt to be master controller.
2016-01-21 06:45:08,571 | INFO | lt-dispatcher-22 | OfEntityManager | 162 - org.opendaylight.openflowplugin - 0.2.0.SNAPSHOT | registerRoutedRPCForSwitch: Skipping routed rpc registration for ModelDrivenSwitch openflow:6
2016-01-21 06:45:08,575 | INFO | ofEntity-0 | OfEntityManager | 162 - org.opendaylight.openflowplugin - 0.2.0.SNAPSHOT | deregisterRoutedRPCForSwitch: De-registered routed rpc for ModelDrivenSwitch openflow:6
2016-01-21 06:45:08,575 | INFO | ofEntity-0 | OfEntityManager | 162 - org.opendaylight.openflowplugin - 0.2.0.SNAPSHOT | onDeviceOwnershipChanged: ..and registering it back to participate in ownership and re-try
2016-01-21 06:45:08,575 | INFO | ofEntity-0 | OfEntityManager | 162 - org.opendaylight.openflowplugin - 0.2.0.SNAPSHOT | onDeviceOwnershipChanged: re-registered candidate for ownership of the 6
2016-01-21 06:45:08,575 | INFO | ofEntity-0 | RolePushTask | 162 - org.opendaylight.openflowplugin - 0.2.0.SNAPSHOT | Pushing SLAVE role configuration to device openflow:6
2016-01-21 06:45:08,576 | INFO | ult-dispatcher-3 | OfEntityManager | 162 - org.opendaylight.openflowplugin - 0.2.0.SNAPSHOT | onDeviceOwnershipChanged: Set controller as a MASTER controller because it's the OWNER of the Entity{type='openflow', id=/(urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:general-entity?revision=2015-08-20)entity/entity[
]}