[ 
https://issues.apache.org/jira/browse/HBASE-28010?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Bryan Beaudreault resolved HBASE-28010.
---------------------------------------
    Fix Version/s: 3.0.0-beta-1
       Resolution: Fixed

> Connection attributes can become corrupted on the server side
> -------------------------------------------------------------
>
>                 Key: HBASE-28010
>                 URL: https://issues.apache.org/jira/browse/HBASE-28010
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Bryan Beaudreault
>            Assignee: Ray Mattingly
>            Priority: Blocker
>             Fix For: 2.6.0, 3.0.0-beta-1
>
>
> In ServerRpcConnection.processOneRpc, it calls processConnectionHeader and 
> then immediately calls callCleanupIfNeeded. The parsing of the ByteBuff into 
> the ConnectionHeader does not copy the bytes. We keep a reference to 
> ConnectionHeader for later use, but since the underlying ByteBuff gets 
> released in callCleanupIfNeeded, later requests can override the memory 
> locations that the ConnectionHeader points at.
> The unit tests we added dont catch this possibly because they don't send 
> enough requests to corrupt the buffers. It happens pretty quickly in a 
> deployed cluster.
> We need to copy the List<NameBytesPair> from the ConnectionHeader into a Map 
> before the buffer is released. This probably means we should remove 
> getConnectionHeader from the RpcCall interface and instead add 
> getConnectionAttributes.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to