[ https://issues.apache.org/jira/browse/HBASE-20699?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ted Yu updated HBASE-20699: --------------------------- Fix Version/s: 2.1.0 > QuotaCache 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 > Priority: Major > Fix For: 3.0.0, 2.1.0 > > Attachments: HBASE-20699.master.001.patch, > HBASE-20699.master.002.patch > > > *ANALYSIS* > * Called from {{HRegionServer.run()}} in case a rs is aborted: > {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 does not 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)