<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:22:50 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>[NETVIRT-937] DataStoreJobCoordinator java.lang.NullPointerException: at index 0</title>
                <link>https://jira.opendaylight.org/browse/NETVIRT-937</link>
                <project id="10144" key="NETVIRT">netvirt</project>
                    <description>&lt;p&gt;&lt;a href=&quot;https://logs.opendaylight.org/releng/jenkins092/netvirt-csit-1node-openstack-ocata-gate-stateful-carbon/105/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/jenkins092/netvirt-csit-1node-openstack-ocata-gate-stateful-carbon/105/odl1_karaf.log.gz&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;2017-10-03 20:15:53,092 | INFO  | nPool-1-worker-2 | ElanInstanceManager              | 341 - org.opendaylight.netvirt.elanmanager-impl - 0.4.2.SNAPSHOT | Deleting the elanInterface present under ConfigDS:97fe230c-b83b-4bb4-bfc8-af085a471e92&lt;br/&gt;
2017-10-03 20:15:53,092 | INFO  | nPool-1-worker-2 | ElanInstanceManager              | 341 - org.opendaylight.netvirt.elanmanager-impl - 0.4.2.SNAPSHOT | unbind the Interface:97fe230c-b83b-4bb4-bfc8-af085a471e92 service bounded to Elan:8f9ddf92-e04d-4e60-81c0-6bc8860d788b&lt;br/&gt;
2017-10-03 20:15:53,092 | ERROR | nPool-1-worker-1 | DataStoreJobCoordinator          | 292 - org.opendaylight.genius.mdsalutil-api - 0.2.2.SNAPSHOT | Thread terminated due to uncaught exception: ForkJoinPool-1-worker-1&lt;br/&gt;
java.lang.NullPointerException: at index 0&lt;br/&gt;
	at com.google.common.collect.ObjectArrays.checkElementNotNull(ObjectArrays.java:240)&lt;span class=&quot;error&quot;&gt;&amp;#91;38:com.google.guava:18.0.0&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at com.google.common.collect.ObjectArrays.checkElementsNotNull(ObjectArrays.java:231)&lt;span class=&quot;error&quot;&gt;&amp;#91;38:com.google.guava:18.0.0&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at com.google.common.collect.ObjectArrays.checkElementsNotNull(ObjectArrays.java:226)&lt;span class=&quot;error&quot;&gt;&amp;#91;38:com.google.guava:18.0.0&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at com.google.common.collect.ImmutableList.construct(ImmutableList.java:303)&lt;span class=&quot;error&quot;&gt;&amp;#91;38:com.google.guava:18.0.0&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at com.google.common.collect.ImmutableList.copyOf(ImmutableList.java:258)&lt;span class=&quot;error&quot;&gt;&amp;#91;38:com.google.guava:18.0.0&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at com.google.common.collect.ImmutableList.copyOf(ImmutableList.java:226)&lt;span class=&quot;error&quot;&gt;&amp;#91;38:com.google.guava:18.0.0&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at com.google.common.util.concurrent.Futures.allAsList(Futures.java:1027)&lt;span class=&quot;error&quot;&gt;&amp;#91;38:com.google.guava:18.0.0&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.genius.datastoreutils.DataStoreJobCoordinator$MainTask.run(DataStoreJobCoordinator.java:297)&lt;span class=&quot;error&quot;&gt;&amp;#91;292:org.opendaylight.genius.mdsalutil-api:0.2.2.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1402)&lt;span class=&quot;error&quot;&gt;&amp;#91;:1.8.0_141&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)&lt;span class=&quot;error&quot;&gt;&amp;#91;:1.8.0_141&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)&lt;span class=&quot;error&quot;&gt;&amp;#91;:1.8.0_141&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)&lt;span class=&quot;error&quot;&gt;&amp;#91;:1.8.0_141&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)&lt;span class=&quot;error&quot;&gt;&amp;#91;:1.8.0_141&amp;#93;&lt;/span&gt;&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="20858">NETVIRT-937</key>
            <summary>DataStoreJobCoordinator java.lang.NullPointerException: at index 0</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                                <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="vorburger">Michael Vorburger</assignee>
                                    <reporter username="shague">Sam Hague</reporter>
                        <labels>
                    </labels>
                <created>Wed, 4 Oct 2017 00:17:42 +0000</created>
                <updated>Wed, 12 Dec 2018 12:27:57 +0000</updated>
                            <resolved>Tue, 28 Nov 2017 17:46:31 +0000</resolved>
                                    <version>Carbon</version>
                                                    <component>General</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>6</watches>
                                                                                                                <comments>
                            <comment id="38476" author="shague@redhat.com" created="Wed, 4 Oct 2017 00:20:03 +0000"  >&lt;p&gt;Attachment odl1_karaf.log.tar.xz has been added with description: odl1_karaf.log&lt;/p&gt;</comment>
                            <comment id="38472" author="shague@redhat.com" created="Wed, 4 Oct 2017 00:21:14 +0000"  >&lt;p&gt;older job with issue: &lt;a href=&quot;https://logs.opendaylight.org/releng/jenkins092/netvirt-csit-1node-openstack-ocata-gate-stateful-oxygen/89/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/jenkins092/netvirt-csit-1node-openstack-ocata-gate-stateful-oxygen/89/odl1_karaf.log.gz&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="38473" author="vorburger" created="Wed, 4 Oct 2017 17:04:53 +0000"  >&lt;p&gt;Let me see if I can figure out what is going on in this one here...&lt;/p&gt;</comment>
                            <comment id="38474" author="vorburger" created="Wed, 4 Oct 2017 23:24:13 +0000"  >&lt;p&gt;+Cc Faseela, Vivek &amp;amp; David, who were on private email thread re. this:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/63965/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/63965/&lt;/a&gt; illustrates via new @Test bug9238CallableListWithNull() how this can happen in JobCoordinator.. that test fails with the exact same stack trace as the one Sam provided above, from a CSIT.  Basically, we see that some code somewhere is returning a (List containining a) null ListenableFuture.  I suspect its a bug where someone wanted to return a completed ListenableFuture of value null, but instead directly returned a null... &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.opendaylight.org/images/icons/emoticons/sad.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;

