[NETCONF-463] Exception in ListenerAdapter: java.lang.UnsupportedOperationException: Cannot create XMLStreamReader or XMLEventReader from a org.codehaus.stax2.io.Stax2ByteArraySource Created: 04/Sep/17  Updated: 15/Mar/19  Resolved: 13/Sep/17

Status: Resolved
Project: netconf
Component/s: restconf-nb
Affects Version/s: None
Fix Version/s: None

Type: Bug
Reporter: Josh Hershberg Assignee: Stephen Kitt
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: File karaf.log.gz    
External issue ID: 9092
Priority: High

 Description   

Stack trace below and logs attached. Marking this as critical since it is killing some pretty core functionality for us. Netvirt's neutron ml2 driver, networking-odl, relies by default on websocket notifications for port statuses.

2017-09-04 08:21:20,536 | ERROR | n-dispatcher-202 | DataChangeListener | 205 - org.opendaylight.controller.sal-clustering-commons - 1.6.0.SNAPSHOT | Error notifying listener org.opendaylight.netconf.sal.streams.listeners.ListenerAdapter@798a509
java.lang.UnsupportedOperationException: Cannot create XMLStreamReader or XMLEventReader from a org.codehaus.stax2.io.Stax2ByteArraySource
at com.sun.xml.internal.stream.XMLInputFactoryImpl.jaxpSourcetoXMLInputSource(XMLInputFactoryImpl.java:302)[:1.8.0_131]
at com.sun.xml.internal.stream.XMLInputFactoryImpl.createXMLStreamReader(XMLInputFactoryImpl.java:143)[:1.8.0_131]
at com.fasterxml.jackson.dataformat.xml.XmlFactory._createParser(XmlFactory.java:489)[65:com.fasterxml.jackson.dataformat.jackson-dataformat-xml:2.3.2]
at com.fasterxml.jackson.dataformat.xml.XmlFactory._createParser(XmlFactory.java:26)[65:com.fasterxml.jackson.dataformat.jackson-dataformat-xml:2.3.2]
at com.fasterxml.jackson.core.JsonFactory.createParser(JsonFactory.java:799)[63:com.fasterxml.jackson.core.jackson-core:2.3.2]
at com.fasterxml.jackson.databind.ObjectMapper.readTree(ObjectMapper.java:1782)[64:com.fasterxml.jackson.core.jackson-databind:2.3.2]
at org.opendaylight.netconf.sal.streams.listeners.ListenerAdapter.prepareAndPostData(ListenerAdapter.java:123)[291:org.opendaylight.netconf.sal-rest-connector:1.6.0.SNAPSHOT]
at org.opendaylight.netconf.sal.streams.listeners.ListenerAdapter.onDataChanged(ListenerAdapter.java:86)[291:org.opendaylight.netconf.sal-rest-connector:1.6.0.SNAPSHOT]
at org.opendaylight.controller.cluster.datastore.DataChangeListener.dataChanged(DataChangeListener.java:80)[212:org.opendaylight.controller.sal-distributed-datastore:1.6.0.SNAPSHOT]
at org.opendaylight.controller.cluster.datastore.DataChangeListener.handleReceive(DataChangeListener.java:46)[212:org.opendaylight.controller.sal-distributed-datastore:1.6.0.SNAPSHOT]
at org.opendaylight.controller.cluster.common.actor.AbstractUntypedActor.onReceive(AbstractUntypedActor.java:38)[205:org.opendaylight.controller.sal-clustering-commons:1.6.0.SNAPSHOT]
at akka.actor.UntypedActor$$anonfun$receive$1.applyOrElse(UntypedActor.scala:165)[78:com.typesafe.akka.actor:2.4.18]
at akka.actor.Actor$class.aroundReceive(Actor.scala:502)[78:com.typesafe.akka.actor:2.4.18]
at akka.actor.UntypedActor.aroundReceive(UntypedActor.scala:95)[78:com.typesafe.akka.actor:2.4.18]
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:526)[78:com.typesafe.akka.actor:2.4.18]
at akka.actor.ActorCell.invoke(ActorCell.scala:495)[78:com.typesafe.akka.actor:2.4.18]
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257)[78:com.typesafe.akka.actor:2.4.18]
at akka.dispatch.Mailbox.run(Mailbox.scala:224)[78:com.typesafe.akka.actor:2.4.18]
at akka.dispatch.Mailbox.exec(Mailbox.scala:234)[78:com.typesafe.akka.actor:2.4.18]
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)[391:org.scala-lang.scala-library:2.11.11.v20170413-090219-8a413ba7cc]
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)[391:org.scala-lang.scala-library:2.11.11.v20170413-090219-8a413ba7cc]
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)[391:org.scala-lang.scala-library:2.11.11.v20170413-090219-8a413ba7cc]
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)[391:org.scala-lang.scala-library:2.11.11.v20170413-090219-8a413ba7cc]



 Comments   
Comment by Josh Hershberg [ 04/Sep/17 ]

Attachment karaf.log.gz has been added with description: karaf.log

Comment by Jamo Luhrsen [ 04/Sep/17 ]

It's believe this bug is causing openstack instances 4+ minutes to become
ACTIVE. Because of this, we have increased our polling timeout to 600s
in our robot CSIT. Once this bug is resolved, we need to verify the robot
CSIT is seeing faster times for instances to move to ACTIVE state and we
need a robot CSIT patch to reduce the timeout from 600s to 30s.

Comment by Kit Lou [ 05/Sep/17 ]

Is this a blocker for nitrogen? Please confirm. Thanks!

Comment by Robert Varga [ 05/Sep/17 ]

Yes, it is. It boils down to jackson not being able to parse a string XML – this is so not needed.

We already have the data in NormalizedNode format, hence instead of transcoding XML text, that should be thrown away and normal NormalizedNode->JSON encoding should be done.

That will ditch jackson, rendering the issue impossible.

Comment by Kit Lou [ 06/Sep/17 ]

Do we have an ETA on when we can merge a patch into nitrogen? Thanks!

Comment by Stephen Kitt [ 07/Sep/17 ]

https://git.opendaylight.org/gerrit/62811 is a workaround, but it might not be appropriate because of the bundle refresh issues we had with org.json in the past.

I'm working on a proper serialization which will avoid the XML-to-JSON issue altogether, but it will take a bit more time.

Comment by Stephen Kitt [ 07/Sep/17 ]

https://git.opendaylight.org/gerrit/62849 for Nitrogen.

Comment by Sam Hague [ 12/Sep/17 ]

(In reply to Stephen Kitt from comment #6)
> https://git.opendaylight.org/gerrit/62849 for Nitrogen.

The fix looks good. It was verified in sandbox.

Comment by Stephen Kitt [ 13/Sep/17 ]

The workaround has been merged. https://bugs.opendaylight.org/show_bug.cgi?id=9154 tracks the JSON serialisation rewrite.

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