Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-15165

Reference-Reaper detected leak while running FramingTest unit test cases

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Normal
    • Resolution: Fixed
    • Fix Version/s: 4.0
    • Component/s: Test/unit
    • Labels:
      None
    • Bug Category:
      Correctness - Test Failure
    • Severity:
      Low
    • Complexity:
      Normal
    • Discovered By:
      Unit Test
    • Platform:
      All
    • Impacts:
      None
    • Since Version:
      4.0
    • Test and Documentation Plan:
      Hide

      Is a test fix.

      Show
      Is a test fix.

      Description

      Reference-Reaper detected leak while running FramingTest unit test cases. Here are the leak details:

      [junit-timeout] ERROR [Reference-Reaper] 2019-06-17 01:44:53,812 Ref.java:228 - LEAK DETECTED: a reference (org.apache.cassandra.utils.concurrent.Ref$State@15460327) to @876994034 was not released before the reference was garbage collected
      [junit-timeout] ERROR [Reference-Reaper] 2019-06-17 01:44:53,812 Ref.java:259 - Allocate trace org.apache.cassandra.utils.concurrent.Ref$State@15460327:
      [junit-timeout] Thread[main,5,main]
      [junit-timeout] 	at java.lang.Thread.getStackTrace(Thread.java:1559)
      [junit-timeout] 	at org.apache.cassandra.utils.concurrent.Ref$Debug.<init>(Ref.java:249)
      [junit-timeout] 	at org.apache.cassandra.utils.concurrent.Ref$State.<init>(Ref.java:179)
      [junit-timeout] 	at org.apache.cassandra.utils.concurrent.Ref.<init>(Ref.java:101)
      [junit-timeout] 	at org.apache.cassandra.utils.memory.BufferPool$Chunk.setAttachment(BufferPool.java:960)
      [junit-timeout] 	at org.apache.cassandra.utils.memory.BufferPool$Chunk.set(BufferPool.java:1100)
      [junit-timeout] 	at org.apache.cassandra.utils.memory.BufferPool$Chunk.get(BufferPool.java:1090)
      [junit-timeout] 	at org.apache.cassandra.utils.memory.BufferPool$LocalPool.tryGetInternal(BufferPool.java:721)
      [junit-timeout] 	at org.apache.cassandra.utils.memory.BufferPool$LocalPool.tryGet(BufferPool.java:706)
      [junit-timeout] 	at org.apache.cassandra.utils.memory.BufferPool$LocalPool.get(BufferPool.java:656)
      [junit-timeout] 	at org.apache.cassandra.utils.memory.BufferPool$LocalPool.access$000(BufferPool.java:535)
      [junit-timeout] 	at org.apache.cassandra.utils.memory.BufferPool.getAtLeast(BufferPool.java:129)
      [junit-timeout] 	at org.apache.cassandra.net.FramingTest.sequenceOfMessages(FramingTest.java:413)
      [junit-timeout] 	at org.apache.cassandra.net.FramingTest.testRandomSequenceOfMessages(FramingTest.java:265)
      [junit-timeout] 	at org.apache.cassandra.net.FramingTest.testSomeMessages(FramingTest.java:259)
      [junit-timeout] 	at org.apache.cassandra.net.FramingTest.testRandomLegacy(FramingTest.java:243)
      [junit-timeout] 	at org.apache.cassandra.net.FramingTest.testRandomLegacy(FramingTest.java:234)
      [junit-timeout] 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      [junit-timeout] 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      [junit-timeout] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      [junit-timeout] 	at java.lang.reflect.Method.invoke(Method.java:498)
      [junit-timeout] 	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
      [junit-timeout] 	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
      [junit-timeout] 	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
      [junit-timeout] 	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
      [junit-timeout] 	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
      [junit-timeout] 	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
      [junit-timeout] 	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
      [junit-timeout] 	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
      [junit-timeout] 	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
      [junit-timeout] 	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
      [junit-timeout] 	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
      [junit-timeout] 	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
      [junit-timeout] 	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
      [junit-timeout] 	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
      [junit-timeout] 	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
      [junit-timeout] 	at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:38)
      [junit-timeout] 	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:534)
      [junit-timeout] 	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1196)
      [junit-timeout] 	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:1041)
      

      “sliceAndConsume" method of ShareableBytes increases reference count. Reference acquired testRandomSequenceOfMessages method is not released which is causing the leak.

        Attachments

          Activity

            People

            • Assignee:
              n.v.harikrishna Venkata Harikrishna Nukala
              Reporter:
              n.v.harikrishna Venkata Harikrishna Nukala
              Authors:
              Venkata Harikrishna Nukala
              Reviewers:
              Aleksey Yeschenko
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: