<!-- 
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-1575] Akka artery fails with java.lang.OutOfMemoryError: Direct buffer memory</title>
                <link>https://jira.opendaylight.org/browse/CONTROLLER-1575</link>
                <project id="10113" key="CONTROLLER">controller</project>
                    <description>&lt;p&gt;This is tracked here:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jenkins.opendaylight.org/releng/view/CSIT-3node/job/controller-csit-3node-clustering-only-carbon/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://jenkins.opendaylight.org/releng/view/CSIT-3node/job/controller-csit-3node-clustering-only-carbon/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Looking at the console of a failing test:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jenkins.opendaylight.org/releng/view/CSIT-3node/job/controller-csit-3node-clustering-only-carbon/478/console&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://jenkins.opendaylight.org/releng/view/CSIT-3node/job/controller-csit-3node-clustering-only-carbon/478/console&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;I can see:&lt;/p&gt;

&lt;p&gt;15:30:51 2017-01-10 15:21:02,052 | ERROR | ult-dispatcher-3 | ActorSystemImpl                  | 203 - com.typesafe.akka.slf4j - 2.4.16 | Uncaught error from thread &lt;span class=&quot;error&quot;&gt;&amp;#91;opendaylight-cluster-data-akka.remote.default-remote-dispatcher-10&amp;#93;&lt;/span&gt; shutting down JVM since &apos;akka.jvm-exit-on-fatal-error&apos; is enabled&lt;br/&gt;
15:30:51 2017-01-10 15:21:02,070 | ERROR | ult-dispatcher-3 | kka://opendaylight-cluster-data) | 203 - com.typesafe.akka.slf4j - 2.4.16 | Aeron error, Direct buffer memory&lt;br/&gt;
15:30:51 java.lang.OutOfMemoryError: Direct buffer memory&lt;br/&gt;
15:30:51 	at java.nio.Bits.reserveMemory(Bits.java:693)&lt;span class=&quot;error&quot;&gt;&amp;#91;:1.8.0_111&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at java.nio.DirectByteBuffer.&amp;lt;init&amp;gt;(DirectByteBuffer.java:123)&lt;span class=&quot;error&quot;&gt;&amp;#91;:1.8.0_111&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:311)&lt;span class=&quot;error&quot;&gt;&amp;#91;:1.8.0_111&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at akka.remote.artery.EnvelopeBufferPool.acquire(BufferPool.scala:40)&lt;span class=&quot;error&quot;&gt;&amp;#91;215:com.typesafe.akka.remote:2.4.16&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at akka.remote.artery.AeronSource$Fragments$$anon$2.onFragment(AeronSource.scala:59)&lt;span class=&quot;error&quot;&gt;&amp;#91;215:com.typesafe.akka.remote:2.4.16&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at io.aeron.FragmentAssembler.onFragment(FragmentAssembler.java:82)&lt;span class=&quot;error&quot;&gt;&amp;#91;218:io.aeron.client:1.0.4&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at io.aeron.logbuffer.TermReader.read(TermReader.java:74)&lt;span class=&quot;error&quot;&gt;&amp;#91;218:io.aeron.client:1.0.4&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at io.aeron.Image.poll(Image.java:211)&lt;span class=&quot;error&quot;&gt;&amp;#91;218:io.aeron.client:1.0.4&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at io.aeron.Subscription.poll(Subscription.java:132)&lt;span class=&quot;error&quot;&gt;&amp;#91;218:io.aeron.client:1.0.4&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at akka.remote.artery.AeronSource$$anonfun$akka$remote$artery$AeronSource$$pollTask$1.apply$mcZ$sp(AeronSource.scala:38)&lt;span class=&quot;error&quot;&gt;&amp;#91;215:com.typesafe.akka.remote:2.4.16&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at akka.remote.artery.TaskRunner.executeTasks(TaskRunner.scala:171)&lt;span class=&quot;error&quot;&gt;&amp;#91;215:com.typesafe.akka.remote:2.4.16&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at akka.remote.artery.TaskRunner.run(TaskRunner.scala:150)&lt;span class=&quot;error&quot;&gt;&amp;#91;215:com.typesafe.akka.remote:2.4.16&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at java.lang.Thread.run(Thread.java:745)&lt;span class=&quot;error&quot;&gt;&amp;#91;:1.8.0_111&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 2017-01-10 15:21:04,161 | ERROR | ult-dispatcher-3 | kka://opendaylight-cluster-data) | 203 - com.typesafe.akka.slf4j - 2.4.16 | Aeron error, Direct buffer memory&lt;br/&gt;
15:30:51 java.lang.OutOfMemoryError: Direct buffer memory&lt;br/&gt;
15:30:51 	at java.nio.Bits.reserveMemory(Bits.java:693)&lt;span class=&quot;error&quot;&gt;&amp;#91;:1.8.0_111&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at java.nio.DirectByteBuffer.&amp;lt;init&amp;gt;(DirectByteBuffer.java:123)&lt;span class=&quot;error&quot;&gt;&amp;#91;:1.8.0_111&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:311)&lt;span class=&quot;error&quot;&gt;&amp;#91;:1.8.0_111&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at akka.remote.artery.EnvelopeBufferPool.acquire(BufferPool.scala:40)&lt;span class=&quot;error&quot;&gt;&amp;#91;215:com.typesafe.akka.remote:2.4.16&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at akka.remote.artery.AeronSource$Fragments$$anon$2.onFragment(AeronSource.scala:59)&lt;span class=&quot;error&quot;&gt;&amp;#91;215:com.typesafe.akka.remote:2.4.16&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at io.aeron.FragmentAssembler.onFragment(FragmentAssembler.java:82)&lt;span class=&quot;error&quot;&gt;&amp;#91;218:io.aeron.client:1.0.4&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at io.aeron.logbuffer.TermReader.read(TermReader.java:74)&lt;span class=&quot;error&quot;&gt;&amp;#91;218:io.aeron.client:1.0.4&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at io.aeron.Image.poll(Image.java:211)&lt;span class=&quot;error&quot;&gt;&amp;#91;218:io.aeron.client:1.0.4&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at io.aeron.Subscription.poll(Subscription.java:127)&lt;span class=&quot;error&quot;&gt;&amp;#91;218:io.aeron.client:1.0.4&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at akka.remote.artery.AeronSource$$anonfun$akka$remote$artery$AeronSource$$pollTask$1.apply$mcZ$sp(AeronSource.scala:38)&lt;span class=&quot;error&quot;&gt;&amp;#91;215:com.typesafe.akka.remote:2.4.16&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at akka.remote.artery.TaskRunner.executeTasks(TaskRunner.scala:171)&lt;span class=&quot;error&quot;&gt;&amp;#91;215:com.typesafe.akka.remote:2.4.16&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at akka.remote.artery.TaskRunner.run(TaskRunner.scala:150)&lt;span class=&quot;error&quot;&gt;&amp;#91;215:com.typesafe.akka.remote:2.4.16&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at java.lang.Thread.run(Thread.java:745)&lt;span class=&quot;error&quot;&gt;&amp;#91;:1.8.0_111&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 2017-01-10 15:21:04,909 | ERROR | ult-dispatcher-3 | kka://opendaylight-cluster-data) | 203 - com.typesafe.akka.slf4j - 2.4.16 | Aeron error, Direct buffer memory&lt;br/&gt;
15:30:51 java.lang.OutOfMemoryError: Direct buffer memory&lt;br/&gt;
15:30:51 	at java.nio.Bits.reserveMemory(Bits.java:693)&lt;span class=&quot;error&quot;&gt;&amp;#91;:1.8.0_111&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at java.nio.DirectByteBuffer.&amp;lt;init&amp;gt;(DirectByteBuffer.java:123)&lt;span class=&quot;error&quot;&gt;&amp;#91;:1.8.0_111&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:311)&lt;span class=&quot;error&quot;&gt;&amp;#91;:1.8.0_111&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at akka.remote.artery.EnvelopeBufferPool.acquire(BufferPool.scala:40)&lt;span class=&quot;error&quot;&gt;&amp;#91;215:com.typesafe.akka.remote:2.4.16&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at akka.remote.artery.AeronSource$Fragments$$anon$2.onFragment(AeronSource.scala:59)&lt;span class=&quot;error&quot;&gt;&amp;#91;215:com.typesafe.akka.remote:2.4.16&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at io.aeron.FragmentAssembler.onFragment(FragmentAssembler.java:82)&lt;span class=&quot;error&quot;&gt;&amp;#91;218:io.aeron.client:1.0.4&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at io.aeron.logbuffer.TermReader.read(TermReader.java:74)&lt;span class=&quot;error&quot;&gt;&amp;#91;218:io.aeron.client:1.0.4&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at io.aeron.Image.poll(Image.java:211)&lt;span class=&quot;error&quot;&gt;&amp;#91;218:io.aeron.client:1.0.4&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at io.aeron.Subscription.poll(Subscription.java:127)&lt;span class=&quot;error&quot;&gt;&amp;#91;218:io.aeron.client:1.0.4&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at akka.remote.artery.AeronSource$$anonfun$akka$remote$artery$AeronSource$$pollTask$1.apply$mcZ$sp(AeronSource.scala:38)&lt;span class=&quot;error&quot;&gt;&amp;#91;215:com.typesafe.akka.remote:2.4.16&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at akka.remote.artery.TaskRunner.executeTasks(TaskRunner.scala:171)&lt;span class=&quot;error&quot;&gt;&amp;#91;215:com.typesafe.akka.remote:2.4.16&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at akka.remote.artery.TaskRunner.run(TaskRunner.scala:150)&lt;span class=&quot;error&quot;&gt;&amp;#91;215:com.typesafe.akka.remote:2.4.16&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at java.lang.Thread.run(Thread.java:745)&lt;span class=&quot;error&quot;&gt;&amp;#91;:1.8.0_111&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 2017-01-10 15:21:05,638 | ERROR | ult-dispatcher-3 | kka://opendaylight-cluster-data) | 203 - com.typesafe.akka.slf4j - 2.4.16 | Aeron error, Direct buffer memory&lt;br/&gt;
15:30:51 java.lang.OutOfMemoryError: Direct buffer memory&lt;br/&gt;
15:30:51 	at java.nio.Bits.reserveMemory(Bits.java:693)&lt;span class=&quot;error&quot;&gt;&amp;#91;:1.8.0_111&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at java.nio.DirectByteBuffer.&amp;lt;init&amp;gt;(DirectByteBuffer.java:123)&lt;span class=&quot;error&quot;&gt;&amp;#91;:1.8.0_111&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:311)&lt;span class=&quot;error&quot;&gt;&amp;#91;:1.8.0_111&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at akka.remote.artery.EnvelopeBufferPool.acquire(BufferPool.scala:40)&lt;span class=&quot;error&quot;&gt;&amp;#91;215:com.typesafe.akka.remote:2.4.16&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at akka.remote.artery.AeronSource$Fragments$$anon$2.onFragment(AeronSource.scala:59)&lt;span class=&quot;error&quot;&gt;&amp;#91;215:com.typesafe.akka.remote:2.4.16&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at io.aeron.FragmentAssembler.onFragment(FragmentAssembler.java:82)&lt;span class=&quot;error&quot;&gt;&amp;#91;218:io.aeron.client:1.0.4&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at io.aeron.logbuffer.TermReader.read(TermReader.java:74)&lt;span class=&quot;error&quot;&gt;&amp;#91;218:io.aeron.client:1.0.4&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at io.aeron.Image.poll(Image.java:211)&lt;span class=&quot;error&quot;&gt;&amp;#91;218:io.aeron.client:1.0.4&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at io.aeron.Subscription.poll(Subscription.java:127)&lt;span class=&quot;error&quot;&gt;&amp;#91;218:io.aeron.client:1.0.4&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at akka.remote.artery.AeronSource$$anonfun$akka$remote$artery$AeronSource$$pollTask$1.apply$mcZ$sp(AeronSource.scala:38)&lt;span class=&quot;error&quot;&gt;&amp;#91;215:com.typesafe.akka.remote:2.4.16&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at akka.remote.artery.TaskRunner.executeTasks(TaskRunner.scala:171)&lt;span class=&quot;error&quot;&gt;&amp;#91;215:com.typesafe.akka.remote:2.4.16&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at akka.remote.artery.TaskRunner.run(TaskRunner.scala:150)&lt;span class=&quot;error&quot;&gt;&amp;#91;215:com.typesafe.akka.remote:2.4.16&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at java.lang.Thread.run(Thread.java:745)&lt;span class=&quot;error&quot;&gt;&amp;#91;:1.8.0_111&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 2017-01-10 15:21:06,401 | ERROR | lt-dispatcher-14 | kka://opendaylight-cluster-data) | 203 - com.typesafe.akka.slf4j - 2.4.16 | Aeron error, Direct buffer memory&lt;br/&gt;
15:30:51 java.lang.OutOfMemoryError: Direct buffer memory&lt;br/&gt;
15:30:51 	at java.nio.Bits.reserveMemory(Bits.java:693)&lt;span class=&quot;error&quot;&gt;&amp;#91;:1.8.0_111&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at java.nio.DirectByteBuffer.&amp;lt;init&amp;gt;(DirectByteBuffer.java:123)&lt;span class=&quot;error&quot;&gt;&amp;#91;:1.8.0_111&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:311)&lt;span class=&quot;error&quot;&gt;&amp;#91;:1.8.0_111&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at akka.remote.artery.EnvelopeBufferPool.acquire(BufferPool.scala:40)&lt;span class=&quot;error&quot;&gt;&amp;#91;215:com.typesafe.akka.remote:2.4.16&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at akka.remote.artery.AeronSource$Fragments$$anon$2.onFragment(AeronSource.scala:59)&lt;span class=&quot;error&quot;&gt;&amp;#91;215:com.typesafe.akka.remote:2.4.16&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at io.aeron.FragmentAssembler.onFragment(FragmentAssembler.java:82)&lt;span class=&quot;error&quot;&gt;&amp;#91;218:io.aeron.client:1.0.4&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at io.aeron.logbuffer.TermReader.read(TermReader.java:74)&lt;span class=&quot;error&quot;&gt;&amp;#91;218:io.aeron.client:1.0.4&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at io.aeron.Image.poll(Image.java:211)&lt;span class=&quot;error&quot;&gt;&amp;#91;218:io.aeron.client:1.0.4&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at io.aeron.Subscription.poll(Subscription.java:127)&lt;span class=&quot;error&quot;&gt;&amp;#91;218:io.aeron.client:1.0.4&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at akka.remote.artery.AeronSource$$anonfun$akka$remote$artery$AeronSource$$pollTask$1.apply$mcZ$sp(AeronSource.scala:38)&lt;span class=&quot;error&quot;&gt;&amp;#91;215:com.typesafe.akka.remote:2.4.16&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at akka.remote.artery.TaskRunner.executeTasks(TaskRunner.scala:171)&lt;span class=&quot;error&quot;&gt;&amp;#91;215:com.typesafe.akka.remote:2.4.16&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at akka.remote.artery.TaskRunner.run(TaskRunner.scala:150)&lt;span class=&quot;error&quot;&gt;&amp;#91;215:com.typesafe.akka.remote:2.4.16&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 	at java.lang.Thread.run(Thread.java:745)&lt;span class=&quot;error&quot;&gt;&amp;#91;:1.8.0_111&amp;#93;&lt;/span&gt;&lt;br/&gt;
15:30:51 2017-01-10 15:21:07,461 | WARN  | saction-30-31&apos;}} | DeadlockMonitor                  | 151 - org.opendaylight.controller.config-manager - 0.6.0.SNAPSHOT | ModuleIdentifier&lt;/p&gt;
{factoryName=&apos;binding-broker-impl&apos;, instanceName=&apos;binding-broker-impl&apos;}
&lt;p&gt; did not finish after 9920 ms&lt;/p&gt;


&lt;p&gt;We can also see the used config files in the console:&lt;/p&gt;

&lt;p&gt;15:20:16 Dump akka.conf&lt;br/&gt;
15:20:16 &lt;br/&gt;
15:20:16 odl-cluster-data {&lt;br/&gt;
15:20:16   akka {&lt;br/&gt;
15:20:16     remote {&lt;br/&gt;
15:20:16       artery &lt;/p&gt;
{
15:20:16         enabled = on
15:20:16         canonical.hostname = &quot;10.29.12.251&quot;
15:20:16         canonical.port = 2550
15:20:16       }
&lt;p&gt;15:20:16     }&lt;br/&gt;
15:20:16 &lt;br/&gt;
15:20:16     cluster &lt;/p&gt;
{
15:20:16       seed-nodes = [&quot;akka://opendaylight-cluster-data@10.29.12.251:2550&quot;,
15:20:16 				&quot;akka://opendaylight-cluster-data@10.29.12.96:2550&quot;,
15:20:16 				&quot;akka://opendaylight-cluster-data@10.29.12.146:2550&quot;]
15:20:16 
15:20:16       roles = [&quot;member-1&quot;]
15:20:16 
15:20:16     }
&lt;p&gt;15:20:16     &lt;br/&gt;
15:20:16     persistence {&lt;br/&gt;
15:20:16       # By default the snapshots/journal directories live in KARAF_HOME. You can choose to put it somewhere else by&lt;br/&gt;
15:20:16       # modifying the following two properties. The directory location specified may be a relative or absolute path. &lt;br/&gt;
15:20:16       # The relative path is always relative to KARAF_HOME.&lt;br/&gt;
15:20:16 &lt;br/&gt;
15:20:16       # snapshot-store.local.dir = &quot;target/snapshots&quot;&lt;br/&gt;
15:20:16       # journal.leveldb.dir = &quot;target/journal&quot;&lt;br/&gt;
15:20:16 &lt;br/&gt;
15:20:16       journal {&lt;br/&gt;
15:20:16         leveldb &lt;/p&gt;
{
15:20:16           # Set native = off to use a Java-only implementation of leveldb.
15:20:16           # Note that the Java-only version is not currently considered by Akka to be production quality.
15:20:16 
15:20:16           # native = off
15:20:16         }
&lt;p&gt;15:20:16       }&lt;br/&gt;
15:20:16     }&lt;br/&gt;
15:20:16   }&lt;br/&gt;
15:20:16 }&lt;br/&gt;
15:20:16 Dump modules.conf&lt;br/&gt;
15:20:16 modules = [&lt;br/&gt;
15:20:16 	&lt;br/&gt;
15:20:16 	&lt;/p&gt;
{
15:20:16 		name = &quot;inventory&quot;
15:20:16 		namespace = &quot;urn:opendaylight:inventory&quot;
15:20:16 		shard-strategy = &quot;module&quot;
15:20:16 	}
&lt;p&gt;,&lt;br/&gt;
15:20:16 	&lt;/p&gt;
{
15:20:16 		name = &quot;topology&quot;
15:20:16 		namespace = &quot;urn:TBD:params:xml:ns:yang:network-topology&quot;
15:20:16 		shard-strategy = &quot;module&quot;
15:20:16 	}
&lt;p&gt;,&lt;br/&gt;
15:20:16 	&lt;/p&gt;
{
15:20:16 		name = &quot;toaster&quot;
15:20:16 		namespace = &quot;http://netconfcentral.org/ns/toaster&quot;
15:20:16 		shard-strategy = &quot;module&quot;
15:20:16 	}
&lt;p&gt;,&lt;br/&gt;
15:20:16 	&lt;/p&gt;
{
15:20:16 		name = &quot;car&quot;
15:20:16 		namespace = &quot;urn:opendaylight:params:xml:ns:yang:controller:config:sal-clustering-it:car&quot;
15:20:16 		shard-strategy = &quot;module&quot;
15:20:16 	}
&lt;p&gt;,&lt;br/&gt;
15:20:16 	&lt;/p&gt;
{
15:20:16 		name = &quot;people&quot;
15:20:16 		namespace = &quot;urn:opendaylight:params:xml:ns:yang:controller:config:sal-clustering-it:people&quot;
15:20:16 		shard-strategy = &quot;module&quot;
15:20:16 	}
&lt;p&gt;,&lt;br/&gt;
15:20:16 	&lt;/p&gt;
{
15:20:16 		name = &quot;car-people&quot;
15:20:16 		namespace = &quot;urn:opendaylight:params:xml:ns:yang:controller:config:sal-clustering-it:car-people&quot;
15:20:16 		shard-strategy = &quot;module&quot;
15:20:16 	}
&lt;p&gt;15:20:16 ]&lt;br/&gt;
15:20:16 Dump module-shards.conf&lt;br/&gt;
15:20:16 module-shards = [&lt;br/&gt;
15:20:16 	{&lt;br/&gt;
15:20:16 		name = &quot;default&quot;&lt;br/&gt;
15:20:16 		shards = [&lt;br/&gt;
15:20:16 			&lt;/p&gt;
{
15:20:16 				name = &quot;default&quot;
15:20:16 				replicas = [&quot;member-1&quot;,
15:20:16 				&quot;member-2&quot;,
15:20:16 				&quot;member-3&quot;]
15:20:16 			}
&lt;p&gt;15:20:16 		]&lt;br/&gt;
15:20:16 	},&lt;br/&gt;
15:20:16 	{&lt;br/&gt;
15:20:16 		name = &quot;inventory&quot;&lt;br/&gt;
15:20:16 		shards = [&lt;br/&gt;
15:20:16 			&lt;/p&gt;
{
15:20:16 				name=&quot;inventory&quot;
15:20:16 				replicas = [&quot;member-1&quot;,
15:20:16 				&quot;member-2&quot;,
15:20:16 				&quot;member-3&quot;]
15:20:16 			}
&lt;p&gt;15:20:16 		]&lt;br/&gt;
15:20:16 	},&lt;br/&gt;
15:20:16 	{&lt;br/&gt;
15:20:16 		name = &quot;topology&quot;&lt;br/&gt;
15:20:16 		shards = [&lt;br/&gt;
15:20:16 			&lt;/p&gt;
{
15:20:16 				name=&quot;topology&quot;
15:20:16 				replicas = [&quot;member-1&quot;,
15:20:16 				&quot;member-2&quot;,
15:20:16 				&quot;member-3&quot;]
15:20:16 			}
&lt;p&gt;15:20:16 		]&lt;br/&gt;
15:20:16 	},&lt;br/&gt;
15:20:16 	{&lt;br/&gt;
15:20:16 		name = &quot;toaster&quot;&lt;br/&gt;
15:20:16 		shards = [&lt;br/&gt;
15:20:16 			&lt;/p&gt;
{
15:20:16 				name=&quot;toaster&quot;
15:20:16 				replicas = [&quot;member-1&quot;,
15:20:16 				&quot;member-2&quot;,
15:20:16 				&quot;member-3&quot;]
15:20:16 			}
&lt;p&gt;15:20:16 		]&lt;br/&gt;
15:20:16 	},&lt;br/&gt;
15:20:16 	{&lt;br/&gt;
15:20:16 		name = &quot;car&quot;&lt;br/&gt;
15:20:16 		shards = [&lt;br/&gt;
15:20:16 			&lt;/p&gt;
{
15:20:16 				name=&quot;car&quot;
15:20:16 				replicas = [&quot;member-1&quot;,
15:20:16 				&quot;member-2&quot;,
15:20:16 				&quot;member-3&quot;]
15:20:16 			}
&lt;p&gt;15:20:16 		]&lt;br/&gt;
15:20:16 	},&lt;br/&gt;
15:20:16 	{&lt;br/&gt;
15:20:16 		name = &quot;people&quot;&lt;br/&gt;
15:20:16 		shards = [&lt;br/&gt;
15:20:16 			&lt;/p&gt;
{
15:20:16 				name=&quot;people&quot;
15:20:16 				replicas = [&quot;member-1&quot;,
15:20:16 				&quot;member-2&quot;,
15:20:16 				&quot;member-3&quot;]
15:20:16 			}
&lt;p&gt;15:20:16 		]&lt;br/&gt;
15:20:16 	},&lt;br/&gt;
15:20:16 	{&lt;br/&gt;
15:20:16 		name = &quot;car-people&quot;&lt;br/&gt;
15:20:16 		shards = [&lt;br/&gt;
15:20:16 			&lt;/p&gt;
{
15:20:16 				name=&quot;car-people&quot;
15:20:16 				replicas = [&quot;member-1&quot;,
15:20:16 				&quot;member-2&quot;,
15:20:16 				&quot;member-3&quot;]
15:20:16 			}
&lt;p&gt;15:20:16 		]&lt;br/&gt;
15:20:16 	}&lt;br/&gt;
15:20:16 ]&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="26129">CONTROLLER-1575</key>
            <summary>Akka artery fails with java.lang.OutOfMemoryError: Direct buffer memory</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="ecelgp">Luis Gomez</reporter>
                        <labels>
                    </labels>
                <created>Tue, 10 Jan 2017 20:22:26 +0000</created>
                <updated>Thu, 19 Oct 2017 22:32:36 +0000</updated>
                            <resolved>Tue, 19 Sep 2017 15:39:38 +0000</resolved>
                                    <version>0.4.0</version>
                                                    <component>clustering</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>5</watches>
                                                                                                                <comments>
                            <comment id="51664" author="rovarga" created="Wed, 11 Jan 2017 12:39:38 +0000"  >&lt;p&gt;What is the RAM/disk situation on the VM running the cluster nodes?&lt;/p&gt;

&lt;p&gt;This looks like we are running out of OS memory or disk space for aeron files &amp;#8211; more likely the former.&lt;/p&gt;

&lt;p&gt;It may be also the case that we are hitting MaxDirectMemorySize limit &amp;#8211; what is the output of &apos;java -XX:+PrintFlagsFinal -version | fgrep MaxDirect&apos; on the target environment?&lt;/p&gt;</comment>
                            <comment id="51665" author="rovarga" created="Wed, 11 Jan 2017 13:09:57 +0000"  >&lt;p&gt;The stack trace indicates that artery is attempting to allocate direct buffer (i.e. off-heap) and failing that &amp;#8211; which indicates VM exhaustion on the OS side.&lt;/p&gt;

&lt;p&gt;We need to understand if the problem comes from too many buffers (like a leak), or the OS cannot satisfy the default pool size of 128*256KiB + 32*2MiB.&lt;/p&gt;</comment>
                            <comment id="51666" author="rovarga" created="Wed, 11 Jan 2017 13:46:15 +0000"  >&lt;p&gt;As a further monitoring request for CSIT jobs, aside from monitoring heap, can we also monitor java.nio:type=BufferPool,name=direct and java.nio:type=BufferPool,name=mapped beans?&lt;/p&gt;

&lt;p&gt;The former would be useful in identifying this allocation failure.&lt;/p&gt;</comment>
                            <comment id="51667" author="vrpolak" created="Wed, 11 Jan 2017 15:45:40 +0000"  >&lt;p&gt;Projects were reverted back from artery to netty for now.&lt;br/&gt;
Controller: &lt;a href=&quot;https://git.opendaylight.org/gerrit/50220&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/50220&lt;/a&gt;&lt;br/&gt;
Integration/Distribution: &lt;a href=&quot;https://git.opendaylight.org/gerrit/50221&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/50221&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="51668" author="tpantelis" created="Wed, 11 Jan 2017 16:43:30 +0000"  >&lt;p&gt;The problem is that I had set maximum-frame-size (i.e. maximum serialized message size) to 1G to allow for large messages. Little did I know that akka allocates direct ByteBuffers using maximum-frame-size from a reused pool (governed by buffer-pool-size). The default settings are&lt;/p&gt;

&lt;p&gt;  maximum-frame-size = 256 KiB&lt;br/&gt;
  buffer-pool-size = 128&lt;/p&gt;

&lt;p&gt;which is ~32M which is safely below the default MaxDirectMemorySize of 64M. But with maximum-frame-size of 1G it dies on the first ByteBuffer allocation as MaxDirectMemorySize is exceeded.&lt;/p&gt;

&lt;p&gt;The message size limit is problematic for ReadDataReply messages as they can be arbitrarily large and we can&apos;t assume any reasonable limit. With netty tcp we set maximum-frame-size to ~400M (don&apos;t know why that was chosen) which provides decent cushion (so far only I&apos;ve only seen one case where this was exceeded). But setting it that high with artery is problematic. We can increase the MaxDirectMemorySize to 512 or more and fiddle with the maximum-frame-size/buffer-pool-size appropriately but that&apos;s still fragile plus buffer-pool-size &quot;is not a hard upper limit on number of created buffers. Additional buffers will be created if needed&quot;, and, if so, they&apos;re just GCed and not reused in the pool. So it seems akka has no protection against exceeding MaxDirectMemorySize (e.g. maybe using HeapByteBuffer instead). They contend you should not send large messages but either chunk or stream by other means. It seems we&apos;ll have to do that for ReadDataReply messages and, in fact, probably any message containing NormalizedNode (we already do that with InstallSnapshot in raft). Perhaps this can be built into the new FE/BE stuff. &lt;/p&gt;

&lt;p&gt;Until we have a solution for this we&apos;ll have to hold off on using artery.&lt;/p&gt;</comment>
                            <comment id="51669" author="tpantelis" created="Wed, 11 Jan 2017 19:10:30 +0000"  >&lt;p&gt;I created an issue in akka: &lt;a href=&quot;https://github.com/akka/akka/issues/22133&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/akka/akka/issues/22133&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="51670" author="rovarga" created="Wed, 11 Jan 2017 21:06:32 +0000"  >&lt;p&gt;Agreeed, the artery codebase looks ... strange to say the least. When the buffer is allocated, the message is already reassembled and the size is known &amp;#8211; hence a pool of buffers of differing (powers-of-two) sizes would be more efficient use of memory.&lt;/p&gt;

&lt;p&gt;Overall I think we need to dig very deep into akka for alternative ways of interfacing with remoting, as the current mode of operation and the abstraction layers provided are more harmful than helpful.&lt;/p&gt;</comment>
                            <comment id="51671" author="rovarga" created="Wed, 11 Jan 2017 21:16:28 +0000"  >&lt;p&gt;To aleborate: the entire akka.serialization.Serializer concept revolves around byte[], which means the message has to be reassembled into a contiguous memory area &amp;#8211; direct buffers or not, it is completely wasteful.&lt;/p&gt;

&lt;p&gt;Hence it would be preferable if akka could pin the Aeron buffers (hey, they are memory-mapped files), do the minimum of its processing on the envelope and then present the scattered buffers as an InputStream for deserialization.&lt;/p&gt;</comment>
                            <comment id="51672" author="tpantelis" created="Wed, 11 Jan 2017 21:34:25 +0000"  >&lt;p&gt;yup. Their remoting framework is designed for smallish messages. In order to use it we&apos;ll have to follow their &quot;rules/guidelines&quot; and chunk larger messages. Or use some other way (unknown at this point) to interface with remoting which will likely take a lot of effort and require significant refactoring of our code.&lt;/p&gt;</comment>
                            <comment id="51673" author="vladimir.lavor@pantheon.sk" created="Mon, 16 Jan 2017 17:10:50 +0000"  >&lt;p&gt;Tested with reverted akka.conf, every node started without OutOfMemoryError with default heap memory value. &lt;/p&gt;

&lt;p&gt;One note: change &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/50129/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/50129/&lt;/a&gt; should be reverted as well&lt;/p&gt;

&lt;p&gt;After start and sometimes when there is an DS action, this warning can be seen (which have not been there before):&lt;br/&gt;
2017-01-16 16:11:57,360 | WARN  | lt-dispatcher-26 | ShardManager                     | 213 - org.opendaylight.controller.sal-distributed-datastore - 1.5.0.SNAPSHOT | Supervisor Strategy caught unexpected exception - resuming&lt;br/&gt;
java.lang.IllegalArgumentException: Unhandled node type 2&lt;/p&gt;

&lt;p&gt;Log: &lt;a href=&quot;http://pastebin.com/68NH2Yic&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://pastebin.com/68NH2Yic&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This appears also in single odl instance after restart as described here: &lt;a href=&quot;https://bugs.opendaylight.org/show_bug.cgi?id=7515&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://bugs.opendaylight.org/show_bug.cgi?id=7515&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Full logs:&lt;br/&gt;
member-1: &lt;a href=&quot;http://pastebin.com/8Jv1JhSn&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://pastebin.com/8Jv1JhSn&lt;/a&gt;&lt;br/&gt;
member-2: &lt;a href=&quot;http://pastebin.com/4BwU7d3z&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://pastebin.com/4BwU7d3z&lt;/a&gt;&lt;br/&gt;
member-3: &lt;a href=&quot;http://pastebin.com/e6ZEkAN0&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://pastebin.com/e6ZEkAN0&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="51674" author="tpantelis" created="Mon, 16 Jan 2017 19:38:05 +0000"  >&lt;p&gt;Looks like it needs to handle ModificationType.UNMODIFIED.&lt;/p&gt;</comment>
                            <comment id="51675" author="tpantelis" created="Tue, 17 Jan 2017 09:35:54 +0000"  >&lt;p&gt;Submitted &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/50535/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/50535/&lt;/a&gt;. This actually was introduced by the pipe-lining changes.&lt;/p&gt;

&lt;p&gt;(In reply to Tom Pantelis from comment #11)&lt;br/&gt;
&amp;gt; Looks like it needs to handle ModificationType.UNMODIFIED.&lt;/p&gt;</comment>
                            <comment id="51676" author="vrpolak" created="Tue, 17 Jan 2017 12:13:05 +0000"  >&lt;p&gt;&amp;gt; Unhandled node type 2&lt;/p&gt;

&lt;p&gt;That particular symptom s tracked as &lt;a href=&quot;https://bugs.opendaylight.org/show_bug.cgi?id=7549&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://bugs.opendaylight.org/show_bug.cgi?id=7549&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This Bug should be about Artery and OutOfMemoryError.&lt;/p&gt;</comment>
                            <comment id="51677" author="ajayl.bro@gmail.com" created="Tue, 19 Sep 2017 00:56:31 +0000"  >&lt;p&gt;If I follow correctly, artery was disabled as a short-term solution for this OOM issue. Is there anything planned to address the OOM and re-enable artery?&lt;/p&gt;</comment>
                            <comment id="51678" author="tpantelis" created="Tue, 19 Sep 2017 01:09:23 +0000"  >&lt;p&gt;(In reply to Ajay L from comment #14)&lt;br/&gt;
&amp;gt; If I follow correctly, artery was disabled as a short-term solution for this&lt;br/&gt;
&amp;gt; OOM issue. Is there anything planned to address the OOM and re-enable artery?&lt;/p&gt;

&lt;p&gt;yeah - we&apos;d like to re-enable artery at some point after tell-based protocol is made the default. Of course it will require testing. Would you be able to work on this?&lt;/p&gt;</comment>
                            <comment id="51679" author="ajayl.bro@gmail.com" created="Tue, 19 Sep 2017 15:39:38 +0000"  >&lt;p&gt;Yes we would definitely like to help with that. Let me know..&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_10208" key="com.atlassian.jira.plugin.system.customfieldtypes:textfield">
                        <customfieldname>External issue ID</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>7518</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=7518]]></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="10320"><![CDATA[Nitrogen]]></customfieldvalue>

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

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