You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Bryan Beaudreault (Jira)" <ji...@apache.org> on 2023/08/23 18:23:00 UTC
[jira] [Resolved] (HBASE-28010) Connection attributes can become corrupted on the server side
[ 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)