<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 19:56:39 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>OpenDaylight JIRA</title>
    <link>https://jira.opendaylight.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>8.20.10</version>
        <build-number>820010</build-number>
        <build-date>22-06-2022</build-date>
    </build-info>


<item>
            <title>[CONTROLLER-1867] Cluster: Member fail to start with odl-netconf-clustered-topology feature </title>
                <link>https://jira.opendaylight.org/browse/CONTROLLER-1867</link>
                <project id="10113" key="CONTROLLER">controller</project>
                    <description>&lt;p&gt;The issue only happens in oxygen and was hidden because current CSIT test installs all compatible features (all test), however if we run same test with just odl-netconf-clustered-topology feature (only test) we see that a cluster member that has been killed cannot be restarted:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://logs.opendaylight.org/releng/vex-yul-odl-jenkins-1/netconf-csit-3node-clustering-all-oxygen/421/robot-plugin/log.html.gz&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://logs.opendaylight.org/releng/vex-yul-odl-jenkins-1/netconf-csit-3node-clustering-all-oxygen/421/robot-plugin/log.html.gz&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the karaf log of the restarting member (1):&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://logs.opendaylight.org/releng/vex-yul-odl-jenkins-1/netconf-csit-3node-clustering-all-oxygen/421/odl_1/odl1_karaf.log.gz&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://logs.opendaylight.org/releng/vex-yul-odl-jenkins-1/netconf-csit-3node-clustering-all-oxygen/421/odl_1/odl1_karaf.log.gz&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;we see this ERROR:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;2018-10-17T19:33:22,521 | INFO | config-pusher | ConfigPusherImpl | 204 - org.opendaylight.controller.config-persister-impl - 0.8.4.SNAPSHOT | Pushing configuration snapshot 06-clustered-entity-ownership.xml(odl-netconf-connector,odl-netconf-connector)
2018-10-17T19:33:22,627 | ERROR | opendaylight-cluster-data-akka.actor.default-dispatcher-3 | ActorSystemImpl | 50 - com.typesafe.akka.slf4j - 2.5.11 | Uncaught error from thread [opendaylight-cluster-data-akka.actor.default-dispatcher-4]: org/w3c/dom/ElementTraversal, shutting down JVM since &apos;akka.jvm-exit-on-fatal-error&apos; is enabled for ActorSystem[opendaylight-cluster-data]
java.lang.NoClassDefFoundError: org/w3c/dom/ElementTraversal
at java.lang.ClassLoader.defineClass1(Native Method) ~[?:?]
at java.lang.ClassLoader.defineClass(ClassLoader.java:763) ~[?:?]
at org.eclipse.osgi.internal.loader.ModuleClassLoader.defineClass(ModuleClassLoader.java:276) ~[?:?]
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.defineClass(ClasspathManager.java:655) ~[?:?]
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findClassImpl(ClasspathManager.java:578) ~[?:?]
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClassImpl(ClasspathManager.java:538) ~[?:?]
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:525) ~[?:?]
at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:328) ~[?:?]
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:368) ~[?:?]
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:446) ~[?:?]
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:395) ~[?:?]
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:387) ~[?:?]
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:?]
at org.apache.xerces.parsers.AbstractDOMParser.startDocument(Unknown Source) ~[378:wrap_file__tmp_karaf-0.8.4-SNAPSHOT_system_xerces_xercesImpl_2.11.0_xercesImpl-2.11.0.jar:0.0.0]
at org.apache.xerces.impl.dtd.XMLDTDValidator.startDocument(Unknown Source) ~[378:wrap_file__tmp_karaf-0.8.4-SNAPSHOT_system_xerces_xercesImpl_2.11.0_xercesImpl-2.11.0.jar:0.0.0]
at org.apache.xerces.impl.XMLDocumentScannerImpl.startEntity(Unknown Source) ~[378:wrap_file__tmp_karaf-0.8.4-SNAPSHOT_system_xerces_xercesImpl_2.11.0_xercesImpl-2.11.0.jar:0.0.0]
at org.apache.xerces.impl.XMLVersionDetector.startDocumentParsing(Unknown Source) ~[378:wrap_file__tmp_karaf-0.8.4-SNAPSHOT_system_xerces_xercesImpl_2.11.0_xercesImpl-2.11.0.jar:0.0.0]
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) ~[378:wrap_file__tmp_karaf-0.8.4-SNAPSHOT_system_xerces_xercesImpl_2.11.0_xercesImpl-2.11.0.jar:0.0.0]
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) ~[378:wrap_file__tmp_karaf-0.8.4-SNAPSHOT_system_xerces_xercesImpl_2.11.0_xercesImpl-2.11.0.jar:0.0.0]
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) ~[378:wrap_file__tmp_karaf-0.8.4-SNAPSHOT_system_xerces_xercesImpl_2.11.0_xercesImpl-2.11.0.jar:0.0.0]
at org.apache.xerces.parsers.DOMParser.parse(Unknown Source) ~[378:wrap_file__tmp_karaf-0.8.4-SNAPSHOT_system_xerces_xercesImpl_2.11.0_xercesImpl-2.11.0.jar:0.0.0]
at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source) ~[378:wrap_file__tmp_karaf-0.8.4-SNAPSHOT_system_xerces_xercesImpl_2.11.0_xercesImpl-2.11.0.jar:0.0.0]
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:121) ~[?:?]
at org.opendaylight.controller.blueprint.ext.DataStoreAppConfigDefaultXMLReader.parsePossibleDefaultAppConfigXMLFile(DataStoreAppConfigDefaultXMLReader.java:174) ~[194:org.opendaylight.controller.blueprint:0.8.4.SNAPSHOT]
at org.opendaylight.controller.blueprint.ext.DataStoreAppConfigDefaultXMLReader.createDefaultInstance(DataStoreAppConfigDefaultXMLReader.java:126) ~[194:org.opendaylight.controller.blueprint:0.8.4.SNAPSHOT]
at org.opendaylight.controller.blueprint.ext.DataStoreAppConfigMetadata.createDefaultInstance(DataStoreAppConfigMetadata.java:262) ~[194:org.opendaylight.controller.blueprint:0.8.4.SNAPSHOT]
at org.opendaylight.controller.blueprint.ext.DataStoreAppConfigMetadata.setInitialAppConfig(DataStoreAppConfigMetadata.java:229) ~[194:org.opendaylight.controller.blueprint:0.8.4.SNAPSHOT]
at org.opendaylight.controller.blueprint.ext.DataStoreAppConfigMetadata.access$200(DataStoreAppConfigMetadata.java:56) ~[194:org.opendaylight.controller.blueprint:0.8.4.SNAPSHOT]
at org.opendaylight.controller.blueprint.ext.DataStoreAppConfigMetadata$1.onSuccess(DataStoreAppConfigMetadata.java:172) ~[194:org.opendaylight.controller.blueprint:0.8.4.SNAPSHOT]
at org.opendaylight.controller.blueprint.ext.DataStoreAppConfigMetadata$1.onSuccess(DataStoreAppConfigMetadata.java:165) ~[194:org.opendaylight.controller.blueprint:0.8.4.SNAPSHOT]
at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1393) ~[38:com.google.guava:23.6.1.jre]
at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:398) ~[38:com.google.guava:23.6.1.jre]
at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1015) ~[38:com.google.guava:23.6.1.jre]
at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:868) ~[38:com.google.guava:23.6.1.jre]
at com.google.common.util.concurrent.AbstractFuture.set(AbstractFuture.java:691) ~[38:com.google.guava:23.6.1.jre]
at com.google.common.util.concurrent.AbstractTransformFuture$TransformFuture.setResult(AbstractTransformFuture.java:237) ~[38:com.google.guava:23.6.1.jre]
at com.google.common.util.concurrent.AbstractTransformFuture.run(AbstractTransformFuture.java:159) ~[38:com.google.guava:23.6.1.jre]
at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:398) ~[38:com.google.guava:23.6.1.jre]
at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1015) ~[38:com.google.guava:23.6.1.jre]
at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:868) ~[38:com.google.guava:23.6.1.jre]
at com.google.common.util.concurrent.AbstractFuture.set(AbstractFuture.java:691) ~[38:com.google.guava:23.6.1.jre]
at com.google.common.util.concurrent.SettableFuture.set(SettableFuture.java:48) ~[38:com.google.guava:23.6.1.jre]
at org.opendaylight.controller.cluster.datastore.messages.ReadData.processResponse(ReadData.java:40) ~[226:org.opendaylight.controller.sal-distributed-datastore:1.7.4.SNAPSHOT]
at org.opendaylight.controller.cluster.datastore.RemoteTransactionContext$2.onComplete(RemoteTransactionContext.java:250) ~[226:org.opendaylight.controller.sal-distributed-datastore:1.7.4.SNAPSHOT]
at akka.dispatch.OnComplete.internal(Future.scala:261) ~[44:com.typesafe.akka.actor:2.5.11]
at akka.dispatch.OnComplete.internal(Future.scala:258) ~[44:com.typesafe.akka.actor:2.5.11]
at akka.dispatch.japi$CallbackBridge.apply(Future.scala:188) ~[44:com.typesafe.akka.actor:2.5.11]
at akka.dispatch.japi$CallbackBridge.apply(Future.scala:185) ~[44:com.typesafe.akka.actor:2.5.11]
at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:60) ~[353:org.scala-lang.scala-library:2.12.6.v20180426-183816-VFINAL-d7ae7a8]
at akka.dispatch.BatchingExecutor$AbstractBatch.processBatch(BatchingExecutor.scala:55) ~[44:com.typesafe.akka.actor:2.5.11]
at akka.dispatch.BatchingExecutor$BlockableBatch.$anonfun$run$1(BatchingExecutor.scala:91) ~[44:com.typesafe.akka.actor:2.5.11]
at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12) ~[353:org.scala-lang.scala-library:2.12.6.v20180426-183816-VFINAL-d7ae7a8]
at scala.concurrent.BlockContext$.withBlockContext(BlockContext.scala:81) ~[353:org.scala-lang.scala-library:2.12.6.v20180426-183816-VFINAL-d7ae7a8]
at akka.dispatch.BatchingExecutor$BlockableBatch.run(BatchingExecutor.scala:91) ~[44:com.typesafe.akka.actor:2.5.11]
at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:40) ~[44:com.typesafe.akka.actor:2.5.11]
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(ForkJoinExecutorConfigurator.scala:43) ~[44:com.typesafe.akka.actor:2.5.11]
at akka.dispatch.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) [44:com.typesafe.akka.actor:2.5.11]
at akka.dispatch.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) [44:com.typesafe.akka.actor:2.5.11]
at akka.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) [44:com.typesafe.akka.actor:2.5.11]
at akka.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) [44:com.typesafe.akka.actor:2.5.11]
Caused by: java.lang.ClassNotFoundException: org.w3c.dom.ElementTraversal cannot be found by wrap_file__tmp_karaf-0.8.4-SNAPSHOT_system_xerces_xercesImpl_2.11.0_xercesImpl-2.11.0.jar_0.0.0
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:433) ~[?:?]
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:395) ~[?:?]
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:387) ~[?:?]
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:?]
... 61 more{comment}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment></environment>
        <key id="30905">CONTROLLER-1867</key>
            <summary>Cluster: Member fail to start with odl-netconf-clustered-topology feature </summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="2" iconUrl="https://jira.opendaylight.org/images/icons/priorities/critical.svg">High</priority>
                        <status id="5" iconUrl="https://jira.opendaylight.org/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10000">Done</resolution>
                                        <assignee username="rovarga">Robert Varga</assignee>
                                    <reporter username="ecelgp">Luis Gomez</reporter>
                        <labels>
                    </labels>
                <created>Wed, 17 Oct 2018 19:53:54 +0000</created>
                <updated>Sat, 12 Jan 2019 14:38:07 +0000</updated>
                            <resolved>Wed, 7 Nov 2018 20:50:40 +0000</resolved>
                                    <version>Fluorine</version>
                    <version>Oxygen SR3</version>
                                    <fixVersion>Neon</fixVersion>
                    <fixVersion>Fluorine SR1</fixVersion>
                    <fixVersion>Oxygen SR4</fixVersion>
                                    <component>blueprint</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="65394" author="rovarga" created="Tue, 23 Oct 2018 16:43:02 +0000"  >&lt;p&gt;Ugh, this looks very weird. We are executing on akka&apos;s dispatch pool, from where we switch to xerces, which attempts to load org.w3c.dom, which should be available from the JRE, I think. This feels like a TCCL issue w.r.t. blueprint.&lt;/p&gt;</comment>
                            <comment id="65395" author="rovarga" created="Tue, 23 Oct 2018 16:45:08 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=tpantelis&quot; class=&quot;user-hover&quot; rel=&quot;tpantelis&quot;&gt;tpantelis&lt;/a&gt; any ideas what is going on here?&lt;/p&gt;</comment>
                            <comment id="65397" author="tpantelis" created="Tue, 23 Oct 2018 20:25:55 +0000"  >&lt;p&gt;Not sure off the top of my head.  I&apos;d think org.w3c.dom would be exported from the JRE via the root class loader (I do see it listed in jre.properties in my local karaf install). Is this happening only in Oxygen SR3 and not &amp;lt;= Oxygen SR2? &lt;/p&gt;</comment>
                            <comment id="65405" author="rkosegi" created="Wed, 24 Oct 2018 17:00:42 +0000"  >&lt;p&gt;We just seen similar problem in fluorine : &lt;a href=&quot;https://logs.opendaylight.org/releng/vex-yul-odl-jenkins-1/daexim-csit-3node-clustering-basic-only-fluorine/249/odl_3/odl3_karaf.log.gz&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://logs.opendaylight.org/releng/vex-yul-odl-jenkins-1/daexim-csit-3node-clustering-basic-only-fluorine/249/odl_3/odl3_karaf.log.gz&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="65406" author="rovarga" created="Wed, 24 Oct 2018 17:30:43 +0000"  >&lt;p&gt;This smells quite a bit. &lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=rkosegi&quot; class=&quot;user-hover&quot; rel=&quot;rkosegi&quot;&gt;rkosegi&lt;/a&gt; &lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=ecelgp&quot; class=&quot;user-hover&quot; rel=&quot;ecelgp&quot;&gt;ecelgp&lt;/a&gt; can we reproduce this with&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;org.eclipse.osgi/debug/loader = &lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;in etc/equinox-debug.properties ?&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="65407" author="rovarga" created="Wed, 24 Oct 2018 17:47:05 +0000"  >&lt;p&gt;Looking at the xerces bundle, it should be able to resolve org.w3c.dom, as it has a optional import for that package, which seems to be resolved (from root bundle) in my local environment. We need that debug it identify which ModuleClassLoader is being used to resolve the class.&lt;/p&gt;</comment>
                            <comment id="65408" author="rovarga" created="Wed, 24 Oct 2018 17:53:16 +0000"  >&lt;p&gt;Well, it seems it&apos;s the correct loader, trying to resolve an imported class:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;span class=&quot;code-comment&quot;&gt;// 3) search the imported packages
&lt;/span&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160; PackageSource source = findImportedSource(pkgName, &lt;span class=&quot;code-keyword&quot;&gt;null&lt;/span&gt;);
&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (source != &lt;span class=&quot;code-keyword&quot;&gt;null&lt;/span&gt;) {
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (debug.DEBUG_LOADER) {
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Debug.println(&lt;span class=&quot;code-quote&quot;&gt;&quot;BundleLoader[&quot;&lt;/span&gt; + &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt; + &lt;span class=&quot;code-quote&quot;&gt;&quot;] loading from &lt;span class=&quot;code-keyword&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;package&lt;/span&gt;: &quot;&lt;/span&gt; + source); &lt;span class=&quot;code-comment&quot;&gt;//$NON-NLS-1$ //$NON-NLS-2$
&lt;/span&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;span class=&quot;code-comment&quot;&gt;// 3) found &lt;span class=&quot;code-keyword&quot;&gt;import&lt;/span&gt; source terminate search at the source
&lt;/span&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; result = source.loadClass(name);
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (result != &lt;span class=&quot;code-keyword&quot;&gt;null&lt;/span&gt;)
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; result;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;span class=&quot;code-keyword&quot;&gt;throw&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; ClassNotFoundException(name + &lt;span class=&quot;code-quote&quot;&gt;&quot; cannot be found by &quot;&lt;/span&gt; + &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;); &lt;span class=&quot;code-comment&quot;&gt;//$NON-NLS-1$
&lt;/span&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }

&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;We need to know what &quot;source&quot; is.&lt;/p&gt;</comment>
                            <comment id="65411" author="rovarga" created="Wed, 24 Oct 2018 20:37:39 +0000"  >&lt;p&gt;My working theory is that this has something to do with the order in which the bundles are deployed and activated. xercesImpl provides a DocumentBuilderFactory instance, via ServiceLoader, which uses TCCL &#8211; hence if xercesImpl.jar is visible via TCCL when UntrustedXML.class is loaded, it may pick it up as the DocumentBuilder.&lt;/p&gt;

&lt;p&gt;There are multiple ways to fix this:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;odlparent should provide a safely-configured XML stack via system properties, which would force a concrete implementation to be used&lt;/li&gt;
	&lt;li&gt;UntrustedXML could force TCCL to be the same as its class loader, hence potentially removing xercesImpl from its view&lt;/li&gt;
	&lt;li&gt;blueprint could ping UntrustedXML from its Activator, which presumably does not see xercesImpl either&lt;/li&gt;
	&lt;li&gt;netconf-netty-util could somehow defang xercesImpl, as it is pulled in by exificient for just a few (DBF-unrelated) classes. One way would be to completely shade/relocate exificient within netconf-netty-util.&lt;/li&gt;
	&lt;li&gt;exificient should shade pars of xercesImpl it needs and use them internally&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="65412" author="rovarga" created="Wed, 24 Oct 2018 20:59:11 +0000"  >&lt;p&gt;exificient issue: &lt;a href=&quot;https://github.com/EXIficient/exificient-grammars/issues/11&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/EXIficient/exificient-grammars/issues/11&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="65417" author="ecelgp" created="Thu, 25 Oct 2018 04:01:33 +0000"  >&lt;p&gt;Strangely I do not see the issue in stable/fluorine branch, maybe it is not consistent there. For oxygen is very consistent so would it be possible to cherry-pick &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/77266/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/77266/&lt;/a&gt; to stable/oxygen?&lt;/p&gt;</comment>
                            <comment id="65421" author="rovarga" created="Thu, 25 Oct 2018 09:36:21 +0000"  >&lt;p&gt;done&lt;/p&gt;</comment>
                            <comment id="65422" author="rovarga" created="Thu, 25 Oct 2018 12:50:52 +0000"  >&lt;p&gt;btw. org/w3c/dom/ElementTraversal is present in xml-apis-1.4.01, but not in Java 8. This is fixes with Java 9+, which includes ElementTraversal.&lt;/p&gt;</comment>
                            <comment id="65426" author="ecelgp" created="Thu, 25 Oct 2018 19:42:40 +0000"  >&lt;p&gt;FYI this patch: &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/77274/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/77274/&lt;/a&gt; works in Oxygen.&lt;/p&gt;

&lt;p&gt;BTW, it does fix the problem in question but it may also bring or expose some other issues as this is also seen in the log of a failed test using the patch:&lt;/p&gt;

&lt;p&gt;2018-10-26T00:31:40,438 | ERROR | Blueprint Extender: 2 | AbstractDataStore                | 226 - org.opendaylight.controller.sal-distributed-datastore - 1.7.4.SNAPSHOT | Shard leaders failed to settle in 90 seconds, giving up&lt;/p&gt;

&lt;p&gt;Test:&lt;br/&gt;
&lt;a href=&quot;https://logs.opendaylight.org/releng/vex-yul-odl-jenkins-1/netconf-csit-3node-clustering-all-oxygen/434/robot-plugin/log.html.gz#s1-s4&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://logs.opendaylight.org/releng/vex-yul-odl-jenkins-1/netconf-csit-3node-clustering-all-oxygen/434/robot-plugin/log.html.gz#s1-s4&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Karaf log:&lt;br/&gt;
&lt;a href=&quot;https://logs.opendaylight.org/releng/vex-yul-odl-jenkins-1/netconf-csit-3node-clustering-all-oxygen/434/odl_1/odl1_karaf.log.gz&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://logs.opendaylight.org/releng/vex-yul-odl-jenkins-1/netconf-csit-3node-clustering-all-oxygen/434/odl_1/odl1_karaf.log.gz&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In any case I keep my +1 as the original problem was consistent and the new one seems like more sporadic.&lt;/p&gt;</comment>
                            <comment id="65515" author="rovarga" created="Wed, 7 Nov 2018 20:50:40 +0000"  >&lt;p&gt;All active release streams have this fixed. The NETCONF part of the fix for Neon needs some more work, but will complete for Neon.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10002">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="30917">DAEXIM-11</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                                                <inwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="31267">NETCONF-591</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="30923">ODLPARENT-172</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                            <customfield id="customfield_11400" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i03jqn:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>