You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Nihal Jain (JIRA)" <ji...@apache.org> on 2018/06/07 12:06:00 UTC

[jira] [Created] (HBASE-20699) QuataCache should cancel the QuotaRefresherChore service inside its stop()

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)