6d1740d498
On failed RPC we expire the server and suspend expecting the resultant ServerCrashProcedure to wake us back up again. In tests, TestRSGroup hung because it failed to schedule a server expiration because the server was already expired undergoing processing (the test was shutting down). Deal with this case by having expire servers return false if unable to expire. Callers will then know where a ServerCrashProcedure has been scheduled or not. M hbase-server/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java Have expireServer return true if successful. M hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/RegionTransitionProcedure.java The log that included an exception whose message was the current procedure as a String totally baffled me. Make it more obvious what exception is. M hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/UnassignProcedure.java If failed expire of a server, wake our procedure -- do not suspend -- and presume ok to move region to CLOSED state (because going down or concurrent crashed server processing ongoing). |
||
---|---|---|
.. | ||
src | ||
pom.xml |