[ https://issues.apache.org/jira/browse/GEODE-8506?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17198547#comment-17198547 ]
ASF subversion and git services commented on GEODE-8506: -------------------------------------------------------- Commit a11b9c076a72609ff00802c010b6e32262228776 in geode's branch refs/heads/develop from Bruce Schuchardt [ https://gitbox.apache.org/repos/asf?p=geode.git;h=a11b9c0 ] GEODE-8506: BufferPool returns byte buffers that may be much larger t… (#5525) * GEODE-8506: BufferPool returns byte buffers that may be much larger than requested Create a "slice" of the acquired buffer to return to the caller instead of returning a buffer larger than what was requested. On return we fish out the parent buffer and put it back in the pool. * cache reflection method, remove magic numbers in test and BufferPool The one dunit failure seems to be GEODE-7710 > BufferPool returns byte buffers that may be much larger than requested > ---------------------------------------------------------------------- > > Key: GEODE-8506 > URL: https://issues.apache.org/jira/browse/GEODE-8506 > Project: Geode > Issue Type: Improvement > Components: membership > Reporter: Bruce J Schuchardt > Assignee: Bruce J Schuchardt > Priority: Major > Labels: pull-request-available > Fix For: 1.14.0 > > > BufferPool manages several pools of direct-memory ByteBuffers. When asked > for a ByteBuffer of size X you may receive a buffer that is any size greater > than or equal to X. For users of this pool this is unexpected behavior and > is causing some trouble. > MessageStreamer, for instance, performs message "chunking" based on the size > of a socket's buffer size. It requests a byte buffer of that size and then > fills it over and over again with message chunks to be written to the socket. > But it does this based on the buffer's capacity, which may be much larger > than the expected buffer size. This results in incorrect chunking and > requires larger buffers in the receiver of these message chunks. > BufferPool should always return a buffer that has exactly the requested > capacity. It could be a _slice_ of a pooled buffer, for instance. That > would let it hand out a larger buffer while not confusing the code that > requested the buffer. -- This message was sent by Atlassian Jira (v8.3.4#803005)