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

Reference-Reaper detected leak while running FramingTest unit test cases

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Normal
    • Resolution: Fixed
    • 4.0-alpha1, 4.0
    • Test/unit
    • None
    • Correctness - Test Failure
    • Low
    • Normal
    • Unit Test
    • All
    • None
    • 4.0
    • 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

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

            Dates

              Created:
              Updated:
              Resolved: