<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:08:58 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>[MDSAL-195] ClusterSingletonService is not closed after Leader moves to IsolatedLeader</title>
                <link>https://jira.opendaylight.org/browse/MDSAL-195</link>
                <project id="10137" key="MDSAL">mdsal</project>
                    <description>&lt;p&gt;After isolation of one leader node, new leader is selected and start its services but the old leader does not close its services and becomes unresponsive&lt;/p&gt;

&lt;p&gt;2016-08-25 11:30:46,838 | WARN  | ult-dispatcher-3 | ShardManager                     | 169 - org.opendaylight.controller.sal-distributed-datastore - 1.5.0.SNAPSHOT | Supervisor Strategy caught unexpected exception - resuming&lt;br/&gt;
java.lang.IllegalArgumentException: Invalid combination of wasOwner: true, isOwner: true, hasOwner: true&lt;br/&gt;
        at com.google.common.base.Preconditions.checkArgument(Preconditions.java:145)&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.mdsal.eos.common.api.EntityOwnershipChangeState.from(EntityOwnershipChangeState.java:100)&lt;span class=&quot;error&quot;&gt;&amp;#91;127:org.opendaylight.mdsal.eos-common-api:2.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at org.opendaylight.controller.cluster.datastore.entityownership.EntityOwnershipListenerSupport.notifyListeners(EntityOwnershipListenerSupport.java:107)&lt;span class=&quot;error&quot;&gt;&amp;#91;169:org.opendaylight.controller.sal-distributed-datastore:1.5.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at org.opendaylight.controller.cluster.datastore.entityownership.EntityOwnershipListenerSupport.notifyListeners(EntityOwnershipListenerSupport.java:100)&lt;span class=&quot;error&quot;&gt;&amp;#91;169:org.opendaylight.controller.sal-distributed-datastore:1.5.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at org.opendaylight.controller.cluster.datastore.entityownership.EntityOwnershipListenerSupport.notifyEntityOwnershipListeners(EntityOwnershipListenerSupport.java:89)&lt;span class=&quot;error&quot;&gt;&amp;#91;169:org.opendaylight.controller.sal-distributed-datastore:1.5.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at org.opendaylight.controller.cluster.datastore.entityownership.EntityOwnershipShard.lambda$notifyAllListeners$1(EntityOwnershipShard.java:290)&lt;span class=&quot;error&quot;&gt;&amp;#91;169:org.opendaylight.controller.sal-distributed-datastore:1.5.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at org.opendaylight.controller.cluster.datastore.entityownership.EntityOwnershipShard.searchForEntities(EntityOwnershipShard.java:475)&lt;span class=&quot;error&quot;&gt;&amp;#91;169:org.opendaylight.controller.sal-distributed-datastore:1.5.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at org.opendaylight.controller.cluster.datastore.entityownership.EntityOwnershipShard.notifyAllListeners(EntityOwnershipShard.java:272)&lt;span class=&quot;error&quot;&gt;&amp;#91;169:org.opendaylight.controller.sal-distributed-datastore:1.5.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at org.opendaylight.controller.cluster.datastore.entityownership.EntityOwnershipShard.onStateChanged(EntityOwnershipShard.java:308)&lt;span class=&quot;error&quot;&gt;&amp;#91;169:org.opendaylight.controller.sal-distributed-datastore:1.5.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at org.opendaylight.controller.cluster.raft.RaftActor.handleBehaviorChange(RaftActor.java:465)&lt;span class=&quot;error&quot;&gt;&amp;#91;164:org.opendaylight.controller.sal-akka-raft:1.5.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at org.opendaylight.controller.cluster.raft.RaftActor.switchBehavior(RaftActor.java:398)&lt;span class=&quot;error&quot;&gt;&amp;#91;164:org.opendaylight.controller.sal-akka-raft:1.5.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at org.opendaylight.controller.cluster.raft.RaftActor.handleCommand(RaftActor.java:297)&lt;span class=&quot;error&quot;&gt;&amp;#91;164:org.opendaylight.controller.sal-akka-raft:1.5.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at org.opendaylight.controller.cluster.common.actor.AbstractUntypedPersistentActor.onReceiveCommand(AbstractUntypedPersistentActor.java:29)&lt;span class=&quot;error&quot;&gt;&amp;#91;163:org.opendaylight.controller.sal-clustering-commons:1.5.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at akka.persistence.UntypedPersistentActor.onReceive(PersistentActor.scala:170)&lt;span class=&quot;error&quot;&gt;&amp;#91;157:com.typesafe.akka.persistence:2.4.7&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at org.opendaylight.controller.cluster.common.actor.MeteringBehavior.apply(MeteringBehavior.java:97)&lt;span class=&quot;error&quot;&gt;&amp;#91;163:org.opendaylight.controller.sal-clustering-commons:1.5.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at akka.actor.ActorCell$$anonfun$become$1.applyOrElse(ActorCell.scala:544)&lt;span class=&quot;error&quot;&gt;&amp;#91;151:com.typesafe.akka.actor:2.4.7&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at akka.actor.Actor$class.aroundReceive(Actor.scala:484)&lt;span class=&quot;error&quot;&gt;&amp;#91;151:com.typesafe.akka.actor:2.4.7&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at akka.persistence.UntypedPersistentActor.akka$persistence$Eventsourced$$super$aroundReceive(PersistentActor.scala:168)&lt;span class=&quot;error&quot;&gt;&amp;#91;157:com.typesafe.akka.persistence:2.4.7&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at akka.persistence.Eventsourced$$anon$1.stateReceive(Eventsourced.scala:633)&lt;span class=&quot;error&quot;&gt;&amp;#91;157:com.typesafe.akka.persistence:2.4.7&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at akka.persistence.Eventsourced$class.aroundReceive(Eventsourced.scala:179)&lt;span class=&quot;error&quot;&gt;&amp;#91;157:com.typesafe.akka.persistence:2.4.7&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at akka.persistence.UntypedPersistentActor.aroundReceive(PersistentActor.scala:168)&lt;span class=&quot;error&quot;&gt;&amp;#91;157:com.typesafe.akka.persistence:2.4.7&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at akka.actor.ActorCell.receiveMessage(ActorCell.scala:526)&lt;span class=&quot;error&quot;&gt;&amp;#91;151:com.typesafe.akka.actor:2.4.7&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at akka.actor.ActorCell.invoke(ActorCell.scala:495)&lt;span class=&quot;error&quot;&gt;&amp;#91;151:com.typesafe.akka.actor:2.4.7&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257)&lt;span class=&quot;error&quot;&gt;&amp;#91;151:com.typesafe.akka.actor:2.4.7&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at akka.dispatch.Mailbox.run(Mailbox.scala:224)&lt;span class=&quot;error&quot;&gt;&amp;#91;151:com.typesafe.akka.actor:2.4.7&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at akka.dispatch.Mailbox.exec(Mailbox.scala:234)&lt;span class=&quot;error&quot;&gt;&amp;#91;151:com.typesafe.akka.actor:2.4.7&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)&lt;span class=&quot;error&quot;&gt;&amp;#91;147:org.scala-lang.scala-library:2.11.8.v20160304-115712-1706a37eb8&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)&lt;span class=&quot;error&quot;&gt;&amp;#91;147:org.scala-lang.scala-library:2.11.8.v20160304-115712-1706a37eb8&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)&lt;span class=&quot;error&quot;&gt;&amp;#91;147:org.scala-lang.scala-library:2.11.8.v20160304-115712-1706a37eb8&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)&lt;span class=&quot;error&quot;&gt;&amp;#91;147:org.scala-lang.scala-library:2.11.8.v20160304-115712-1706a37eb8&amp;#93;&lt;/span&gt;&lt;br/&gt;
2016-08-25 11:30:46,841 | WARN  | lt-dispatcher-17 | OneForOneStrategy                | 152 - com.typesafe.akka.slf4j - 2.4.7 | Invalid combination of wasOwner: true, isOwner: true, hasOwner: true&lt;br/&gt;
2016-08-25 11:30:47,346 | WARN  | lt-dispatcher-14 | Shard                            | 164 - org.opendaylight.controller.sal-akka-raft - 1.5.0.SNAPSHOT | member-3-shard-inventory-operational: At least 1 followers need to be active, Switching member-3-shard-inventory-operational from Leader to IsolatedLeader&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="27017">MDSAL-195</key>
            <summary>ClusterSingletonService is not closed after Leader moves to IsolatedLeader</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="vdemcak@cisco.com">Vaclav Demcak</assignee>
                                    <reporter username="martin.mihalek@pantheon.sk">Martin Mih&#225;lek</reporter>
                        <labels>
                    </labels>
                <created>Fri, 26 Aug 2016 07:12:01 +0000</created>
                <updated>Fri, 9 Mar 2018 18:00:17 +0000</updated>
                            <resolved>Thu, 13 Oct 2016 08:21:01 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>12</watches>
                                                                                                                <comments>
                            <comment id="54428" author="vdemcak@cisco.com" created="Fri, 26 Aug 2016 07:52:34 +0000"  >&lt;p&gt;EntityOwnershipChangeState doesn&apos;t support combination wasOwner=true, isOwner=true, hasOwner=true. This message comes because we would like to inform about inJeopardy=true flag. A hotfix could provide new State for EntityOwnershipChangeState LOCAL_OWNERSHIP_GRANTED_NOT_CHANGE, but we have to think about a way to move inJeoparyd flag to EntityOwnershipChangeState.&lt;/p&gt;</comment>
                            <comment id="54429" author="martin.mihalek@pantheon.sk" created="Fri, 26 Aug 2016 09:11:06 +0000"  >&lt;p&gt;While using 3 node cluster with Cluster singleton service it may get to unresponsive election state after these steps:&lt;/p&gt;

&lt;p&gt;1.	Isolate current leader (member-3)&lt;br/&gt;
2.	Member-3 closes its services&lt;br/&gt;
3.	New Election selects leader (member-1)&lt;br/&gt;
4.	Member-1 init its services&lt;br/&gt;
5.	Discard isolation of member-3&lt;br/&gt;
6.	Member-1 closes its services and only candidate for election is member-1,&lt;/p&gt;

&lt;p&gt;And new member cannot be elected thus no services will be brought up from this point.&lt;/p&gt;</comment>
                            <comment id="54430" author="vdemcak@cisco.com" created="Fri, 26 Aug 2016 09:12:14 +0000"  >&lt;p&gt;(In reply to Vaclav Demcak from comment #1)&lt;br/&gt;
&amp;gt; EntityOwnershipChangeState doesn&apos;t support combination wasOwner=true,&lt;br/&gt;
&amp;gt; isOwner=true, hasOwner=true. This message comes because we would like to&lt;br/&gt;
&amp;gt; inform about inJeopardy=true flag. A hotfix could provide new State for&lt;br/&gt;
&amp;gt; EntityOwnershipChangeState LOCAL_OWNERSHIP_GRANTED_NOT_CHANGE, but we have&lt;br/&gt;
&amp;gt; to think about a way to move inJeoparyd flag to EntityOwnershipChangeState.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/44673/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/44673/&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="54456" author="vdemcak@cisco.com" created="Tue, 30 Aug 2016 15:21:43 +0000"  >&lt;p&gt;Attachment member3_karaf.log has been added with description: IsolatedLeader&lt;/p&gt;</comment>
                            <comment id="54457" author="vdemcak@cisco.com" created="Tue, 30 Aug 2016 15:22:44 +0000"  >&lt;p&gt;Attachment member2_karaf.log has been added with description: member2_follower&lt;/p&gt;</comment>
                            <comment id="54458" author="vdemcak@cisco.com" created="Tue, 30 Aug 2016 15:26:27 +0000"  >&lt;p&gt;Attachment member1_karaf.log has been added with description: member1_follower&lt;/p&gt;</comment>
                            <comment id="54431" author="andrejleitner" created="Wed, 31 Aug 2016 13:18:34 +0000"  >&lt;p&gt;(In reply to Martin Mih&#225;lek from comment #2)&lt;br/&gt;
&amp;gt; While using 3 node cluster with Cluster singleton service it may get to&lt;br/&gt;
&amp;gt; unresponsive election state after these steps:&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; 1.	Isolate current leader (member-3)&lt;br/&gt;
&amp;gt; 2.	Member-3 closes its services&lt;br/&gt;
&amp;gt; 3.	New Election selects leader (member-1)&lt;br/&gt;
&amp;gt; 4.	Member-1 init its services&lt;br/&gt;
&amp;gt; 5.	Discard isolation of member-3&lt;br/&gt;
&amp;gt; 6.	Member-1 closes its services and only candidate for election is member-1,&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; And new member cannot be elected thus no services will be brought up from&lt;br/&gt;
&amp;gt; this point.&lt;/p&gt;

&lt;p&gt;Observed the same during testing openflowplugin.&lt;/p&gt;</comment>
                            <comment id="54432" author="anipbu" created="Fri, 2 Sep 2016 03:02:56 +0000"  >&lt;p&gt;Is there an ETA for this bug and someone assigned to fix?&lt;/p&gt;</comment>
                            <comment id="54433" author="colin@colindixon.com" created="Fri, 2 Sep 2016 14:37:48 +0000"  >&lt;p&gt;Talking with TomP, he&apos;s said that this issue is complicated and he&apos;s already pushed one patch, but he&apos;s not certain it can be fixed by the release.&lt;/p&gt;

&lt;p&gt;The silver lining is that this bug &lt;b&gt;only&lt;/b&gt; relates to when nodes are isolated, which means we could consider changing this to a critical bug instead of a blocker if we are willing to note that during network partitions behavior might be undefined.&lt;/p&gt;</comment>
                            <comment id="54434" author="colin@colindixon.com" created="Fri, 2 Sep 2016 14:39:07 +0000"  >&lt;p&gt;I&apos;m reducing this to critical as TomP also says that this is not a regression from Beryllium.&lt;/p&gt;</comment>
                            <comment id="54435" author="colin@colindixon.com" created="Fri, 2 Sep 2016 14:42:15 +0000"  >&lt;p&gt;Do we think this bug is causing BUG-6554?&lt;/p&gt;</comment>
                            <comment id="54436" author="ecelgp" created="Fri, 2 Sep 2016 17:29:55 +0000"  >&lt;p&gt;No, this bugs occurs without cluster member isolation and even in single instance test. The bug you point seems to be related to &lt;a href=&quot;https://bugs.opendaylight.org/show_bug.cgi?id=6177&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://bugs.opendaylight.org/show_bug.cgi?id=6177&lt;/a&gt; which is not blocker (major bug).&lt;/p&gt;</comment>
                            <comment id="54437" author="ecelgp" created="Fri, 2 Sep 2016 17:34:39 +0000"  >&lt;p&gt;Sorry the last comment was intended to the other bug, what I mean is this bug can only be rsponsible for major (not critical) bug: &lt;a href=&quot;https://bugs.opendaylight.org/show_bug.cgi?id=6177&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://bugs.opendaylight.org/show_bug.cgi?id=6177&lt;/a&gt;.&lt;/p&gt;</comment>
                            <comment id="54438" author="tpantelis" created="Fri, 2 Sep 2016 19:13:04 +0000"  >&lt;p&gt;I&apos;ve found several issues looking at the logs.&lt;/p&gt;

&lt;p&gt;One is that listeners (DTCL and DCL) are not notified when a snapshot is installed by the leader on a follower. This results in member-3 losing its candidate (or not re-gaining) for the ServiceEntityType when the network partition was healed. This looks like a regression in Boron. I have submitted &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/45028/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/45028/&lt;/a&gt; to fix this.&lt;/p&gt;

&lt;p&gt;The fact that the new leader, member-2, tried to install a snapshot is a result of another orthogonal bug that&apos;s been there all along (not a regression). The old leader, member-3, had a transaction journal entry at index 6, term 1 that was appended when it was isolated and thus wasn&apos;t replicated. Meanwhile, on the other side of the partition, member-2 became leader and committed its own entry at index 6 but with term 2. When the partition healed, member-3 switched to follower as it should. When syncing with the new leader member-2, member-3&apos;s entry at index 6 should have immediately been deemed a conflict with member-2&apos;s index 6 entry since the terms don&apos;t match and member-3&apos;s entry should&apos;ve been removed/replaced by member-2&apos;s entry. This did eventually happen (via the snapshot) however member-3&apos;s entry was first committed and applied to the state. This is in violation of raft where an entry was committed without being replicated to a majority of the followers. I have an idea on how to fix this.&lt;/p&gt;

&lt;p&gt;The major issue that led to all this was a result of the leader removing a member as candidate when it is notified by akka when the member node is determined to be down. This results in another member being selected as owner. I believe initially we just selected a new owner, ignoring the down member. However, if the down member process was actually down this would result in a stale candidate when the member is restarted and no client on that member actually registers a candidate. Therefore the leader now removes the down member as a candidate. To handle the partition case where the member process is still running, when it reconnects it gets the update that its candidate was removed and re-registers it if a local candidate still exists. However this behavior is problematic in the case when the shard leader is isolated. The majority partition will elect a new leader which temporarily results in split-brain and 2 leaders which independently attempt to remove the side&apos;s candidates. When the partition is healed, all hell breaks loose trying to reconcile their differences. This is compounded with the singleton service because it uses 2 entities that are related to one another. I&apos;m working on ideas to alleviate this issue.&lt;/p&gt;

&lt;p&gt;Also, from the logs, it looks like the internal DTCL&apos;s used by the EOS shard didn&apos;t get  notified of all state transitions. This is because of the batching of updates into a single transaction when one is already in flight. This was done for efficiency but I think state transitions can be lost when combined in the same transaction because of compression in the DataTreeModification. So if a leaf is initially empty, then set to &quot;foo&quot; and then set to &quot;bar&quot; by another operation in the same transaction, the end result is that listeners will only observe the transition from &quot;&quot; -&amp;gt; &quot;bar&quot;. I have to verify this.&lt;/p&gt;</comment>
                            <comment id="54439" author="tpantelis" created="Sun, 4 Sep 2016 15:25:57 +0000"  >&lt;p&gt;Submitted &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/45129/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/45129/&lt;/a&gt; to rework the behavior of re-assigning owners on peer node down. This also fixes a couple other issues revealed by the changes and unit tests.&lt;/p&gt;</comment>
                            <comment id="54440" author="vzelcamo@cisco.com" created="Mon, 5 Sep 2016 12:08:49 +0000"  >&lt;p&gt;Martin, can you try the patch? Thanks.&lt;/p&gt;</comment>
                            <comment id="54441" author="martin.mihalek@pantheon.sk" created="Mon, 5 Sep 2016 13:13:39 +0000"  >&lt;p&gt;Used updated sal-distributed-datastore and sal-akka-raft from provided patch,&lt;br/&gt;
problem still remains after isolation of node first leader does not close its services, logs attached as &quot;members.zip&quot;&lt;/p&gt;</comment>
                            <comment id="54459" author="martin.mihalek@pantheon.sk" created="Mon, 5 Sep 2016 13:14:45 +0000"  >&lt;p&gt;Attachment members.zip has been added with description: Logs using patch &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/45129/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/45129/&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="54442" author="tpantelis" created="Tue, 6 Sep 2016 15:05:36 +0000"  >&lt;p&gt;(In reply to Martin Mih&#225;lek from comment #17)&lt;br/&gt;
&amp;gt; Used updated sal-distributed-datastore and sal-akka-raft from provided patch,&lt;br/&gt;
&amp;gt; problem still remains after isolation of node first leader does not close&lt;br/&gt;
&amp;gt; its services, logs attached as &quot;members.zip&quot;&lt;/p&gt;

&lt;p&gt;It failed b/c of the original error:&lt;/p&gt;

&lt;p&gt;java.lang.IllegalArgumentException: Invalid combination of wasOwner: true, isOwner: true, hasOwner: true&lt;br/&gt;
        at com.google.common.base.Preconditions.checkArgument(Preconditions.java:145)&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.mdsal.eos.common.api.EntityOwnershipChangeState.from(EntityOwnershipChangeState.java:100)&lt;span class=&quot;error&quot;&gt;&amp;#91;129:org.opendaylight.mdsal.eos-common-api:2.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at org.opendaylight.controller.cluster.datastore.entityownership.EntityOwnershipListenerSupport.notifyListeners(EntityOwnershipListenerSupport.java:107)&lt;span class=&quot;error&quot;&gt;&amp;#91;171:org.opendaylight.controller.sal-distributed-datastore:1.5.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;/p&gt;

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

&lt;p&gt;With these patches, the scenario of isolating the EOS shard leader with the singleton service entity owned by the shard leader should work. In this case, EOS shard leader and entity owner is member-3. After isolation, either member-1 or member-2 should become owner. After the isolation is removed, nothing should happen and member-1 or member-2 should remain owner. &lt;/p&gt;

&lt;p&gt;However, the scenario where member-3 is the EOS shard leader but either member-1 or member-2 is the singleton service entity will probably run into similar issues as before and may not work correctly. This requires more work.&lt;/p&gt;

&lt;p&gt;Also the scenario where an EOS shard follower is the singleton service entity and is isolated, it will not get notified of inJeopardy. This was never implemented.&lt;/p&gt;</comment>
                            <comment id="54443" author="rgoulding" created="Tue, 6 Sep 2016 16:37:26 +0000"  >&lt;p&gt;Per discussion in Core Projects call, this is being escalated to a blocker status.  These patches should be included in Boron.&lt;/p&gt;</comment>
                            <comment id="54444" author="martin.mihalek@pantheon.sk" created="Wed, 7 Sep 2016 10:12:58 +0000"  >&lt;p&gt;I updated features: sal-akka-raft, sal-distributed-datastore, mdsal-eos-common-api&lt;br/&gt;
withc changes: &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/44673/6&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/44673/6&lt;/a&gt;&lt;br/&gt;
      &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/45129/4&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/45129/4&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tested Situation:&lt;/p&gt;

&lt;p&gt;1.  Cluster start, member 3 elected as leader&lt;br/&gt;
2.  Isolate member 3&lt;br/&gt;
3.  Member 3 closes its services&lt;br/&gt;
4.  Member 2 elected as new leader&lt;br/&gt;
5.  Remove isolation of member 3&lt;br/&gt;
6.  Member 2 still remains as leader&lt;br/&gt;
7.  Isolate member 2&lt;br/&gt;
8.  Member does not close its services,&lt;br/&gt;
    other nodes does not start election&lt;br/&gt;
9.  Remove isolation of member 2&lt;br/&gt;
10. Member 2 closes its services&lt;br/&gt;
11. Services on all nodes are closed no leader is elected&lt;/p&gt;

&lt;p&gt;Logs attached, using debug on:&lt;br/&gt;
     org.opendaylight.mdsal.singleton.dom.impl&lt;br/&gt;
     org.opendaylight.controller.cluster.datastore.entityownership&lt;/p&gt;</comment>
                            <comment id="54460" author="martin.mihalek@pantheon.sk" created="Wed, 7 Sep 2016 10:12:58 +0000"  >&lt;p&gt;Attachment members_1.zip has been added with description: Cluster members logs&lt;/p&gt;</comment>
                            <comment id="54445" author="tpantelis" created="Wed, 7 Sep 2016 11:41:08 +0000"  >&lt;p&gt;&amp;gt; &lt;br/&gt;
&amp;gt; Tested Situation:&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; 1.  Cluster start, member 3 elected as leader&lt;br/&gt;
&amp;gt; 2.  Isolate member 3&lt;br/&gt;
&amp;gt; 3.  Member 3 closes its services&lt;br/&gt;
&amp;gt; 4.  Member 2 elected as new leader&lt;br/&gt;
&amp;gt; 5.  Remove isolation of member 3&lt;br/&gt;
&amp;gt; 6.  Member 2 still remains as leader&apos;&lt;/p&gt;

&lt;p&gt;These steps worked correctly - this is what the patches were intended to address. &lt;br/&gt;
Note the use of the term &quot;leader&quot; above really means &quot;entity owner&quot; and not shard leader. We should not mix the 2 terms to avoid confusion. Rewriting the steps above:&lt;/p&gt;

&lt;p&gt;1. Cluster start, member 3 elected as EOS shard leader&lt;br/&gt;
2. Member 3 chosen as service owner&lt;br/&gt;
3. Isolate member 3&lt;br/&gt;
4. Member 3 closes its service due to inJeopardy&lt;br/&gt;
5. Member 1 elected as new EOS shard leader&lt;br/&gt;
6. Member 2 chosen as new service owner&lt;br/&gt;
7. Remove isolation of member 3&lt;br/&gt;
8. Member 2 remains as service owner&lt;/p&gt;

&lt;p&gt;&amp;gt; 7.  Isolate member 2&lt;br/&gt;
&amp;gt; 8.  Member does not close its services,&lt;br/&gt;
&amp;gt;     other nodes does not start election&lt;/p&gt;

&lt;p&gt;Since member 2 is a follower, we don&apos;t currently notify of InJeopardy in this case (was never implemented). &lt;/p&gt;

&lt;p&gt;Member 3 was actually selected as the new owner of the ServiceEntityType and the DOMClusterSingletonServiceProviderImpl was notified:&lt;/p&gt;

&lt;p&gt;2016-09-07 09:56:28,155 | DEBUG | on-dispatcher-55 | EntityOwnerChangeListener        | 217 - org.opendaylight.controller.sal-distributed-datastore - 1.5.0.SNAPSHOT | member-3-shard-entity-ownership-operational: New owner: member-3, Original owner: member-2&lt;/p&gt;

&lt;p&gt;2016-09-07 09:56:28,155 | DEBUG | lt-dispatcher-17 | EntityOwnershipListenerActor     | 217 - org.opendaylight.controller.sal-distributed-datastore - 1.5.0.SNAPSHOT | Notifying EntityOwnershipListener org.opendaylight.mdsal.singleton.dom.impl.DOMClusterSingletonServiceProviderImpl@289870b7: DOMEntityOwnershipChange [entity=DOMEntity [type=org.opendaylight.mdsal.ServiceEntityType, id=/(urn:opendaylight:params:xml:ns:yang:mdsal:core:general-entity?revision=2015-09-30)entity/entity[&lt;/p&gt;
{(urn:opendaylight:params:xml:ns:yang:mdsal:core:general-entity?revision=2015-09-30)name=org.opendaylight.controller.config.yang.sxp.controller.conf.SxpControllerInstance}
&lt;p&gt;]], state=LOCAL_OWNERSHIP_GRANTED &lt;span class=&quot;error&quot;&gt;&amp;#91;wasOwner=false, isOwner=true, hasOwner=true&amp;#93;&lt;/span&gt;, inJeopardy=false]&lt;/p&gt;

&lt;p&gt;However, the ClusterSingletonServiceGroupImpl was not notified. It seem when it loses ownership it stops receiving updates via the DOMClusterSingletonServiceProviderImpl. I think think this is due to removing itself from the allServiceGroups in newAsyncCloseCallback. So this is a bug in the ClusterSingletonServiceGroupImpl - not sure what the intent is - I&apos;ll punt to Vaclav...&lt;/p&gt;</comment>
                            <comment id="54446" author="anipbu" created="Thu, 8 Sep 2016 01:08:14 +0000"  >&lt;p&gt;Has this bug been verified as fixed in the latest Boron RC 3.1 Build?&lt;/p&gt;</comment>
                            <comment id="54447" author="tpantelis" created="Thu, 8 Sep 2016 02:07:06 +0000"  >&lt;p&gt;(In reply to A H from comment #23)&lt;br/&gt;
&amp;gt; Has this bug been verified as fixed in the latest Boron RC 3.1 Build?&lt;/p&gt;

&lt;p&gt;It seems what we intended to fix for the RC with the patches has been verified. There&apos;s still other scenarios that don&apos;t work correctly as I outlined in my comments but we&apos;ll address those in SR1. We can downgrade this for critical for now.&lt;/p&gt;</comment>
                            <comment id="54448" author="tpantelis" created="Tue, 13 Sep 2016 13:11:39 +0000"  >&lt;p&gt;Submitted &lt;br/&gt;
  &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/45515/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/45515/&lt;/a&gt; &lt;br/&gt;
  &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/45516/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/45516/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;to address other issues outlined in previous comments.&lt;/p&gt;</comment>
                            <comment id="54449" author="martin.ciglan" created="Mon, 19 Sep 2016 12:01:39 +0000"  >&lt;p&gt;is this ready for review or still in progress? Thanks for update.&lt;/p&gt;</comment>
                            <comment id="54450" author="tpantelis" created="Mon, 19 Sep 2016 12:57:02 +0000"  >&lt;p&gt;(In reply to Martin Ciglan from comment #26)&lt;br/&gt;
&amp;gt; is this ready for review or still in progress? Thanks for update.&lt;/p&gt;

&lt;p&gt;The patches above have been in review for a few days but no one has reviewed yet. If you want to review that would be great. I intend to backport to stable/boron.&lt;/p&gt;</comment>
                            <comment id="54451" author="martin.mihalek@pantheon.sk" created="Mon, 19 Sep 2016 19:38:19 +0000"  >&lt;p&gt;I updated features: sal-akka-raft, sal-distributed-datastore&lt;/p&gt;

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

&lt;p&gt;Tested Situation:&lt;/p&gt;

&lt;p&gt;1.  Cluster start, member 1 hosts services&lt;br/&gt;
2.  Isolate member 1&lt;br/&gt;
3.  Member 1 closes its services&lt;br/&gt;
4.  Member 2 elected and hosting services&lt;br/&gt;
5.  Remove isolation of member 1&lt;br/&gt;
6.  Member 2 still remains as leader&lt;br/&gt;
7.  Isolate member 2&lt;br/&gt;
8.  Member 2 does not close its services,&lt;br/&gt;
    other nodes does not start election&lt;/p&gt;

&lt;p&gt;Logs attached, using debug on:&lt;br/&gt;
     org.opendaylight.mdsal.singleton.dom.impl&lt;br/&gt;
     org.opendaylight.controller.cluster.datastore.entityownership&lt;/p&gt;</comment>
                            <comment id="54461" author="martin.mihalek@pantheon.sk" created="Mon, 19 Sep 2016 19:38:19 +0000"  >&lt;p&gt;Attachment member_logs.zip has been added with description: Cluster member logs&lt;/p&gt;</comment>
                            <comment id="54452" author="tpantelis" created="Tue, 20 Sep 2016 03:41:44 +0000"  >&lt;p&gt;(In reply to Martin Mih&#225;lek from comment #28)&lt;br/&gt;
&amp;gt; Created attachment 1227 &lt;span class=&quot;error&quot;&gt;&amp;#91;details&amp;#93;&lt;/span&gt;&lt;br/&gt;
&amp;gt; Cluster member logs&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; I updated features: sal-akka-raft, sal-distributed-datastore&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; with change: &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/45638/1&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/45638/1&lt;/a&gt;&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; Tested Situation:&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; 1.  Cluster start, member 1 hosts services&lt;br/&gt;
&amp;gt; 2.  Isolate member 1&lt;br/&gt;
&amp;gt; 3.  Member 1 closes its services&lt;br/&gt;
&amp;gt; 4.  Member 2 elected and hosting services&lt;br/&gt;
&amp;gt; 5.  Remove isolation of member 1&lt;br/&gt;
&amp;gt; 6.  Member 2 still remains as leader&lt;br/&gt;
&amp;gt; 7.  Isolate member 2&lt;br/&gt;
&amp;gt; 8.  Member 2 does not close its services,&lt;br/&gt;
&amp;gt;     other nodes does not start election&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; Logs attached, using debug on:&lt;br/&gt;
&amp;gt;      org.opendaylight.mdsal.singleton.dom.impl&lt;br/&gt;
&amp;gt;      org.opendaylight.controller.cluster.datastore.entityownership&lt;/p&gt;

&lt;p&gt;This is the same scenario tested in Comment 21 (&lt;a href=&quot;https://bugs.opendaylight.org/show_bug.cgi?id=6540#c21&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://bugs.opendaylight.org/show_bug.cgi?id=6540#c21&lt;/a&gt;) and same issue I noted in Comment 22 (&lt;a href=&quot;https://bugs.opendaylight.org/show_bug.cgi?id=6540#c22&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://bugs.opendaylight.org/show_bug.cgi?id=6540#c22&lt;/a&gt;).  Re-assigning to Vaclav.&lt;/p&gt;</comment>
                            <comment id="54453" author="tpantelis" created="Tue, 20 Sep 2016 04:07:30 +0000"  >&lt;p&gt;I should mention that &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/45638/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/45638/&lt;/a&gt; and related patches address this scenario:&lt;/p&gt;

&lt;p&gt;1. Cluster start, member 1 elected as EOS shard leader&lt;br/&gt;
2. Member 3 chosen as service owner&lt;br/&gt;
3. Isolate member 1&lt;br/&gt;
4. Member 3 remains as service owner&lt;br/&gt;
5. Remove isolation of member 1&lt;br/&gt;
6. Member 3 remains as service owner&lt;/p&gt;

&lt;p&gt;So in this case, isolating/un-isolating leader member-1 shouldn&apos;t result in any service owner changes.&lt;/p&gt;</comment>
                            <comment id="54454" author="mirehak@cisco.com" created="Tue, 27 Sep 2016 10:05:56 +0000"  >&lt;p&gt;Vaclav added fix to mdsal:&lt;br/&gt;
&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/46175/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/46175/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Testing results:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;if shard leader for EOS and service owner (SXP) are co-located then it works as expected:&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
	&lt;li&gt;after EOS leader isolation&lt;/li&gt;
&lt;/ul&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;election occurs&lt;/li&gt;
	&lt;li&gt;old leader: Leader -&amp;gt; IsolatedLeader, service is closed&lt;/li&gt;
	&lt;li&gt;new leader: Follower -&amp;gt; Leader, service is instantiated&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
	&lt;li&gt;after cluster heal&lt;/li&gt;
&lt;/ul&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;isolated leader: IsolatedLeader -&amp;gt; Follower&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;but if shard leader for EOS and service owner (SXP) are NOT co-located then it behaves like this:&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
	&lt;li&gt;after EOS follower isolation&lt;/li&gt;
&lt;/ul&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;old follower: Follower -&amp;gt; Candidate, service is NOT closed&lt;/li&gt;
	&lt;li&gt;another follower or leader: service is instantiated&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
	&lt;li&gt;after cluster heal&lt;/li&gt;
&lt;/ul&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;often election occurs&lt;/li&gt;
	&lt;li&gt;isolated follower: Candidate -&amp;gt; Follower, service is closed&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;In the latter scenario the sxp service was running simultaneously on 2 cluster nodes during isolation.&lt;/p&gt;

&lt;p&gt;We also exercised the first scenario by killing karaf instead of touching iptables. Result is the same. So I guess we need to focus on situation where a Follower containing service owner gets isolated and keeps the service active.&lt;/p&gt;</comment>
                            <comment id="54455" author="andrejleitner" created="Mon, 10 Oct 2016 12:31:45 +0000"  >&lt;p&gt;Hi all,&lt;br/&gt;
could anybody review and merge the last Tom&apos;s patch&lt;br/&gt;
&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/45638&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/45638&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10000">
                    <name>Blocks</name>
                                            <outwardlinks description="blocks">
                                        <issuelink>
            <issuekey id="23780">BGPCEP-540</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="27996">OPNFLWPLUG-728</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="20984">SXP-100</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="13812" name="member1_karaf.log" size="397845" author="vdemcak@cisco.com" created="Tue, 30 Aug 2016 15:26:27 +0000"/>
                            <attachment id="13811" name="member2_karaf.log" size="451929" author="vdemcak@cisco.com" created="Tue, 30 Aug 2016 15:22:44 +0000"/>
                            <attachment id="13810" name="member3_karaf.log" size="521046" author="vdemcak@cisco.com" created="Tue, 30 Aug 2016 15:21:43 +0000"/>
                            <attachment id="13815" name="member_logs.zip" size="99966" author="martin.mihalek@pantheon.sk" created="Mon, 19 Sep 2016 19:38:19 +0000"/>
                            <attachment id="13813" name="members.zip" size="87343" author="martin.mihalek@pantheon.sk" created="Mon, 5 Sep 2016 13:14:45 +0000"/>
                            <attachment id="13814" name="members_1.zip" size="117894" author="martin.mihalek@pantheon.sk" created="Wed, 7 Sep 2016 10:12:58 +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>6540</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=6540]]></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="10307"><![CDATA[Boron-1]]></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|i02wwf:</customfieldvalue>

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