Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-20699

QuotaCache should cancel the QuotaRefresherChore service inside its stop()

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 3.0.0-alpha-1, 2.1.0, 2.0.1
    • None
    • Reviewed

    Description

      ANALYSIS

      • Called from HRegionServer.run() in case a rs is aborted:
          // Stop the quota manager
          if (rsQuotaManager != null) {
            rsQuotaManager.stop();
          }
      
      • Inside RegionServerRpcQuotaManager.stop():
        public void stop() {
          if (isQuotaEnabled()) {
            quotaCache.stop("shutdown");
          }
        }
      
      • QuotaCache starts QuotaRefresherChore in QuotaCache.start():
        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);
        }
      
      • QuotaCache does not cancel refreshChore inside QuotaCache.stop():
        @Override
        public void stop(final String why) {
          stopped = true;
        }
      

      IMPACT:
      QuotaRefresherChore may cause some retrying operation to delay rs abort

      Attachments

        1. HBASE-20699.master.001.patch
          1.0 kB
          Nihal Jain
        2. HBASE-20699.master.002.patch
          1.0 kB
          Nihal Jain

        Activity

          People

            nihaljain.cs Nihal Jain
            nihaljain.cs Nihal Jain
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: