<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 19:55:53 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-1572] ReadDataReply Message was too large can result in &quot;Received UnreachableMember&quot; in cluster</title>
                <link>https://jira.opendaylight.org/browse/CONTROLLER-1572</link>
                <project id="10113" key="CONTROLLER">controller</project>
                    <description>&lt;p&gt;The serialization would be very time consuming if the ReadDataReply Message is very large, it will result in &quot;Received UnreachableMember&quot; in cluster&lt;/p&gt;

&lt;p&gt;The default failure-detector will trigger if there are no heartbeats within 5.5s in akka cluster. &quot;Received UnreachableMember&quot; certainly occur if the serialization time exceeded 5.5s&lt;/p&gt;


&lt;p&gt;2016-12-27 20:06:30,999 | WARN  | t-dispatcher-199 | ClusterCoreDaemon                | 179 - com.typesafe.akka.slf4j - 2.4.12 | Cluster Node &lt;span class=&quot;error&quot;&gt;&amp;#91;akka.tcp://opendaylight-cluster-data@10.46.60.132:2550&amp;#93;&lt;/span&gt; - Marking node(s) as UNREACHABLE &lt;span class=&quot;error&quot;&gt;&amp;#91;Member(address = akka.tcp://opendaylight-cluster-data@10.46.60.139:2550, status = Up)&amp;#93;&lt;/span&gt;. Node roles &lt;span class=&quot;error&quot;&gt;&amp;#91;member-1&amp;#93;&lt;/span&gt;&lt;br/&gt;
2016-12-27 20:06:31,002 | INFO  | t-dispatcher-293 | ShardManager                     | 214 - org.opendaylight.controller.sal-distributed-datastore - 1.5.0.SNAPSHOT | Received UnreachableMember: memberName MemberName&lt;/p&gt;
{name=member-2}, address: akka.tcp://opendaylight-cluster-data@10.46.60.139:2550&lt;br/&gt;
2016-12-27 20:06:31,002 | INFO  | t-dispatcher-296 | ShardManager                     | 214 - org.opendaylight.controller.sal-distributed-datastore - 1.5.0.SNAPSHOT | Received UnreachableMember: memberName MemberName{name=member-2}
&lt;p&gt;, address: akka.tcp://opendaylight-cluster-data@10.46.60.139:2550&lt;br/&gt;
2016-12-27 20:06:31,002 | INFO  | t-dispatcher-199 | EntityOwnershipShard             | 209 - org.opendaylight.controller.sal-akka-raft - 1.5.0.SNAPSHOT | member-1-shard-entity-ownership-operational: onPeerDown: PeerDown &lt;span class=&quot;error&quot;&gt;&amp;#91;memberName=member-2, peerId=member-2-shard-entity-ownership-operational&amp;#93;&lt;/span&gt;&lt;br/&gt;
2016-12-27 20:06:31,362 | INFO  | lt-dispatcher-33 | kka://opendaylight-cluster-data) | 179 - com.typesafe.akka.slf4j - 2.4.12 | Cluster Node &lt;span class=&quot;error&quot;&gt;&amp;#91;akka.tcp://opendaylight-cluster-data@10.46.60.132:2550&amp;#93;&lt;/span&gt; - Ignoring received gossip status from unreachable &lt;span class=&quot;error&quot;&gt;&amp;#91;UniqueAddress(akka.tcp://opendaylight-cluster-data@10.46.60.139:2550,2101232233)&amp;#93;&lt;/span&gt; &lt;br/&gt;
2016-12-27 20:06:32,362 | INFO  | lt-dispatcher-86 | kka://opendaylight-cluster-data) | 179 - com.typesafe.akka.slf4j - 2.4.12 | Cluster Node &lt;span class=&quot;error&quot;&gt;&amp;#91;akka.tcp://opendaylight-cluster-data@10.46.60.132:2550&amp;#93;&lt;/span&gt; - Ignoring received gossip status from unreachable &lt;span class=&quot;error&quot;&gt;&amp;#91;UniqueAddress(akka.tcp://opendaylight-cluster-data@10.46.60.139:2550,2101232233)&amp;#93;&lt;/span&gt; &lt;br/&gt;
2016-12-27 20:06:32,979 | WARN  | t-dispatcher-188 | Shard                            | 209 - org.opendaylight.controller.sal-akka-raft - 1.5.0.SNAPSHOT | member-1-shard-default-config: At least 1 followers need to be active, Switching member-1-shard-default-config from Leader to IsolatedLeader&lt;/p&gt;

&lt;p&gt;------------------------------------------------------------------------------------&lt;/p&gt;

&lt;p&gt;In addition&#65292; akka EndpointWriter will throw OversizedPayloadException if the ReadDataReply size over the maximumPayloadBytes&lt;/p&gt;

&lt;p&gt;2016-12-27 20:06:41,571 | ERROR | lt-dispatcher-18 | EndpointWriter                   | 179 - com.typesafe.akka.slf4j - 2.4.12 | Transient association error (association remains live)&lt;br/&gt;
akka.remote.OversizedPayloadException: Discarding oversized payload sent to Actor&lt;span class=&quot;error&quot;&gt;&amp;#91;akka.tcp://opendaylight-cluster-data@10.46.60.139:2550/temp/$J&amp;#93;&lt;/span&gt;: max allowed size 419430400 bytes, actual size of encoded class org.opendaylight.controller.cluster.datastore.messages.ReadDataReply was 523432856 bytes.&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="26126">CONTROLLER-1572</key>
            <summary>ReadDataReply Message was too large can result in &quot;Received UnreachableMember&quot; in cluster</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="tpantelis">Tom Pantelis</assignee>
                                    <reporter username="he.yunbo@zte.com.cn">HeYunBo</reporter>
                        <labels>
                    </labels>
                <created>Tue, 27 Dec 2016 12:19:16 +0000</created>
                <updated>Tue, 25 Jul 2023 08:24:17 +0000</updated>
                            <resolved>Sat, 15 Jul 2017 12:12:05 +0000</resolved>
                                                                    <component>clustering</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="51654" author="tpantelis" created="Tue, 27 Dec 2016 19:54:50 +0000"  >&lt;p&gt;This will be alleviated when we switch to use akka Artery (&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/49466&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/49466&lt;/a&gt;), which fragments large messages into smaller chunks (&lt;a href=&quot;http://blog.akka.io/artery/2016/12/05/aeron-in-artery&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://blog.akka.io/artery/2016/12/05/aeron-in-artery&lt;/a&gt;). Artery also has a dedicated sub channel for large messages that we can utilize for ReadDataReply messages.&lt;/p&gt;</comment>
                            <comment id="51655" author="he.yunbo@zte.com.cn" created="Wed, 28 Dec 2016 03:47:15 +0000"  >&lt;p&gt;I have switched to use akka Artery, but it still have the problem&lt;/p&gt;

&lt;p&gt;2016-12-28 19:33:05,820 | ERROR | t-dispatcher-152 | Encoder                          | 179 - com.typesafe.akka.slf4j - 2.4.12 | Failed to serialize oversized message &lt;span class=&quot;error&quot;&gt;&amp;#91;org.opendaylight.controller.cluster.datastore.messages.ReadDataReply&amp;#93;&lt;/span&gt;.&lt;br/&gt;
akka.remote.OversizedPayloadException: Discarding oversized payload sent to Some(Actor&lt;span class=&quot;error&quot;&gt;&amp;#91;akka://opendaylight-cluster-data@10.46.60.139:25520/temp/$p&amp;#93;&lt;/span&gt;): max allowed size 262144 bytes. Message type &lt;span class=&quot;error&quot;&gt;&amp;#91;org.opendaylight.controller.cluster.datastore.messages.ReadDataReply&amp;#93;&lt;/span&gt;.&lt;/p&gt;</comment>
                            <comment id="51656" author="tpantelis" created="Wed, 28 Dec 2016 04:27:12 +0000"  >&lt;p&gt;The aeron layer is capable of fragmenting large messages but it seems akka still imposes an upper limit. For artery this appears to be maximum-frame-size&lt;br/&gt;
which is 256K by default (&lt;a href=&quot;http://doc.akka.io/docs/akka/2.4/general/configuration.html#config-akka-remote-artery&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://doc.akka.io/docs/akka/2.4/general/configuration.html#config-akka-remote-artery&lt;/a&gt;). We&apos;ll need to bump this up. &lt;/p&gt;

&lt;p&gt;I haven&apos;t seen any way to get around this upper limit other than setting it really high. Perhaps you could engage the akka folks on this subject (mailing list or open an issue)?&lt;/p&gt;</comment>
                            <comment id="51657" author="he.yunbo@zte.com.cn" created="Wed, 4 Jan 2017 02:40:50 +0000"  >&lt;p&gt;I have consulted with akka about this question. They reply as follower:&lt;/p&gt;

&lt;p&gt;-----------------------------------------------------------------------------&lt;/p&gt;

&lt;p&gt;We recommend against sending large messages. Try to split them into smaller messages or send them via a side channel that is not using Akka remoting.&lt;/p&gt;

&lt;p&gt;Note that Artery has some better support for large messages, but the recommendation is still valid.&lt;br/&gt;
&lt;a href=&quot;http://doc.akka.io/docs/akka/2.4/scala/remoting-artery.html#Dedicated_subchannel_for_large_messages&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://doc.akka.io/docs/akka/2.4/scala/remoting-artery.html#Dedicated_subchannel_for_large_messages&lt;/a&gt;&lt;br/&gt;
You can increate the max allowed size, see reference.conf&lt;/p&gt;

&lt;p&gt;-----------------------------------------------------------------------------&lt;/p&gt;

&lt;p&gt;I wonder whether the ODL have discussed the plan to split a large message into smaller messages?&lt;/p&gt;</comment>
                            <comment id="51658" author="tpantelis" created="Wed, 4 Jan 2017 03:30:39 +0000"  >&lt;p&gt;I don&apos;t agree with their view that messages should be split up/chunked at the app layer - this should be handled at the transport layer. &lt;/p&gt;

&lt;p&gt;In any event, we can use the large message channel for FE &amp;lt;-&amp;gt; BE messages as discussed in &lt;a href=&quot;https://jira.opendaylight.org/browse/CONTROLLER-1223&quot; title=&quot;Clustering : Chunk an append entry to ensure that we not exceed akka-remoting size limit&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CONTROLLER-1223&quot;&gt;&lt;del&gt;CONTROLLER-1223&lt;/del&gt;&lt;/a&gt; once Robert&apos;s &lt;a href=&quot;https://jira.opendaylight.org/browse/CONTROLLER-1483&quot; title=&quot;akka.pattern.AskTimeoutException on follower while BGP peer introduces 1M prefixes&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CONTROLLER-1483&quot;&gt;&lt;del&gt;CONTROLLER-1483&lt;/del&gt;&lt;/a&gt; work is complete. I have set both the maximum-frame-size and maximum-large-frame-size to 1G with &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/49466/9/opendaylight/md-sal/sal-clustering-config/src/main/resources/initial/factory-akka.conf&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/49466/9/opendaylight/md-sal/sal-clustering-config/src/main/resources/initial/factory-akka.conf&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Ideally we would chunk large ReadDataReply messages or any other message containing NormalizedNodes that could be large - similar to the raft install snapshot chunking but generalized.&lt;/p&gt;</comment>
                            <comment id="51659" author="he.yunbo@zte.com.cn" created="Fri, 20 Jan 2017 03:16:22 +0000"  >&lt;p&gt;According to your advice in &lt;a href=&quot;https://bugs.opendaylight.org/show_bug.cgi?id=2890&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://bugs.opendaylight.org/show_bug.cgi?id=2890&lt;/a&gt;, we are considering to implement a subchannel component which can be used for fragmentation and defragmentation. Please refer to the attachment.&lt;/p&gt;</comment>
                            <comment id="51661" author="he.yunbo@zte.com.cn" created="Fri, 20 Jan 2017 03:16:22 +0000"  >&lt;p&gt;Attachment Subchannel-component.doc has been added with description: subchannel component for fragmentation and defragmentation&lt;/p&gt;</comment>
                            <comment id="51660" author="tpantelis" created="Thu, 22 Jun 2017 03:24:42 +0000"  >&lt;p&gt;Message slicing/re-assembly patch: &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/55767/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/55767/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Read reply slicing patch: &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/q/topic:bug/7449&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/q/topic:bug/7449&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                            <attachment id="13606" name="Subchannel-component.doc" size="91136" author="he.yunbo@zte.com.cn" created="Fri, 20 Jan 2017 03:16:22 +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>7449</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=7449]]></customfieldvalue>

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

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

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

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