&lt;p&gt;The trouble is that we cannot yet know what the culprit for this is... but c/63965 also adds additional logging, which should help us find out.  &lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/63966/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/63966/&lt;/a&gt; then does the same in genius&apos; DataStoreJobCoordinator as c/63965 does in infrautils&apos; JobCoordinatorImpl. (And having had to do this twice is further motivation for finally wrapping up &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/q/topic:genius.DJC-to-infra.JC&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/q/topic:genius.DJC-to-infra.JC&lt;/a&gt;!)&lt;/p&gt;

&lt;p&gt;Once c/63965 and c/63966 will have been merged, you&apos;ll get another exception in logs (&quot;&quot;Runnnable likely about to terminate thread due to uncaught exception; but here is useful debugging context:&quot;), please post that here when seen and that will then tell us where the root cause for this is where a null List element is returned by mistake, which should then let us fix this for good (easily).&lt;/p&gt;

&lt;p&gt;BTW: &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/63961/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/63961/&lt;/a&gt; has a more medium term solution which will help detect the root cause of this problem in the future at code/build instead of runtime!! But there&apos;s a lot more work in all of genius &amp;amp; netvirt TBD until we&apos;ll reach that Nirvana.. but it&apos;s still a step.&lt;/p&gt;

&lt;p&gt;PS: &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/63963/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/63963/&lt;/a&gt; was first stab at making it possible to find it, but that was wrong and won&apos;t help in this specific case (because it&apos;s async; otherwise it would have, and the NullSafeCollections utility created there has value for other future problems like that IMHO).&lt;/p&gt;</comment>
                            <comment id="38475" author="vorburger" created="Fri, 6 Oct 2017 09:38:58 +0000"  >&lt;p&gt;&amp;gt; Once c/63965 and c/63966 will have been merged, you&apos;ll get another &lt;br/&gt;
