[
https://issues.apache.org/jira/browse/HBASE-26087?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Xiaolin Ha resolved HBASE-26087.
--------------------------------
Fix Version/s: 2.3.7
2.4.6
3.0.0-alpha-2
2.5.0
Resolution: Fixed
Merged to master and branch2.3+. Thanks [~stack] for reviewing.
Branch master has an addendum for a findbugs fix.
> JVM crash when displaying RPC params by MonitoredRPCHandler
> -----------------------------------------------------------
>
> Key: HBASE-26087
> URL: https://issues.apache.org/jira/browse/HBASE-26087
> Project: HBase
> Issue Type: Bug
> Components: UI
> Affects Versions: 3.0.0-alpha-1, 2.0.0
> Reporter: Xiaolin Ha
> Assignee: Xiaolin Ha
> Priority: Major
> Fix For: 2.5.0, 3.0.0-alpha-2, 2.4.6, 2.3.7
>
>
> It is the same problem as HBASE-25981.
> The reason here is MonitoredRPCHandlerImpl uses the shallow copy of call
> param to displaying RPC info, but the param contains offheap request data.
> Thought when calling toMap() there is state checking for the monitored RPC,
> only RUNNING RPCs can read and display params, the state is ENUM type and
> like a constant in clone().
> So there exists circumstances that the state in the clone MonitoredRPCHandler
> is RUNNING, but the param still refers to the cloned MonitoredRPCHandler,
> whose state changed to be not RUNNING and param referred offheap ByteBuffer
> is released.
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)