Nihal Jain created HBASE-20699: ---------------------------------- Summary: QuataCache should cancel the QuotaRefresherChore service inside its stop() Key: HBASE-20699 URL: https://issues.apache.org/jira/browse/HBASE-20699 Project: HBase Issue Type: Bug Reporter: Nihal Jain Assignee: Nihal Jain
*ANALYSIS* * * Called from HRegionServer.run() in case rs is aborted for some reason: {code:java} // Stop the quota manager if (rsQuotaManager != null) { rsQuotaManager.stop(); } {code} * Inside {{RegionServerRpcQuotaManager.stop()}}: {code:java} public void stop() { if (isQuotaEnabled()) { quotaCache.stop("shutdown"); } } {code} * {{QuotaCache starts QuotaRefresherChore in}}{{ QuotaCache.start()}}: {code:java} public void start() throws IOException { stopped = false; // TODO: This will be replaced once we have the notification bus ready. Configuration conf = rsServices.getConfiguration(); int period = conf.getInt(REFRESH_CONF_KEY, REFRESH_DEFAULT_PERIOD); refreshChore = new QuotaRefresherChore(period, this); rsServices.getChoreService().scheduleChore(refreshChore); } {code} * {{QuotaCache stop should cancel refreshChore inside }}{{QuotaCache.stop()}}: {code:java} @Override public void stop(final String why) { stopped = true; } {code} *IMPACT:* QuotaRefresherChore may cause some retrying operation to delay rs abort -- This message was sent by Atlassian JIRA (v7.6.3#76005)