-
Shutdown command comes while RS is initializing, RS is marked as stopped
-
The cacheFlusher is not initialized due to
-
if (!isStopped() && !isAborted()) { initializeThreads(); }
-
But in normal start process, it still uses cacheFlusher without sanity check.
- As below code, metricsRegionServer is the meta-info variable.
this.metricsRegionServer = new MetricsRegionServer()
if (getConfiguration().getBoolean("hbase.regionserver.workers", true)) {
startServices();
}- And it is written, we should crash the RS node, but due to metricsRegionServer is already on RS node, so crash should change to shutdown.