&amp;gt; exception in logs (&quot;Runnnable likely about to terminate thread due to &lt;br/&gt;
&amp;gt; uncaught exception; but here is useful debugging context:&quot;),&lt;br/&gt;
&amp;gt; please post that here when seen&lt;/p&gt;

&lt;p&gt;all merged now, so you should soon start seeing the new messsage in CSIT...&lt;/p&gt;</comment>
                            <comment id="59796" author="vorburger" created="Thu, 26 Oct 2017 09:47:40 +0000"  >&lt;p&gt;I&apos;d like to wrap up issuses that are currently assigned to me in JIRA.. normally recent CSIT should include new error messages like &quot;Runnnable likely about to terminate thread due to uncaught exception;&quot; (NB Runnnable is misspelt with 3 instead of 2 n!) - have any of you spotted these meanwhile, or could look out for them? Without hearing back from you within 1 week, I&apos;d like to close this issue.&lt;/p&gt;</comment>
                            <comment id="60089" author="shague@redhat.com" created="Sun, 19 Nov 2017 04:22:09 +0000"  >&lt;p&gt;Here is an example that has the log: &lt;a href=&quot;https://logs.opendaylight.org/releng/jenkins092/netvirt-csit-1node-openstack-ocata-gate-stateful-oxygen/346/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/jenkins092/netvirt-csit-1node-openstack-ocata-gate-stateful-oxygen/346/odl_1/odl1_karaf.log.gz&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What do we do now? I guess the bug is still there but somehow this extra debug points us to the issue?&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;2017-11-17 16:42:45,420 | ERROR | nPool-1-worker-3 | JobCoordinatorImpl               | 261 - org.opendaylight.infrautils.jobcoordinator-impl - 1.3.0.SNAPSHOT | Runnnable likely about to terminate thread due to uncaught exception; but here is useful debugging context: JobEntry{key=&apos;elaninterface-ff5d93d3-cade-4164-9599-9431c4caa71b&apos;, mainWorker=org.opendaylight.netvirt.elan.internal.ElanInstanceManager$$Lambda$768/1055682102@4fc14129, rollbackWorker=null, retryCount=6, futures=[null, com.google.common.util.concurrent.ImmediateFuture$ImmediateSuccessfulCheckedFuture@4bfecc09]}
java.lang.NullPointerException: at index 0
2017-11-17 16:42:45,421 | ERROR | nPool-1-worker-3 | JobCoordinatorImpl               | 261 - org.opendaylight.infrautils.jobcoordinator-impl - 1.3.0.SNAPSHOT | Thread terminated due to uncaught exception: ForkJoinPool-1-worker-3
java.lang.NullPointerException: at index 0
2017-11-17 16:42:45,421 | ERROR | nPool-1-worker-1 | JobCoordinatorImpl               | 261 - org.opendaylight.infrautils.jobcoordinator-impl - 1.3.0.SNAPSHOT | Runnnable likely about to terminate thread due to uncaught exception; but here is useful debugging context: JobEntry{key=&apos;elaninterface-c5edf810-4ec7-43a9-9f6b-11a5ff3747b1&apos;, mainWorker=org.opendaylight.netvirt.elan.internal.ElanInstanceManager$$Lambda$768/1055682102@12d144e3, rollbackWorker=null, retryCount=6, futures=[null, com.google.common.util.concurrent.ImmediateFuture$ImmediateSuccessfulCheckedFuture@4bfecc09]}
java.lang.NullPointerException: at index 0
2017-11-17 16:42:45,421 | ERROR | nPool-1-worker-1 | JobCoordinatorImpl               | 261 - org.opendaylight.infrautils.jobcoordinator-impl - 1.3.0.SNAPSHOT | Thread terminated due to uncaught exception: ForkJoinPool-1-worker-1
java.lang.NullPointerException: at index 0
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="60095" author="vorburger" created="Mon, 20 Nov 2017 15:46:03 +0000"  >&lt;p&gt;&amp;gt; What do we do now? I guess the bug is still there but somehow this extra debug points us to the issue?&lt;/p&gt;

&lt;p&gt;yeah, just like I said in the previous comment - did you have a chance to actually read that? &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.opendaylight.org/images/icons/emoticons/wink.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;

