[NIC-14] Graph service - not able to listen the service in redirect action Created: 25/Jan/16  Updated: 19/Oct/17  Resolved: 12/Feb/16

Status: Resolved
Project: nic
Component/s: General
Affects Version/s: unspecified
Fix Version/s: None

Type: Bug
Reporter: Vinothkumar Assignee: Unassigned
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


External issue ID: 5082

 Description   

While passing source and destination node ID to graph service to find the shortest path, but service not able to listen the Node ID's.

Please find the log in below,

2016-01-26 01:27:53,241 | ERROR | pool-28-thread-1 | DOMNotificationRouterEvent | 138 - org.opendaylight.controller.sal-broker-impl - 1.3.0.SNAPSHOT | Delivery of notification org.opendaylight.controller.md.sal.binding.impl.LazySerializedDOMNotification@ffd1889 caused an error in listener org.opendaylight.controller.md.sal.binding.impl.BindingDOMNotificationListenerAdapter@3155d292
java.lang.IllegalArgumentException: Specified source vertex Uri [_value=openflow:1] is not part of graph Vertices
Edges:
at edu.uci.ics.jung.algorithms.shortestpath.DijkstraShortestPath.getPath(DijkstraShortestPath.java:160)[279:org.opendaylight.controller.thirdparty.net.sf.jung2:2.0.1]
at edu.uci.ics.jung.algorithms.shortestpath.DijkstraShortestPath.getPath(DijkstraShortestPath.java:204)[279:org.opendaylight.controller.thirdparty.net.sf.jung2:2.0.1]
at org.opendaylight.nic.of.renderer.impl.NetworkGraphManager.getShortestPath(NetworkGraphManager.java:68)[280:org.opendaylight.nic.of-renderer:1.1.0.SNAPSHOT]
at org.opendaylight.nic.of.renderer.impl.RedirectFlowManager.generateRedirectFlows(RedirectFlowManager.java:256)[280:org.opendaylight.nic.of-renderer:1.1.0.SNAPSHOT]
at org.opendaylight.nic.of.renderer.impl.RedirectFlowManager.redirectFlowEntry(RedirectFlowManager.java:232)[280:org.opendaylight.nic.of-renderer:1.1.0.SNAPSHOT]
at org.opendaylight.nic.of.renderer.impl.RedirectFlowManager.addMacNodeToCache(RedirectFlowManager.java:442)[280:org.opendaylight.nic.of-renderer:1.1.0.SNAPSHOT]
at org.opendaylight.nic.of.renderer.impl.RedirectFlowManager.onPacketReceived(RedirectFlowManager.java:122)[280:org.opendaylight.nic.of-renderer:1.1.0.SNAPSHOT]
at org.opendaylight.yangtools.yang.binding.util.NotificationListenerInvoker.invokeNotification(NotificationListenerInvoker.java:91)[69:org.opendaylight.mdsal.yang-binding:0.8.0.SNAPSHOT]
at org.opendaylight.controller.md.sal.binding.impl.BindingDOMNotificationListenerAdapter.onNotification(BindingDOMNotificationListenerAdapter.java:44)[140:org.opendaylight.controller.sal-binding-broker-impl:1.3.0.SNAPSHOT]
at org.opendaylight.controller.md.sal.dom.broker.impl.DOMNotificationRouterEvent.deliverNotification(DOMNotificationRouterEvent.java:56)[138:org.opendaylight.controller.sal-broker-impl:1.3.0.SNAPSHOT]
at org.opendaylight.controller.md.sal.dom.broker.impl.DOMNotificationRouter$1.onEvent(DOMNotificationRouter.java:68)[138:org.opendaylight.controller.sal-broker-impl:1.3.0.SNAPSHOT]
at org.opendaylight.controller.md.sal.dom.broker.impl.DOMNotificationRouter$1.onEvent(DOMNotificationRouter.java:65)[138:org.opendaylight.controller.sal-broker-impl:1.3.0.SNAPSHOT]
at com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:128)[135:com.lmax.disruptor:3.3.0]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)[:1.7.0_40]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)[:1.7.0_40]
at java.lang.Thread.run(Thread.java:724)[:1.7.0_40]



 Comments   
Comment by Vinothkumar [ 25/Jan/16 ]

We have tested RC0 build for redirect action, and working fine. We tested recent master/stable beryllium patch on today, but redirect action is not working due to recent changes.

Comment by Icaro Camelo [ 25/Jan/16 ]

Hi Vinoth,

A regression was introduced causing a bug in the MPLS functionality.
This patch (https://git.opendaylight.org/gerrit/gitweb?p=nic.git;a=commit;h=f4521b6454bdcabda2e44a05c7c41eca3035ae00) fixed:

  • NetworkGraph was being reinitialized, causing IndexOutOfBoundsException;
  • MPLS labels were not working properly, since NetworkGraph was empty;

You can find here the steps to reproduce the MPLS functionality: https://wiki.opendaylight.org/view/Network_Intent_Composition:Use_Cases#MPLS_Intents

Comment by Vinothkumar [ 25/Jan/16 ]

Hi Team,

we found that root cause of this bug, when we revert this patch (https://git.opendaylight.org/gerrit/#/c/33399/) in stable beryllium the redirect action code is working fine. and by default master beryllium working fine.

Comment by Vinothkumar [ 01/Feb/16 ]

hi nic-dev,

On further analysis its found that the handleEvent() of TopologyLinkNotificationSubscriberImpl is not getting invoked. This resulted in the graph links not updated.

Its also observed that the LinkUp notification of NodeConnectorNotificationSupplierImpl is getting invoked and the handleEvent() of NodeNotificationSubscriberImpl is called successfully.

our understanding is that the TopologyLinkUp notification is not generated.
Would like to understand is there is any change in the way topology events are handled between li and he openflow plugins.

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