lujie created HBASE-22050: ----------------------------- Summary: NPE happens while RS shutdown, due to atomic violation Key: HBASE-22050 URL: https://issues.apache.org/jira/browse/HBASE-22050 Project: HBase Issue Type: Bug Reporter: lujie
while RS shutdown, the RS#abort are called due to {code:java} handler.AssignRegionHandler: Fatal error occured while opening region hbase:meta,,1.1588230740, aborting... {code} And in abort: {code:java} 2428.if (rssStub != null && this.serverName != null) { 2429 ReportRSFatalErrorRequest.Builder builder = 2430. ReportRSFatalErrorRequest.newBuilder(); 2431. builder.setServer(ProtobufUtil.toServerName(this.serverName)); 2432 builder.setErrorMessage(msg); 2433 rssStub.reportRSFatalError(null, builder.build()); 2434 } {code} 2428-2434 are assumed to be atomic, but if it step in the 2429-2433, meanwhile RS#run: {code:java} 1149 // Make sure the proxy is down. 1150 if (this.rssStub != null) { 1151 this.rssStub = null; 1152 } {code} So the rssStub == null and NPE happens {code:java} 2019-03-14 04:49:53,016 WARN [RS_CLOSE_META-regionserver/hadoop12:16020-0] regionserver.HRegionServer: Unable to report fatal error to master java.lang.NullPointerException at org.apache.hadoop.hbase.regionserver.HRegionServer.abort(HRegionServer.java:2433) at org.apache.hadoop.hbase.regionserver.handler.AssignRegionHandler.handleException(AssignRegionHandler.java:154) at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:106) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) {code} I think we should avoid the NPE. -- This message was sent by Atlassian JIRA (v7.6.3#76005)