[BGPCEP-848] ClassCastException Created: 15/Nov/18  Updated: 16/Oct/20  Resolved: 16/Oct/20

Status: Resolved
Project: bgpcep
Component/s: BGP
Affects Version/s: Neon
Fix Version/s: None

Type: Bug Priority: Medium
Reporter: Claudio David Gasparini Assignee: Tomas Markovic
Resolution: Cannot Reproduce Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: File all.py     File configure.py     File delete_route.py     File odl_send_route1.py     File odl_send_route2.py     File odl_send_route3.py     File play.py     File send_route1.py     File send_route2.py     File start_play.py     File withdraw_route1.py     File withdraw_route2.py    

 Description   

I am unable to reproduce this error locally, but here are scripts for what test does:

./configure.py
./start_play.py
./odl_send_route1.py
./delete_route.py
./send_route1.py
./withdraw_route1.py
./odl_send_route2.py
./delete_route.py
./send_route2.py

Here it fails on jenkins, where it fails to validate this route, and therefore it is unable to verify it in rib.

It would continue as follows ->

./withdraw_route2.py
./odl_send_route3.py
./delete_route.py

Alternatively we can do only part which fails on jenkins

./configure.py
./start_play.py
./send_route2.py

 
Or there is script which sends 3 routes from odl and 2 from peer, basically mirroring first 5 steps of test

./configure.py
./start_play.py
./all.py

Error on jenkins:

2018-11-14T12:27:47,817 | INFO | pipe-log:log "ROBOT MESSAGE: Starting suite /w/workspace/tomas-bgpcep-csit-1node-userfeatures-2-all-neon/test/csit/suites/bgpcep/bgpfunct/030_bgp_functional_evpn.robot" | core | 119 - org.apache.karaf.log.core - 4.2.1 | ROBOT MESSAGE: Starting test bgpcep-userfeatures.txt.030 Bgp Functional Evpn.Odl_To_Play_route_es_arb
2018-11-14T12:27:50,422 | INFO | pipe-log:log "ROBOT MESSAGE: Starting suite /w/workspace/tomas-bgpcep-csit-1node-userfeatures-2-all-neon/test/csit/suites/bgpcep/bgpfunct/030_bgp_functional_evpn.robot" | core | 119 - org.apache.karaf.log.core - 4.2.1 | ROBOT MESSAGE: Starting test bgpcep-userfeatures.txt.030 Bgp Functional Evpn.Play_To_Odl_route_es_arb
2018-11-14T12:27:54,915 | INFO | pipe-log:log "ROBOT MESSAGE: Starting suite /w/workspace/tomas-bgpcep-csit-1node-userfeatures-2-all-neon/test/csit/suites/bgpcep/bgpfunct/030_bgp_functional_evpn.robot" | core | 119 - org.apache.karaf.log.core - 4.2.1 | ROBOT MESSAGE: Starting test bgpcep-userfeatures.txt.030 Bgp Functional Evpn.Odl_To_Play_route_es_as
2018-11-14T12:27:55,138 | ERROR | opendaylight-cluster-data-notification-dispatcher-166 | DataTreeChangeListenerActor | 288 - org.opendaylight.controller.sal-clustering-commons - 1.9.0.SNAPSHOT | member-1-shard-default-operational: Error notifying listener org.opendaylight.controller.sal.core.compat.LegacyDOMDataBrokerAdapter$2$$Lambda$1145/1607263445@4e7315cd java.lang.ClassCastException:
 org.opendaylight.yangtools.yang.binding.InstanceIdentifier$Item cannot be cast to org.opendaylight.yangtools.yang.binding.InstanceIdentifier$IdentifiableItem at
 org.opendaylight.protocol.bgp.rib.impl.EffectiveRibInWriter.updateRoutes(EffectiveRibInWriter.java:242) ~[236:org.opendaylight.bgpcep.bgp-rib-impl:0.11.0.SNAPSHOT] at
 org.opendaylight.protocol.bgp.rib.impl.EffectiveRibInWriter.onDataTreeChanged(EffectiveRibInWriter.java:199) ~[236:org.opendaylight.bgpcep.bgp-rib-impl:0.11.0.SNAPSHOT] at
 org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataTreeChangeListenerAdapter.onDataTreeChanged(BindingDOMDataTreeChangeListenerAdapter.java:42) ~[283:org.opendaylight.controller.sal-binding-broker-impl:1.9.0.SNAPSHOT] at
 org.opendaylight.controller.cluster.datastore.DataTreeChangeListenerActor.dataChanged(DataTreeChangeListenerActor.java:67) [296:org.opendaylight.controller.sal-distributed-datastore:1.9.0.SNAPSHOT] at
 org.opendaylight.controller.cluster.datastore.DataTreeChangeListenerActor.handleReceive(DataTreeChangeListenerActor.java:41) [296:org.opendaylight.controller.sal-distributed-datastore:1.9.0.SNAPSHOT] at
 org.opendaylight.controller.cluster.common.actor.AbstractUntypedActor.onReceive(AbstractUntypedActor.java:40) [288:org.opendaylight.controller.sal-clustering-commons:1.9.0.SNAPSHOT] at
 akka.actor.UntypedActor$$anonfun$receive$1.applyOrElse(UntypedActor.scala:167) [38:com.typesafe.akka.actor:2.5.14] at akka.actor.Actor.aroundReceive(Actor.scala:517) [38:com.typesafe.akka.actor:2.5.14] at
 akka.actor.Actor.aroundReceive$(Actor.scala:515) [38:com.typesafe.akka.actor:2.5.14] at akka.actor.UntypedActor.aroundReceive(UntypedActor.scala:97) [38:com.typesafe.akka.actor:2.5.14] at
 akka.actor.ActorCell.receiveMessage(ActorCell.scala:588) [38:com.typesafe.akka.actor:2.5.14] at akka.actor.ActorCell.invoke(ActorCell.scala:557) [38:com.typesafe.akka.actor:2.5.14] at
 akka.dispatch.Mailbox.processMailbox(Mailbox.scala:258) [38:com.typesafe.akka.actor:2.5.14] at akka.dispatch.Mailbox.run(Mailbox.scala:225) [38:com.typesafe.akka.actor:2.5.14] at
 akka.dispatch.Mailbox.exec(Mailbox.scala:235) [38:com.typesafe.akka.actor:2.5.14] at akka.dispatch.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) [38:com.typesafe.akka.actor:2.5.14] at
 akka.dispatch.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) [38:com.typesafe.akka.actor:2.5.14] at akka.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979 [38:com.typesafe.akka.actor:2.5.14] at
 akka.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) [38:com.typesafe.akka.actor:2.5.14]
2018-11-14T12:27:55,347 | INFO | pipe-log:log "ROBOT MESSAGE: Starting suite /w/workspace/tomas-bgpcep-csit-1node-userfeatures-2-all-neon/test/csit/suites/bgpcep/bgpfunct/030_bgp_functional_evpn.robot" | core | 119 - org.apache.karaf.log.core - 4.2.1 | ROBOT MESSAGE: Starting test bgpcep-userfeatures.txt.030 Bgp Functional Evpn.Play_To_Odl_route_es_as
2018-11-14T12:27:56,215 | ERROR | opendaylight-cluster-data-notification-dispatcher-166 | DataTreeChangeListenerActor | 288 - org.opendaylight.controller.sal-clustering-commons - 1.9.0.SNAPSHOT | member-1-shard-default-operational: Error notifying listener org.opendaylight.controller.sal.core.compat.LegacyDOMDataBrokerAdapter$2$$Lambda$1145/1607263445@4e7315cd java.lang.IllegalStateException: New transaction PingPongTransaction{delegate=org.opendaylight.controller.sal.core.compat.LegacyDOMDataBrokerAdapter$DOMDataTransactionAdapter@4b52ea7f} raced with transaction PingPongTransaction{delegate=org.opendaylight.controller.sal.core.compat.LegacyDOMDataBrokerAdapter$DOMDataTransactionAdapter@59afb877} at
 org.opendaylight.controller.md.sal.dom.broker.impl.PingPongTransactionChain.slowAllocateTransaction(PingPongTransactionChain.java:180) ~[285:org.opendaylight.controller.sal-broker-impl:1.9.0.SNAPSHOT] at
 org.opendaylight.controller.md.sal.dom.broker.impl.PingPongTransactionChain.allocateTransaction(PingPongTransactionChain.java:192) ~[285:org.opendaylight.controller.sal-broker-impl:1.9.0.SNAPSHOT] at
 org.opendaylight.controller.md.sal.dom.broker.impl.PingPongTransactionChain.newReadWriteTransaction(PingPongTransactionChain.java:442) ~[285:org.opendaylight.controller.sal-broker-impl:1.9.0.SNAPSHOT] at
 org.opendaylight.controller.md.sal.dom.broker.impl.PingPongTransactionChain.newWriteOnlyTransaction(PingPongTransactionChain.java:477) ~[285:org.opendaylight.controller.sal-broker-impl:1.9.0.SNAPSHOT] at
 org.opendaylight.controller.md.sal.binding.impl.BindingDOMTransactionChainAdapter.newWriteOnlyTransaction(BindingDOMTransactionChainAdapter.java:75) ~[283:org.opendaylight.controller.sal-binding-broker-impl:1.9.0.SNAPSHOT] at org.opendaylight.protocol.bgp.rib.impl.EffectiveRibInWriter.onDataTreeChanged(EffectiveRibInWriter.java:162) ~[236:org.opendaylight.bgpcep.bgp-rib-impl:0.11.0.SNAPSHOT] at
 org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataTreeChangeListenerAdapter.onDataTreeChanged(BindingDOMDataTreeChangeListenerAdapter.java:42) ~[283:org.opendaylight.controller.sal-binding-broker-impl:1.9.0.SNAPSHOT] at org.opendaylight.controller.cluster.datastore.DataTreeChangeListenerActor.dataChanged(DataTreeChangeListenerActor.java:67) [296:org.opendaylight.controller.sal-distributed-datastore:1.9.0.SNAPSHOT] at org.opendaylight.controller.cluster.datastore.DataTreeChangeListenerActor.handleReceive(DataTreeChangeListenerActor.java:41) [296:org.opendaylight.controller.sal-distributed-datastore:1.9.0.SNAPSHOT] at org.opendaylight.controller.cluster.common.actor.AbstractUntypedActor.onReceive(AbstractUntypedActor.java:40) [288:org.opendaylight.controller.sal-clustering-commons:1.9.0.SNAPSHOT] at
 akka.actor.UntypedActor$$anonfun$receive$1.applyOrElse(UntypedActor.scala:167) [38:com.typesafe.akka.actor:2.5.14] at akka.actor.Actor.aroundReceive(Actor.scala:517) [38:com.typesafe.akka.actor:2.5.14] at
 akka.actor.Actor.aroundReceive$(Actor.scala:515) [38:com.typesafe.akka.actor:2.5.14] at akka.actor.UntypedActor.aroundReceive(UntypedActor.scala:97) [38:com.typesafe.akka.actor:2.5.14] at
 akka.actor.ActorCell.receiveMessage(ActorCell.scala:588) [38:com.typesafe.akka.actor:2.5.14] at akka.actor.ActorCell.invoke(ActorCell.scala:557) [38:com.typesafe.akka.actor:2.5.14] at
 akka.dispatch.Mailbox.processMailbox(Mailbox.scala:258) [38:com.typesafe.akka.actor:2.5.14] at akka.dispatch.Mailbox.run(Mailbox.scala:225) [38:com.typesafe.akka.actor:2.5.14] at
 akka.dispatch.Mailbox.exec(Mailbox.scala:235) [38:com.typesafe.akka.actor:2.5.14] at akka.dispatch.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) [38:com.typesafe.akka.actor:2.5.14] at
 akka.dispatch.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) [38:com.typesafe.akka.actor:2.5.14] at akka.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) [38:com.typesafe.akka.actor:2.5.14] at
 akka.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) [38:com.typesafe.akka.actor:2.5.14]


 Comments   
Comment by Claudio David Gasparini [ 19/Nov/18 ]

After verify patch

userfeatures.txt.030 Bgp Functional Evpn.Odl_To_Play_route_es_as
2018-11-19T03:16:18,294 | ERROR | opendaylight-cluster-data-notification-dispatcher-165 | DataTreeChangeListenerActor      | 288 - org.opendaylight.controller.sal-clustering-commons - 1.9.0 | member-1-shard-default-operational: Error notifying listener org.opendaylight.controller.sal.core.compat.LegacyDOMDataBrokerAdapter$2$$Lambda$1075/2016877546@545c75a4
com.google.common.base.VerifyException: Route change LazyDataObjectModification{identifier = org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev180329.evpn.routes.evpn.routes.EvpnRoute, domData = ChildNode{mod = NodeModification [identifier=(urn:opendaylight:params:xml:ns:yang:bgp-evpn?revision=2018-03-29)evpn-route, modificationType=TOUCH, childModification={(urn:opendaylight:params:xml:ns:yang:bgp-evpn?revision=2018-03-29)evpn-route[{(urn:opendaylight:params:xml:ns:yang:bgp-evpn?revision=2018-03-29)route-key=BBcAAhmZmZkAAQAAAAAAAAAAAAAgKysrKw==, (urn:opendaylight:params:xml:ns:yang:bgp-evpn?revision=2018-03-29)path-id=0}]=NodeModification [identifier=(urn:opendaylight:params:xml:ns:yang:bgp-evpn?revision=2018-03-29)evpn-route[{(urn:opendaylight:params:xml:ns:yang:bgp-evpn?revision=2018-03-29)route-key=BBcAAhmZmZkAAQAAAAAAAAAAAAAgKysrKw==, (urn:opendaylight:params:xml:ns:yang:bgp-evpn?revision=2018-03-29)path-id=0}], modificationType=DELETE, childModification={}]}], oldMeta = null, newMeta = null}} has invalid identifier org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev180329.evpn.routes.evpn.routes.EvpnRoute
	at com.google.common.base.Verify.verify(Verify.java:424) ~[34:com.google.guava:25.1.0.jre]
	at org.opendaylight.protocol.bgp.rib.impl.EffectiveRibInWriter.updateRoutes(EffectiveRibInWriter.java:245) ~[236:org.opendaylight.bgpcep.bgp-rib-impl:0.11.0]
	at org.opendaylight.protocol.bgp.rib.impl.EffectiveRibInWriter.onDataTreeChanged(EffectiveRibInWriter.java:202) ~[236:org.opendaylight.bgpcep.bgp-rib-impl:0.11.0]
	at org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataTreeChangeListenerAdapter.onDataTreeChanged(BindingDOMDataTreeChangeListenerAdapter.java:42) ~[283:org.opendaylight.controller.sal-binding-broker-impl:1.9.0]
	at org.opendaylight.controller.cluster.datastore.DataTreeChangeListenerActor.dataChanged(DataTreeChangeListenerActor.java:67) [296:org.opendaylight.controller.sal-distributed-datastore:1.9.0]
	at org.opendaylight.controller.cluster.datastore.DataTreeChangeListenerActor.handleReceive(DataTreeChangeListenerActor.java:41) [296:org.opendaylight.controller.sal-distributed-datastore:1.9.0]
	at org.opendaylight.controller.cluster.common.actor.AbstractUntypedActor.onReceive(AbstractUntypedActor.java:40) [288:org.opendaylight.controller.sal-clustering-commons:1.9.0]
	at akka.actor.UntypedActor$$anonfun$receive$1.applyOrElse(UntypedActor.scala:167) [38:com.typesafe.akka.actor:2.5.14]
	at akka.actor.Actor.aroundReceive(Actor.scala:517) [38:com.typesafe.akka.actor:2.5.14]
	at akka.actor.Actor.aroundReceive$(Actor.scala:515) [38:com.typesafe.akka.actor:2.5.14]
	at akka.actor.UntypedActor.aroundReceive(UntypedActor.scala:97) [38:com.typesafe.akka.actor:2.5.14]
	at akka.actor.ActorCell.receiveMessage(ActorCell.scala:588) [38:com.typesafe.akka.actor:2.5.14]
	at akka.actor.ActorCell.invoke(ActorCell.scala:557) [38:com.typesafe.akka.actor:2.5.14]
	at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:258) [38:com.typesafe.akka.actor:2.5.14]
	at akka.dispatch.Mailbox.run(Mailbox.scala:225) [38:com.typesafe.akka.actor:2.5.14]
	at akka.dispatch.Mailbox.exec(Mailbox.scala:235) [38:com.typesafe.akka.actor:2.5.14]
	at akka.dispatch.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) [38:com.typesafe.akka.actor:2.5.14]
	at akka.dispatch.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) [38:com.typesafe.akka.actor:2.5.14]
	at akka.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) [38:com.typesafe.akka.actor:2.5.14]
	at akka.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) [38:com.typesafe.akka.actor:2.5.14]
Comment by Claudio David Gasparini [ 21/Nov/18 ]

tomas.markovicCould you add scripts to reproduce this part of the test, route
BBcAAhmZmZkAAQAAAAAAAAAAAAAgKysrKw==

Comment by Tomas Markovic [ 21/Nov/18 ]

This would be send_route2.py. But I also added first 5 test cases, because I wasnt sure if it had something to do with rest of the test.

Comment by Robert Varga [ 15/Mar/19 ]

Is this still present?

Generated at Wed Feb 07 19:14:17 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.