[
https://issues.apache.org/jira/browse/HBASE-26869?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
chenglei updated HBASE-26869:
-----------------------------
Description:
When inspect HBASE-26812, I find that if {{RpcCallContext}} is null,
{{RSRpcServices.scan}} does not set {{ServerCall.rpcCallback}} and directly
closes {{RegionScannerImpl}}, but it does not deep clone the result cells , so
these cells may be returned to the {{ByteBuffAllocator}} and may be overwritten
before the caller reads them, similar as HBASE-26036, and at the same time, if
{{RpcCallContext}} is null, when {{RSRpcServices.scan}} return partial results,
it does not invoke {{RegionScannerImpl.shipped}} to release the used resources
such as {{HFileScanner}}, pooled {{ByteBuffer}} etc.
No matter {{ShortCircuitingClusterConnection}} should be removed or not, I
think this {{RSRpcServices.scan}} problem should fix for future
maintainability.
was:
When inspect HBASAE-26812, I find that if {{RpcCallContext}} is null,
{{RSRpcServices.scan}} does not set {{ServerCall.rpcCallback}} and directly
closes {{RegionScannerImpl}}, but it does not deep clone the result cells , so
these cells may be returned to the {{ByteBuffAllocator}} and may be overwritten
before the caller reads them, similar as HBASE-26036, and at the same time, if
{{RpcCallContext}} is null, when {{RSRpcServices.scan}} return partial results,
it does not invoke {{RegionScannerImpl.shipped}} to release the used resources
such as {{HFileScanner}}, pooled {{ByteBuffer}} etc.
No matter {{ShortCircuitingClusterConnection}} should be removed or not, I
think this {{RSRpcServices.scan}} problem should fix for future
maintainability.
> RSRpcServices.scan should deep clone cells when RpcCallContext is null
> ----------------------------------------------------------------------
>
> Key: HBASE-26869
> URL: https://issues.apache.org/jira/browse/HBASE-26869
> Project: HBase
> Issue Type: Bug
> Components: regionserver
> Affects Versions: 3.0.0-alpha-2, 2.4.11
> Reporter: chenglei
> Assignee: chenglei
> Priority: Major
> Fix For: 2.5.0, 3.0.0-alpha-3, 2.4.12
>
>
> When inspect HBASE-26812, I find that if {{RpcCallContext}} is null,
> {{RSRpcServices.scan}} does not set {{ServerCall.rpcCallback}} and directly
> closes {{RegionScannerImpl}}, but it does not deep clone the result cells ,
> so these cells may be returned to the {{ByteBuffAllocator}} and may be
> overwritten before the caller reads them, similar as HBASE-26036, and at the
> same time, if {{RpcCallContext}} is null, when {{RSRpcServices.scan}} return
> partial results, it does not invoke {{RegionScannerImpl.shipped}} to release
> the used resources such as {{HFileScanner}}, pooled {{ByteBuffer}} etc.
> No matter {{ShortCircuitingClusterConnection}} should be removed or not, I
> think this {{RSRpcServices.scan}} problem should fix for future
> maintainability.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)