Uploaded image for project: 'bgpcep'
  1. bgpcep
  2. BGPCEP-765

BestPathStateImpl NullPointerException

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Medium Medium
    • Fluorine
    • Fluorine
    • BGP
    • None

      This error appears in bgp_app_peer_basic.robot in the beginning right after we try to reconfigure odl accept connection from particular ibgp peer. This error is repeated through whole userfeatures, but this is it's first occurence.

      This is userfeatures-all-fluorine test

      https://logs.opendaylight.org/releng/vex-yul-odl-jenkins-1/bgpcep-csit-1node-userfeatures-all-fluorine/17/odl1_karaf.log.gz

      We check for empty example-ipv4-topology which is present in this case.
      Afterwards we send 3 routes from play.py to odl.
      However the example-ipv4-topology is still empty.

      I am adding steps to reproduce locally.

      Run fluorine karaf.

       

      karaf@root()> feature:install odl-restconf odl-bgpcep-bgp odl-bgpcep-bgp-config-example
      

      Run reconf.py
      Go to integration/test repository into tools/fastbgp
      Run startbgpapppeer.sh
      Watch karaf.log for errors
      Run GET on

      http://localhost:8181/restconf/operational/bgp-rib:bgp-rib/rib/example-bgp-rib/
      

      Routes appear in adj-ribs but not in topologies

      http://localhost:8181/restconf/operational/network-topology:network-topology/topology/example-ipv4-topology 
      2018-03-15T05:04:04,851 | ERROR | opendaylight-cluster-data-notification-dispatcher-94 | LocRibWriter                     | 223 - org.opendaylight.bgpcep.bgp-rib-impl - 0.10.0.SNAPSHOT | Failed to completely propagate updates [LazyDataTreeModification{path = DataTreeIdentifier{datastoreType = OPERATIONAL, rootIdentifier = KeyedInstanceIdentifier{targetType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev171207.rib.Tables, path=[org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev171207.BgpRib, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev171207.bgp.rib.Rib[key=RibKey{_id=Uri{_value=example-bgp-rib}}], org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev171207.bgp.rib.rib.Peer[key=PeerKey{_peerId=Uri{_value=bgp://10.30.170.82}}], org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev171207.bgp.rib.rib.peer.EffectiveRibIn, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev171207.rib.Tables[key=TablesKey{_afi=class org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.Ipv4AddressFamily, _safi=class org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.UnicastSubsequentAddressFamily}]]}}, rootNode = LazyDataObjectModification{identifier = org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev171207.rib.Tables[key=TablesKey{_afi=class org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.Ipv4AddressFamily, _safi=class org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.UnicastSubsequentAddressFamily}], domData = ChildNode{mod = NodeModification [identifier=(urn:opendaylight:params:xml:ns:yang:bgp-rib?revision=2017-12-07)tables[{(urn:opendaylight:params:xml:ns:yang:bgp-rib?revision=2017-12-07)afi=(urn:opendaylight:params:xml:ns:yang:bgp-types?revision=2013-09-19)ipv4-address-family, (urn:opendaylight:params:xml:ns:yang:bgp-rib?revision=2017-12-07)safi=(urn:opendaylight:params:xml:ns:yang:bgp-types?revision=2013-09-19)unicast-subsequent-address-family}], modificationType=WRITE, childModification={}], oldMeta = SimpleContainerNode{version=org.opendaylight.yangtools.yang.data.api.schema.tree.spi.Version@22f0828b, data=ImmutableMapEntryNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-rib?revision=2017-12-07)tables[{(urn:opendaylight:params:xml:ns:yang:bgp-rib?revision=2017-12-07)afi=(urn:opendaylight:params:xml:ns:yang:bgp-types?revision=2013-09-19)ipv4-address-family, (urn:opendaylight:params:xml:ns:yang:bgp-rib?revision=2017-12-07)safi=(urn:opendaylight:params:xml:ns:yang:bgp-types?revision=2013-09-19)unicast-subsequent-address-family}], value=[ImmutableContainerNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-rib?revision=2017-12-07)attributes, value=[ImmutableLeafNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-rib?revision=2017-12-07)uptodate, value=false, attributes={}}], attributes={}}, ImmutableLeafNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-rib?revision=2017-12-07)afi, value=(urn:opendaylight:params:xml:ns:yang:bgp-types?revision=2013-09-19)ipv4-address-family, attributes={}}, ImmutableLeafNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-rib?revision=2017-12-07)safi, value=(urn:opendaylight:params:xml:ns:yang:bgp-types?revision=2013-09-19)unicast-subsequent-address-family, attributes={}}], attributes={}}}, newMeta = SimpleContainerNode{version=org.opendaylight.yangtools.yang.data.api.schema.tree.spi.Version@2c3778a5, data=ImmutableMapEntryNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-rib?revision=2017-12-07)tables[{(urn:opendaylight:params:xml:ns:yang:bgp-rib?revision=2017-12-07)afi=(urn:opendaylight:params:xml:ns:yang:bgp-types?revision=2013-09-19)ipv4-address-family, (urn:opendaylight:params:xml:ns:yang:bgp-rib?revision=2017-12-07)safi=(urn:opendaylight:params:xml:ns:yang:bgp-types?revision=2013-09-19)unicast-subsequent-address-family}], value=[ImmutableLeafNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-rib?revision=2017-12-07)afi, value=(urn:opendaylight:params:xml:ns:yang:bgp-types?revision=2013-09-19)ipv4-address-family, attributes={}}, ImmutableChoiceNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-rib?revision=2017-12-07)routes, value=[ImmutableContainerNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)ipv4-routes, value=[ImmutableMapNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)ipv4-route, value=UnmodifiableCollection{[ImmutableMapEntryNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)ipv4-route[{(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)path-id=0, (urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)prefix=8.0.1.16/28}], value=[ImmutableLeafNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)path-id, value=0, attributes={}}, ImmutableLeafNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)prefix, value=8.0.1.16/28, attributes={}}, ImmutableContainerNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)attributes, value=[ImmutableContainerNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)multi-exit-disc, value=[ImmutableLeafNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)med, value=0, attributes={}}], attributes={}}, ImmutableContainerNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)origin, value=[ImmutableLeafNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)value, value=igp, attributes={}}], attributes={}}, ImmutableContainerNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)originator-id, value=[ImmutableLeafNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)originator, value=41.41.41.41, attributes={}}], attributes={}}, ImmutableContainerNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)local-pref, value=[ImmutableLeafNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)pref, value=100, attributes={}}], attributes={}}, ImmutableContainerNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)as-path, value=[], attributes={}}, ImmutableContainerNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)cluster-id, value=[ImmutableOrderedLeafSetNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)cluster, value=UnmodifiableCollection{[ImmutableLeafSetEntryNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)cluster[40.40.40.40], value=40.40.40.40, attributes={}}]}}], attributes={}}, ImmutableChoiceNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)c-next-hop, value=[ImmutableContainerNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)ipv4-next-hop, value=[ImmutableLeafNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)global, value=192.0.2.1, attributes={}}], attributes={}}]}], attributes={}}], attributes={}}, ImmutableMapEntryNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)ipv4-route[{(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)path-id=0, (urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)prefix=8.0.1.32/28}], value=[ImmutableLeafNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)path-id, value=0, attributes={}}, ImmutableLeafNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)prefix, value=8.0.1.32/28, attributes={}}, ImmutableContainerNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)attributes, value=[ImmutableContainerNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)multi-exit-disc, value=[ImmutableLeafNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)med, value=0, attributes={}}], attributes={}}, ImmutableContainerNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)origin, value=[ImmutableLeafNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)value, value=igp, attributes={}}], attributes={}}, ImmutableContainerNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)originator-id, value=[ImmutableLeafNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)originator, value=41.41.41.41, attributes={}}], attributes={}}, ImmutableContainerNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)local-pref, value=[ImmutableLeafNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)pref, value=100, attributes={}}], attributes={}}, ImmutableContainerNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)as-path, value=[], attributes={}}, ImmutableContainerNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)cluster-id, value=[ImmutableOrderedLeafSetNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)cluster, value=UnmodifiableCollection{[ImmutableLeafSetEntryNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)cluster[40.40.40.40], value=40.40.40.40, attributes={}}]}}], attributes={}}, ImmutableChoiceNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)c-next-hop, value=[ImmutableContainerNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)ipv4-next-hop, value=[ImmutableLeafNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)global, value=192.0.2.1, attributes={}}], attributes={}}]}], attributes={}}], attributes={}}, ImmutableMapEntryNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)ipv4-route[{(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)path-id=0, (urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)prefix=8.0.1.0/28}], value=[ImmutableLeafNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)path-id, value=0, attributes={}}, ImmutableLeafNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)prefix, value=8.0.1.0/28, attributes={}}, ImmutableContainerNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)attributes, value=[ImmutableContainerNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)multi-exit-disc, value=[ImmutableLeafNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)med, value=0, attributes={}}], attributes={}}, ImmutableContainerNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)origin, value=[ImmutableLeafNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)value, value=igp, attributes={}}], attributes={}}, ImmutableContainerNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)originator-id, value=[ImmutableLeafNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)originator, value=41.41.41.41, attributes={}}], attributes={}}, ImmutableContainerNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)local-pref, value=[ImmutableLeafNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)pref, value=100, attributes={}}], attributes={}}, ImmutableContainerNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)as-path, value=[], attributes={}}, ImmutableContainerNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)cluster-id, value=[ImmutableOrderedLeafSetNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)cluster, value=UnmodifiableCollection{[ImmutableLeafSetEntryNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)cluster[40.40.40.40], value=40.40.40.40, attributes={}}]}}], attributes={}}, ImmutableChoiceNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)c-next-hop, value=[ImmutableContainerNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)ipv4-next-hop, value=[ImmutableLeafNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2017-12-07)global, value=192.0.2.1, attributes={}}], attributes={}}]}], attributes={}}], attributes={}}]}}], attributes={}}]}, ImmutableLeafNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-rib?revision=2017-12-07)safi, value=(urn:opendaylight:params:xml:ns:yang:bgp-types?revision=2013-09-19)unicast-subsequent-address-family, attributes={}}, ImmutableContainerNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-rib?revision=2017-12-07)attributes, value=[ImmutableLeafNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-rib?revision=2017-12-07)uptodate, value=false, attributes={}}], attributes={}}], attributes={}}}}}}], state is undefined
      java.lang.NullPointerException: null
      	at org.opendaylight.protocol.bgp.mode.impl.BestPathStateImpl.resolveValues(BestPathStateImpl.java:74) ~[220:org.opendaylight.bgpcep.bgp-path-selection-mode:0.10.0.SNAPSHOT]
      	at org.opendaylight.protocol.bgp.mode.impl.BestPathStateImpl.<init>(BestPathStateImpl.java:32) ~[220:org.opendaylight.bgpcep.bgp-path-selection-mode:0.10.0.SNAPSHOT]
      	at org.opendaylight.protocol.bgp.mode.impl.base.BasePathSelector.processPath(BasePathSelector.java:39) ~[220:org.opendaylight.bgpcep.bgp-path-selection-mode:0.10.0.SNAPSHOT]
      	at org.opendaylight.protocol.bgp.mode.impl.base.BaseAbstractRouteEntry.selectBest(BaseAbstractRouteEntry.java:75) ~[220:org.opendaylight.bgpcep.bgp-path-selection-mode:0.10.0.SNAPSHOT]
      	at org.opendaylight.protocol.bgp.rib.impl.LocRibWriter.walkThrough(LocRibWriter.java:277) ~[223:org.opendaylight.bgpcep.bgp-rib-impl:0.10.0.SNAPSHOT]
      	at org.opendaylight.protocol.bgp.rib.impl.LocRibWriter.onDataTreeChanged(LocRibWriter.java:175) ~[223:org.opendaylight.bgpcep.bgp-rib-impl:0.10.0.SNAPSHOT]
      	at org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataTreeChangeListenerAdapter.onDataTreeChanged(BindingDOMDataTreeChangeListenerAdapter.java:42) ~[279:org.opendaylight.controller.sal-binding-broker-impl:1.8.0.SNAPSHOT]
      	at org.opendaylight.controller.cluster.databroker.compat.LegacyDOMDataBrokerAdapter$2.lambda$registerDataTreeChangeListener$0(LegacyDOMDataBrokerAdapter.java:105) ~[292:org.opendaylight.controller.sal-distributed-datastore:1.8.0.SNAPSHOT]
      	at org.opendaylight.controller.cluster.datastore.DataTreeChangeListenerActor.dataChanged(DataTreeChangeListenerActor.java:67) [292:org.opendaylight.controller.sal-distributed-datastore:1.8.0.SNAPSHOT]
      	at org.opendaylight.controller.cluster.datastore.DataTreeChangeListenerActor.handleReceive(DataTreeChangeListenerActor.java:41) [292:org.opendaylight.controller.sal-distributed-datastore:1.8.0.SNAPSHOT]
      	at org.opendaylight.controller.cluster.common.actor.AbstractUntypedActor.onReceive(AbstractUntypedActor.java:38) [285:org.opendaylight.controller.sal-clustering-commons:1.8.0.SNAPSHOT]
      	at akka.actor.UntypedActor$$anonfun$receive$1.applyOrElse(UntypedActor.scala:166) [41:com.typesafe.akka.actor:2.5.4]
      	at akka.actor.Actor.aroundReceive(Actor.scala:514) [41:com.typesafe.akka.actor:2.5.4]
      	at akka.actor.Actor.aroundReceive$(Actor.scala:512) [41:com.typesafe.akka.actor:2.5.4]
      	at akka.actor.UntypedActor.aroundReceive(UntypedActor.scala:96) [41:com.typesafe.akka.actor:2.5.4]
      	at akka.actor.ActorCell.receiveMessage(ActorCell.scala:527) [41:com.typesafe.akka.actor:2.5.4]
      	at akka.actor.ActorCell.invoke(ActorCell.scala:496) [41:com.typesafe.akka.actor:2.5.4]
      	at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257) [41:com.typesafe.akka.actor:2.5.4]
      	at akka.dispatch.Mailbox.run(Mailbox.scala:224) [41:com.typesafe.akka.actor:2.5.4]
      	at akka.dispatch.Mailbox.exec(Mailbox.scala:234) [41:com.typesafe.akka.actor:2.5.4]
      	at akka.dispatch.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) [41:com.typesafe.akka.actor:2.5.4]
      	at akka.dispatch.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) [41:com.typesafe.akka.actor:2.5.4]
      	at akka.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) [41:com.typesafe.akka.actor:2.5.4]
      	at akka.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) [41:com.typesafe.akka.actor:2.5.4]
      

            cdgasparini Claudio David Gasparini
            tomas.markovic Tomas Markovic
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: