[ 
https://issues.apache.org/jira/browse/CASSANDRA-13906?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16188968#comment-16188968
 ] 

Ariel Weisberg commented on CASSANDRA-13906:
--------------------------------------------

I agree reference counting in Java is fraught due to the lack of Destructors 
and other plumbing.
 
So do we always expect the refcnt to be one or some known number? Then we 
should assert that at runtime and take an error path if it's not true (after 
releasing the resources) or maybe just do rate limited logging.

If use after free is a concern we might want to make sure the buffer is set to 
null so we get an NPE instead of a segfault. Then the  code incorrectly using 
the buffer will signal an error as well.

> Properly close StreamCompressionInputStream to release any ByteBuf
> ------------------------------------------------------------------
>
>                 Key: CASSANDRA-13906
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-13906
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Jason Brown
>            Assignee: Jason Brown
>
> When running dtests for trunk (4.x) that perform some streaming, sometimes a 
> {{ByteBuf}} is not released properly, and we get this error in the logs 
> (causing the dtest to fail):
> {code}
> ERROR [MessagingService-NettyOutbound-Thread-4-2] 2017-09-26 13:42:37,940 
> Slf4JLogger.java:176 - LEAK: ByteBuf.release() was not called before it's 
> garbage-collected. Enable advanced leak reporting to find out where the leak 
> occurred. To enable advanced leak reporting, specify the JVM option 
> '-Dio.netty.leakDetection.level=advanced' or call 
> ResourceLeakDetector.setLevel() See 
> http://netty.io/wiki/reference-counted-objects.html for more information.
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to