This issue can be seen in all releases after 9.0.3. Steps to replicate: Run DiskJournalTest and modify the run configuration in IntelliJ to Repeat: Untill failure This causes memory heap to raise indefinitely as seen in picture:
Also it can be seen in the logs when repeating the tests:
[main] ERROR io.netty.util.ResourceLeakDetector - LEAK: ByteBuf.release() was not called before it's garbage-collected. See https://netty.io/wiki/reference-counted-objects.html for more information.
Recent access records:
Created at:
io.netty.buffer.PooledByteBufAllocator.newHeapBuffer(PooledByteBufAllocator.java:387)
io.netty.buffer.AbstractByteBufAllocator.heapBuffer(AbstractByteBufAllocator.java:169)
io.atomix.storage.journal.DiskFileAccess.allocateBuffer(DiskFileAccess.java:52)
io.atomix.storage.journal.DiskFileAccess.newFileWriter(DiskFileAccess.java:42)
io.atomix.storage.journal.DiskFileAccess.newFileWriter(DiskFileAccess.java:24)
io.atomix.storage.journal.JournalSegment$Inactive.activate(JournalSegment.java:74)
io.atomix.storage.journal.JournalSegment.activate(JournalSegment.java:158)
io.atomix.storage.journal.JournalSegment.acquire(JournalSegment.java:152)
io.atomix.storage.journal.JournalSegment.createReader(JournalSegment.java:203)
io.atomix.storage.journal.SegmentedByteBufReader.rewind(SegmentedByteBufReader.java:92)
io.atomix.storage.journal.SegmentedByteBufReader.reset(SegmentedByteBufReader.java:63)
io.atomix.storage.journal.SegmentedJournalReader.reset(SegmentedJournalReader.java:51)
io.atomix.storage.journal.AbstractJournalTest.testWriteReadCommittedEntries(AbstractJournalTest.java:296)
java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
java.base/java.lang.reflect.Method.invoke(Method.java:580)
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
org.junit.runners.ParentRunner.run(ParentRunner.java:413)
org.junit.runners.Suite.runChild(Suite.java:128)
org.junit.runners.Suite.runChild(Suite.java:27)
org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
org.junit.runners.ParentRunner.run(ParentRunner.java:413)
org.junit.runner.JUnitCore.run(JUnitCore.java:137)
com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38)
com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:30)
com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35)
com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:232)
com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55)
This issue was also observed in Lighty.io with this LOG message and uncontrollable heap rising:
This issue can be seen in all releases after 9.0.3.
Steps to replicate:
Run
DiskJournalTest
and modify the run configuration in IntelliJ toRepeat: Untill failure
This causes memory heap to raise indefinitely as seen in picture:
Also it can be seen in the logs when repeating the tests:
[main] ERROR io.netty.util.ResourceLeakDetector - LEAK: ByteBuf.release() was not called before it's garbage-collected. See https://netty.io/wiki/reference-counted-objects.html for more information. Recent access records: Created at: io.netty.buffer.PooledByteBufAllocator.newHeapBuffer(PooledByteBufAllocator.java:387) io.netty.buffer.AbstractByteBufAllocator.heapBuffer(AbstractByteBufAllocator.java:169) io.atomix.storage.journal.DiskFileAccess.allocateBuffer(DiskFileAccess.java:52) io.atomix.storage.journal.DiskFileAccess.newFileWriter(DiskFileAccess.java:42) io.atomix.storage.journal.DiskFileAccess.newFileWriter(DiskFileAccess.java:24) io.atomix.storage.journal.JournalSegment$Inactive.activate(JournalSegment.java:74) io.atomix.storage.journal.JournalSegment.activate(JournalSegment.java:158) io.atomix.storage.journal.JournalSegment.acquire(JournalSegment.java:152) io.atomix.storage.journal.JournalSegment.createReader(JournalSegment.java:203) io.atomix.storage.journal.SegmentedByteBufReader.rewind(SegmentedByteBufReader.java:92) io.atomix.storage.journal.SegmentedByteBufReader.reset(SegmentedByteBufReader.java:63) io.atomix.storage.journal.SegmentedJournalReader.reset(SegmentedJournalReader.java:51) io.atomix.storage.journal.AbstractJournalTest.testWriteReadCommittedEntries(AbstractJournalTest.java:296) java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) java.base/java.lang.reflect.Method.invoke(Method.java:580) org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59) org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56) org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100) org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366) org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103) org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63) org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) org.junit.runners.ParentRunner.run(ParentRunner.java:413) org.junit.runners.Suite.runChild(Suite.java:128) org.junit.runners.Suite.runChild(Suite.java:27) org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) org.junit.runners.ParentRunner.run(ParentRunner.java:413) org.junit.runner.JUnitCore.run(JUnitCore.java:137) com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69) com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38) com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:30) com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35) com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:232) com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55)
This issue was also observed in Lighty.io with this LOG message and uncontrollable heap rising: