You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Darrel Schneider (JIRA)" <ji...@apache.org> on 2019/04/15 23:42:00 UTC

[jira] [Created] (GEODE-6662) NioPlainEngine.ensureWrappedCapacity does not return old buffer when allocating new one

Darrel Schneider created GEODE-6662:
---------------------------------------

             Summary: 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


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)