[
https://issues.apache.org/jira/browse/HBASE-1000?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
stack updated HBASE-1000:
-------------------------
Fix Version/s: 0.19.0
Adding to 0.19.0. What I saw was as follows:
{code}
2008-12-03 22:54:53,507
[regionserver/0:0:0:0:0:0:0:0:60020.majorCompactionChecker] ERROR
org.apache.hadoop.hbase.regionserver.HRegionServer$MajorCompactionChecker:
Caught exception
java.nio.channels.ClosedSelectorException
at sun.nio.ch.SelectorImpl.lockAndDoSelect(Unknown Source)
at sun.nio.ch.SelectorImpl.selectNow(Unknown Source)
at sun.nio.ch.Util.releaseTemporarySelector(Unknown Source)
at sun.nio.ch.SocketAdaptor.connect(Unknown Source)
at
org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:299)
at org.apache.hadoop.ipc.Client$Connection.access$1700(Client.java:176)
at org.apache.hadoop.ipc.Client.getConnection(Client.java:772)
at org.apache.hadoop.ipc.Client.call(Client.java:685)
at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:216)
at $Proxy1.getListing(Unknown Source)
at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:82)
at
org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:59)
at $Proxy1.getListing(Unknown Source)
at org.apache.hadoop.hdfs.DFSClient.listPaths(DFSClient.java:569)
at
org.apache.hadoop.hdfs.DistributedFileSystem.listStatus(DistributedFileSystem.java:226)
at
org.apache.hadoop.hbase.regionserver.HStore.getLowestTimestamp(HStore.java:783)
at
org.apache.hadoop.hbase.regionserver.HStore.isMajorCompaction(HStore.java:975)
at
org.apache.hadoop.hbase.regionserver.HStore.isMajorCompaction(HStore.java:963)
at
org.apache.hadoop.hbase.regionserver.HRegion.isMajorCompaction(HRegion.java:2424)
at
org.apache.hadoop.hbase.regionserver.HRegionServer$MajorCompactionChecker.chore(HRegionServer.java:735)
at org.apache.hadoop.hbase.Chore.run(Chore.java:65)
2008-12-03 22:54:53,509
[regionserver/0:0:0:0:0:0:0:0:60020.majorCompactionChecker] ERROR
org.apache.hadoop.hbase.regionserver.HRegionServer$MajorCompactionChecker:
Caught exception
java.lang.NullPointerException
at org.apache.hadoop.ipc.Client$Connection.sendParam(Client.java:459)
at org.apache.hadoop.ipc.Client.call(Client.java:686)
at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:216)
at $Proxy1.getListing(Unknown Source)
at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:82)
at
org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:59)
at $Proxy1.getListing(Unknown Source)
at org.apache.hadoop.hdfs.DFSClient.listPaths(DFSClient.java:569)
at
org.apache.hadoop.hdfs.DistributedFileSystem.listStatus(DistributedFileSystem.java:226)
at
org.apache.hadoop.hbase.regionserver.HStore.getLowestTimestamp(HStore.java:783)
at
org.apache.hadoop.hbase.regionserver.HStore.isMajorCompaction(HStore.java:975)
at
org.apache.hadoop.hbase.regionserver.HStore.isMajorCompaction(HStore.java:963)
at
org.apache.hadoop.hbase.regionserver.HRegion.isMajorCompaction(HRegion.java:2424)
at
org.apache.hadoop.hbase.regionserver.HRegionServer$MajorCompactionChecker.chore(HRegionServer.java:735)
at org.apache.hadoop.hbase.Chore.run(Chore.java:65)
...
{code}
Kept doing above exception without a pause between.
Root issue was an OOME but nonetheless, should pause between.
> Sleeper.sleep does not go back to sleep when interrupted and no stop flag
> given.
> --------------------------------------------------------------------------------
>
> Key: HBASE-1000
> URL: https://issues.apache.org/jira/browse/HBASE-1000
> Project: Hadoop HBase
> Issue Type: Bug
> Components: util
> Reporter: Nitay Joffe
> Priority: Trivial
> Fix For: 0.19.0
>
> Attachments: hbase-1000.patch
>
>
> When interrupted, the Sleeper.sleep method should exit if the stop flag was
> given, otherwise it should continue sleeping. Currently it seems to exits
> regardless, which means the stop flag is meaningless.
> Here is the relevant code, from
> src/java/org/apache/hadoop/hbase/util/Sleeper.java:
> {code}
> public void sleep(final long startTime) {
> if (this.stop.get()) {
> return;
> }
> long now = System.currentTimeMillis();
> long waitTime = this.period - (now - startTime);
> if (waitTime > this.period) {
> LOG.warn("Calculated wait time > " + this.period +
> "; setting to this.period: " + System.currentTimeMillis() + ", " +
> startTime);
> }
> if (waitTime > 0) {
> try {
> Thread.sleep(waitTime);
> long slept = System.currentTimeMillis() - now;
> if (slept > (10 * this.period)) {
> LOG.warn("We slept " + slept + "ms, ten times longer than
> scheduled: " +
> this.period);
> }
> } catch(InterruptedException iex) {
> // We we interrupted because we're meant to stop? If not, just
> // continue ignoring the interruption
> if (this.stop.get()) {
> return;
> }
> }
> }
> }
> {code}
> Essentially, the 'if (waitTime > 0)' portion needs to change to a while loop
> so that the sleeping will continue after an interruption occurs. I'll attach
> a patch when I get around to fixing it.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.