Ray Mattingly created HBASE-28146:
-------------------------------------

             Summary: ServerManager's rsAdmins map should be thread safe
                 Key: HBASE-28146
                 URL: https://issues.apache.org/jira/browse/HBASE-28146
             Project: HBase
          Issue Type: Bug
    Affects Versions: 2.5.5
            Reporter: Ray Mattingly
            Assignee: Ray Mattingly


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)

Reply via email to