sbarnoud commented on a change in pull request #343: HBASE-22634 : Improve 
performance of BufferedMutator       
URL: https://github.com/apache/hbase/pull/343#discussion_r298067874
 
 

 ##########
 File path: 
hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncRequestFutureImpl.java
 ##########
 @@ -543,22 +572,36 @@ void sendMultiAction(Map<ServerName, MultiAction> 
actionsByServer,
             && numAttempt % HConstants.DEFAULT_HBASE_CLIENT_RETRIES_NUMBER != 
0) {
           runnable.run();
         } else {
-          try {
-            pool.submit(runnable);
-          } 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=" + asyncProcess.id + ", task rejected by pool. 
Unexpected." +
-                  " Server=" + server.getServerName(), t);
-            } else {
-              // see #HBASE-14359 for more details
-              LOG.warn("Caught unexpected exception/error: ", t);
+          boolean completed = false;
+          int nbTry = 0;
+          while(!completed) {
+            try {
+              ++nbTry;
+              pool.submit(runnable);
+              completed = true;
+            } catch (Throwable t) {
+              if (t instanceof RejectedExecutionException) {
 
 Review comment:
   At least in my environment:
   
   ```
   2019-04-02 12:04:47,726 WARN  [Executor task launch worker for task 23] 
AsyncProcess:1004  - #8, the task was rejected by the pool. This is unexpected. 
Server is XXXXXX.fr.world.socgen,16020,1552142849868
   java.util.concurrent.RejectedExecutionException: Task 
java.util.concurrent.FutureTask@6eb15d4f rejected from 
java.util.concurrent.ThreadPoolExecutor@73168fb9[Running, pool size = 128, 
active threads = 128, queued tasks = 0, completed tasks = 182]
               at 
java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2047)
               at 
java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:823)
               at 
java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1369 
   ``` 
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to