&lt;p&gt;The new output now shows that something in ElanInstanceManager submits a DJC job with null future.&lt;/p&gt;

&lt;p&gt;I&apos;m moving this issue back from In Progress to In Review and will propose a fix when I have time.&lt;/p&gt;</comment>
                            <comment id="60113" author="vorburger" created="Tue, 21 Nov 2017 15:09:30 +0000"  >&lt;p&gt;I&apos;ve just analysed this one, but I&apos;m not yet getting what&apos;s happening here:&lt;/p&gt;

&lt;p&gt;So the log above shows us that we must have an &lt;tt&gt;enqueueJob&lt;/tt&gt; which return a &lt;tt&gt;List&amp;lt;ListenableFuture&amp;lt;Void&amp;gt;&lt;/tt&gt; where the 1st of 2 such Future is null, note the clear &lt;tt&gt;futures=null, ...&lt;/tt&gt; - and we can see that it&apos;s one from a lambda in ElanInstanceManager.&lt;/p&gt;

&lt;p&gt;However, in ElanInstanceManager there are only 2 such lambdas, first one in line 110 in &lt;tt&gt;remove&lt;/tt&gt; which returns 2 futures, first one from elanInterfaceManager.removeElanInterface() in line 90 and second one one directly from &lt;tt&gt;WriteTransaction.submit&lt;/tt&gt; in line 118. If we trust that WriteTransaction.submit will never return null (or could that happen?), then it would have to come from &lt;tt&gt;ElanInterfaceManager.removeElanInterface()&lt;/tt&gt;, however that in lines 275 &amp;amp; 276 uses ElanUtils.waitForTransactionToComplete which is again just a &lt;tt&gt;WriteTransaction.submit&lt;/tt&gt; ? (We&apos;ll ignore the fact that this synchronous blocking completely defeats the purpose of using the JC in the first place.)&lt;/p&gt;

&lt;p&gt;The other such lambda is in line 155 in &lt;tt&gt;update&lt;/tt&gt;; that looks wrong, and proposed fix is in &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/65802/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/65802/&lt;/a&gt; - but that cannot lead to this NPE, because it return a null List (which jobcoordinator handles..) and the List with a null element - which we clearly see now in the log.&lt;/p&gt;

&lt;p&gt;What am I missing?&lt;/p&gt;</comment>
                            <comment id="60114" author="vorburger" created="Tue, 21 Nov 2017 15:33:00 +0000"  >&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/65803&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/65803&lt;/a&gt; adds explicit null checks to all returned WriteTransaction&apos;s submit() JUST in case there is some obscure CDS bug which makes that return null sometimes - but I doubt it. Best I can think of though, so let us retry with that (and c/65802 - JUST in case), and then see again.&lt;/p&gt;</comment>
                            <comment id="60122" author="tpantelis" created="Tue, 21 Nov 2017 22:32:41 +0000"  >&lt;p&gt;The futures List in remove is reused across the submitted jobs in the forEach loop:&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;  DataStoreJobCoordinator dataStoreJobCoordinator = DataStoreJobCoordinator.getInstance();
        ElanUtils.removeAndGetElanInterfaces(elanName).forEach(elanInterfaceName -&amp;gt; {
            dataStoreJobCoordinator.enqueueJob(ElanUtils.getElanInterfaceJobKey(elanInterfaceName), () -&amp;gt; {
                WriteTransaction writeConfigTxn = broker.newWriteOnlyTransaction();
                ...
                futures.add(writeConfigTxn.submit());
                return futures;
            }, ElanConstants.JOB_MAX_RETRIES);
        });
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;This looks very suspicious and unsafe as the List is accessed by multiple threads. I think this is what causes the strange behavior with a null element in the list - tx.submit() never returns null. Each job should return it&apos;s own local futures List.  I&apos;ll submit a patch to address this ...&lt;/p&gt;</comment>
                            <comment id="60125" author="vorburger" created="Wed, 22 Nov 2017 11:06:51 +0000"  >&lt;p&gt;&amp;gt;  I&apos;ll submit a patch to address this ...&lt;/p&gt;

&lt;p&gt;==&amp;gt; &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/65821/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/65821/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;FTR to anyone else re-reviewing this in the future: The important fix is the ditching of the outside &lt;tt&gt;List&amp;lt;ListenableFuture&amp;lt;Void&amp;gt;&amp;gt; futures&lt;/tt&gt; usage inside the &lt;tt&gt;forEach&lt;/tt&gt; in &lt;tt&gt;remove()&lt;/tt&gt;, because that multi-threaded use was badly wrong: Replacing of the &lt;tt&gt;futures.add(writeConfigTxn.submit());&lt;/tt&gt; by &lt;tt&gt;return Collections.singletonList(writeConfigTxn.submit());&lt;/tt&gt; which is perfectly fine, as the goal is for the JC to handle that list of futures, not to have such a list spanning accross the &lt;tt&gt;forEach&lt;/tt&gt;. However the removal of the &lt;tt&gt;futures.addAll()&lt;/tt&gt; of what &lt;tt&gt;elanInterfaceManager.removeElanInterface()&lt;/tt&gt; returns is a kind of unrelated minor clean up fall out - that part is not what actually fixes the concurrency issue here. I&apos;m just writing this down here because it initially confused me while reviewing it. &lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=shague&quot; class=&quot;user-hover&quot; rel=&quot;shague&quot;&gt;shague&lt;/a&gt; can you confirm that you&apos;re good with &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; fixing the problem originally raised in this issue - OK to close?&lt;/p&gt;</comment>
                            <comment id="60126" author="vorburger" created="Wed, 22 Nov 2017 11:06:58 +0000"  >&lt;p&gt;PS: Not directly related to this issue, so to be followed-up in separately raised future changes, on staring more at code around this I have to agree with this comment from &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; in the Commit Message of c/65821, quote:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;The futures returned from elanInterfaceManager.removeElanInterface&lt;br/&gt;
were also added to the List but I don&apos;t see the purpose of this. removeElanInterface&lt;br/&gt;
waits for those tx&apos;s to complete. Maybe it was so the JC would retry them? If so, this&lt;br/&gt;
entire code path has a mix of sync and async transactions which is a bit confusing -&lt;br/&gt;
some are submitted to the JC, ohers aren&apos;t; some may be retried, others aren&apos;t.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;It looks like there is some mix up which makes no sense to me either; I&apos;ll propose something about this in 1-2 follow-up changes.&lt;/p&gt;</comment>
                            <comment id="60128" author="vorburger" created="Wed, 22 Nov 2017 15:01:02 +0000"  >&lt;p&gt;&amp;gt; It looks like there is some mix up which makes no sense to me either; I&apos;ll propose something about this in 1-2 follow-up changes.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/65839/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/65839/&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="65965" author="vorburger" created="Wed, 12 Dec 2018 12:27:57 +0000"  >&lt;p&gt;FTR: Something related to this has just come up again in &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/78678/5/jobcoordinator/jobcoordinator-impl/src/main/java/org/opendaylight/infrautils/jobcoordinator/internal/JobCoordinatorImpl.java@416&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/78678/5/jobcoordinator/jobcoordinator-impl/src/main/java/org/opendaylight/infrautils/jobcoordinator/internal/JobCoordinatorImpl.java@416&lt;/a&gt;&#160;...&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                            <attachment id="12610" name="odl1_karaf.log.tar.xz" size="804840" author="shague" created="Wed, 4 Oct 2017 00:20:03 +0000"/>
                    </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_10208" key="com.atlassian.jira.plugin.system.customfieldtypes:textfield">
                        <customfieldname>External issue ID</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9238</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10201" key="com.atlassian.jira.plugin.system.customfieldtypes:url">
                        <customfieldname>External issue URL</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[https://bugs.opendaylight.org/show_bug.cgi?id=9238]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10206" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Issue Type</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10300"><![CDATA[Bug]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10204" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>ODL SR Target Milestone</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10323"><![CDATA[Oxygen]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10202" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Priority</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10312"><![CDATA[High]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i01uvr:</customfieldvalue>

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