HBASE-14359 HTable#close will hang forever if unchecked error/exception thrown in AsyncProcess#sendMultiAction (Victor Xu)
This commit is contained in:
parent
5152ac0e20
commit
2481b7f76f
|
@ -979,15 +979,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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue