You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ap...@apache.org on 2015/09/04 03:38:28 UTC
[3/6] hbase git commit: HBASE-14359 HTable#close will hang forever if
unchecked error/exception thrown in AsyncProcess#sendMultiAction (Victor Xu)
HBASE-14359 HTable#close will hang forever if unchecked error/exception thrown in AsyncProcess#sendMultiAction (Victor Xu)
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/1e411c8e
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/1e411c8e
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/1e411c8e
Branch: refs/heads/branch-1.2
Commit: 1e411c8ead80067bc4c57c4d357b05e161d29eed
Parents: df17a69
Author: Andrew Purtell <ap...@apache.org>
Authored: Thu Sep 3 17:48:45 2015 -0700
Committer: Andrew Purtell <ap...@apache.org>
Committed: Thu Sep 3 17:49:14 2015 -0700
----------------------------------------------------------------------
.../hadoop/hbase/client/AsyncProcess.java | 21 ++++++++++++--------
1 file changed, 13 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/1e411c8e/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncProcess.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncProcess.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncProcess.java
index 9c5e48d..99986ac 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncProcess.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncProcess.java
@@ -978,15 +978,20 @@ class AsyncProcess {
} else {
try {
pool.submit(runnable);
- } catch (RejectedExecutionException ree) {
- // This should never happen. But as the pool is provided by the end user, let's secure
- // this a little.
+ } catch (Throwable t) {
+ if (t instanceof RejectedExecutionException) {
+ // This should never happen. But as the pool is provided by the end user,
+ // let's secure this a little.
+ LOG.warn("#" + id + ", the task was rejected by the pool. This is unexpected." +
+ " Server is " + server.getServerName(), t);
+ } else {
+ // see #HBASE-14359 for more details
+ LOG.warn("Caught unexpected exception/error: ", t);
+ }
decTaskCounters(multiAction.getRegions(), server);
- LOG.warn("#" + id + ", the task was rejected by the pool. This is unexpected." +
- " Server is " + server.getServerName(), ree);
- // We're likely to fail again, but this will increment the attempt counter, so it will
- // finish.
- receiveGlobalFailure(multiAction, server, numAttempt, ree);
+ // We're likely to fail again, but this will increment the attempt counter,
+ // so it will finish.
+ receiveGlobalFailure(multiAction, server, numAttempt, t);
}
}
}