[ https://issues.apache.org/jira/browse/HBASE-4833?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
nkeywal updated HBASE-4833: --------------------------- Attachment: 4833_trunk_hregionserver.patch > HRegionServer stops could be 0,5s faster > ---------------------------------------- > > Key: HBASE-4833 > URL: https://issues.apache.org/jira/browse/HBASE-4833 > Project: HBase > Issue Type: Improvement > Components: regionserver, test > Affects Versions: 0.94.0 > Environment: all > Reporter: nkeywal > Assignee: nkeywal > Priority: Minor > Attachments: 4833_trunk_hregionserver.patch > > > The current implementation of HRegionServer#stop is > {noformat} > public void stop(final String msg) { > this.stopped = true; > LOG.info("STOPPED: " + msg); > synchronized (this) { > // Wakes run() if it is sleeping > notifyAll(); // FindBugs NN_NAKED_NOTIFY > } > } > {noformat} > The notification is sent on the wrong object and does nothing. As a > consequence, the region server continues to sleep instead of waking up and > stopping immediately. A correct implementation is: > {noformat} > public void stop(final String msg) { > this.stopped = true; > LOG.info("STOPPED: " + msg); > // Wakes run() if it is sleeping > sleeper.skipSleepCycle(); > } > {noformat} > Then the region server stops immediately. This makes the region server stops > 0,5s faster on average, which is quite useful for unit tests. > However, with this fix, TestRegionServerCoprocessorExceptionWithAbort does > not work. > It likely because the code does no expect the region server to stop that > fast. See HBASE-4832 -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira