<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 19:56:29 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-1798] ShardManager will miss sending a PeerAddressResolved message to local shards when UpdateSchemaContext comes after MemberUp</title>
                <link>https://jira.opendaylight.org/browse/CONTROLLER-1798</link>
                <project id="10113" key="CONTROLLER">controller</project>
                    <description>&lt;p&gt;ShardManager will miss sending a PeerAddressResolved message to local shards when UpdateSchemaContext comes after MemberUp. Currently PeerAddressResolved is only sent when receiving MemberUp/MemberReachable messages. At that time, the local shards actors may still have not been created for the UpdateSchemaContext message has not come. So the PeerAddressResolved message won&apos;t be sent to the local shards actors for they&apos;re null. When UpdateSchemaContext arrives later, local shards actors will be created with no PeerAddress MBean information.&lt;/p&gt;

&lt;p&gt;To avoid such missing,  PeerAddressResolved should also be sent  after receiving UpdateSchemaContext if there&apos;re peer members.&lt;/p&gt;</description>
                <environment></environment>
        <key id="28901">CONTROLLER-1798</key>
            <summary>ShardManager will miss sending a PeerAddressResolved message to local shards when UpdateSchemaContext comes after MemberUp</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="3" iconUrl="https://jira.opendaylight.org/images/icons/priorities/major.svg">Medium</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="-1">Unassigned</assignee>
                                    <reporter username="ykq">Kangqian Yin</reporter>
                        <labels>
                    </labels>
                <created>Mon, 27 Nov 2017 03:32:21 +0000</created>
                <updated>Tue, 5 Dec 2017 07:36:34 +0000</updated>
                            <resolved>Tue, 5 Dec 2017 07:36:34 +0000</resolved>
                                                                    <component>clustering</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="60287" author="tpantelis" created="Thu, 30 Nov 2017 08:44:41 +0000"  >&lt;p&gt;This really shouldn&apos;t matter since&#160;RaftActorContextImpl#getPeerAddress will obtain the peer&apos;s address from the&#160;PeerAddressResolver if the&#160;address isn&apos;t set in the peerInfoMap&lt;/p&gt;</comment>
                            <comment id="60315" author="ykq" created="Mon, 4 Dec 2017 01:44:12 +0000"  >&lt;p&gt;Hi, Tom,  just as you said, RaftActorContextImpl#getPeerAddress will obtain the peer&apos;s address and set it to the peerInfoMap if it&apos;s not set. But RaftActorContextImpl#getPeerAddress won&apos;t put a new PeerInfo object into the peerInfoMap if the peerInfoMap doesn&apos;t contain the peer.   &lt;/p&gt;

&lt;p&gt;And RaftActorContextImpl#getPeerAddress is not called by RaftActorContextImpl#getPeers which is called by RaftActor#onGetOnDemandRaftState when a shard responses to a GetOnDemandRaftState message issued by the shard mbean ShardStats. So the JMX client cannot retrieve the address information of the peer which doesn&apos;t exist in peerInfoMap.&lt;/p&gt;

&lt;p&gt;So we have either to modify RaftActorContextImpl#getPeers to get all existing peers in the peer address resolver, or to modify the ShardManager#updateSchemaContext to send PeerAddressResolved messages for all existing peers to the shard. &lt;/p&gt;

&lt;p&gt;Because PeerAddressResolver interface only has a resolve(String peerId) API. I think it&apos;s better to modify the ShardManager#updateSchemaContext. &lt;/p&gt;

&lt;p&gt;I&apos;ll upload a patch to fix this later.&lt;/p&gt;</comment>
                            <comment id="60317" author="ykq" created="Mon, 4 Dec 2017 06:14:00 +0000"  >&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/66186/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/66186/&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                    <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|i038g7:</customfieldvalue>

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