[
https://issues.apache.org/jira/browse/HBASE-28146?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Duo Zhang updated HBASE-28146:
------------------------------
Summary: Remove ServerManager's rsAdmins map (was: ServerManager's
rsAdmins map should be thread safe)
> Remove ServerManager's rsAdmins map
> -----------------------------------
>
> Key: HBASE-28146
> URL: https://issues.apache.org/jira/browse/HBASE-28146
> Project: HBase
> Issue Type: Bug
> Components: master
> Affects Versions: 2.5.5
> Reporter: Ray Mattingly
> Assignee: Ray Mattingly
> Priority: Major
> Fix For: 2.6.0, 2.4.18, 2.5.7
>
>
> On 2.x [the ServerManager registers admins in a
> HashMap|https://github.com/apache/hbase/blob/branch-2/hbase-server/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java].
> This can result in thread safety issues — we recently observed an exception
> which caused a region to be indefinitely stuck in transition until we could
> manually intervene. We saw the following exception in the HMaster logs:
> {code:java}
> 2023-10-11 02:20:05.213 [RSProcedureDispatcher-pool-325] ERROR
> org.apache.hadoop.hbase.master.procedure.RSProcedureDispatcher: Unexpected
> error caught, this may cause the procedure to hang forever
> java.lang.ClassCastException: class java.util.HashMap$Node cannot be cast
> to class java.util.HashMap$TreeNode (java.util.HashMap$Node and
> java.util.HashMap$TreeNode are in module java.base of loader 'bootstrap')
> at java.util.HashMap$TreeNode.moveRootToFront(HashMap.java:1900)
> ~[?:?]
> at java.util.HashMap$TreeNode.treeify(HashMap.java:2016) ~[?:?]
> at java.util.HashMap.treeifyBin(HashMap.java:768) ~[?:?]
> at java.util.HashMap.putVal(HashMap.java:640) ~[?:?]
> at java.util.HashMap.put(HashMap.java:608) ~[?:?]
> at
> org.apache.hadoop.hbase.master.ServerManager.getRsAdmin(ServerManager.java:723){code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)