[
https://issues.apache.org/jira/browse/GEODE-6662?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16820428#comment-16820428
]
ASF subversion and git services commented on GEODE-6662:
--------------------------------------------------------
Commit 064892cc1ea60045fe43909eb9782a4b3fb314dd in geode's branch
refs/heads/develop from Bruce Schuchardt
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=064892c ]
GEODE-6662 NioPlainEngine.ensureWrappedCapacity
Fixing a memory leak:
Return the old buffer to the Buffers pool after copying its
contents to a newly allocated buffer.
> NioPlainEngine.ensureWrappedCapacity does not return old buffer when
> allocating new one
> ---------------------------------------------------------------------------------------
>
> Key: GEODE-6662
> URL: https://issues.apache.org/jira/browse/GEODE-6662
> Project: Geode
> Issue Type: Bug
> Components: messaging
> Reporter: Darrel Schneider
> Priority: Major
> Time Spent: 10m
> Remaining Estimate: 0h
>
> NioPlainEngine.ensureWrappedCapacity does not return old buffer when
> allocating new one.
> The problem is the last block of code that calls Buffers.acquireBuffer,
> copies the "oldBuffer" into it, but then does not return "oldBuffer". It
> should have called Buffers.releaseBuffer. These direct buffers can eventually
> get garbage collected but the reason we have a pool of direct buffers is that
> the jvm can be very slow about returning the direct, native, memory they use
> so this could cause an out of direct memory failure. It will also cause the
> stats maintained by Buffers tracking how much memory is allocated to never be
> decremented.
> It is possible that this block of code in ensureWrappedCapacity is dead code
> but it is hard to tell for sure.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)