John Blum created GEODE-10035:
---------------------------------

             Summary: The System property condition to use "direct" ByteBuffers 
in P2P is wrong
                 Key: GEODE-10035
                 URL: https://issues.apache.org/jira/browse/GEODE-10035
             Project: Geode
          Issue Type: Improvement
    Affects Versions: 1.14.3
            Reporter: John Blum


In the {{o.a.g.internal.net.ByteBuffer.useDirectBuffers}} class member (static) 
constant field 
([source|https://github.com/apache/geode/blob/rel/v1.14.3/geode-core/src/main/java/org/apache/geode/internal/net/BufferPool.java#L82-L83]),
 which is derived from either the "{{p2p.nodirectBuffers"}} OR the 
"{{gemfire.BufferPool.useHeapBuffers}}" System properties, the conditional 
logic is incorrect!

It should read:

{code:java}
  public static final boolean useDirectBuffers = !(
      Boolean.getBoolean("p2p.nodirectBuffers")
      || 
Boolean.getBoolean(GeodeGlossary.GEMFIRE_PREFIX+"BufferPool.useHeapBuffers")
);
{code}

The term "{{useHeapBuffers}}" implies that the buffer should created on the JVM 
Heap, and not in main memory as a "direct" ByteBuffer.

Setting the System property "{{gemfire.BufferPool.useHeapBuffers}}" to 
"{{true}}" would result in a direct ByteBuffer allocation as can be seen 
[here|https://github.com/apache/geode/blob/rel/v1.14.3/geode-core/src/main/java/org/apache/geode/internal/net/BufferPool.java#L104-L115],
 
rather than what should happen 
[here|https://github.com/apache/geode/blob/rel/v1.14.3/geode-core/src/main/java/org/apache/geode/internal/net/BufferPool.java#L117].





--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to