[ 
https://issues.apache.org/jira/browse/HBASE-8585?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13663443#comment-13663443
 ] 

Ted Yu commented on HBASE-8585:
-------------------------------

If resubmission fails after the specified retries, what exception should be 
thrown ?

Looking closer into zkEventWorkersSubmit(), the method invokes itself in the 
finally clause of the Runnable passed to zkEventWorkers.submit().
I think that if RejectedExecutionException is thrown after retries, the top 
most zkEventWorkersSubmit() may get confused as to whether the Runnable should 
be retried.
This means we should throw other exception or, abort.
                
> AssignmentManager should handle RejectedExecutionException
> ----------------------------------------------------------
>
>                 Key: HBASE-8585
>                 URL: https://issues.apache.org/jira/browse/HBASE-8585
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Ted Yu
>
> In test output, I noticed the following:
> {code}
> 2013-05-21 03:39:37,015 DEBUG [Thread-1446-EventThread] 
> zookeeper.ZooKeeperWatcher(307): master:35255-0x13ec52b4ce30000 Received 
> ZooKeeper Event, type=NodeDataChanged, state=SyncConnected, 
> path=/hbase/region-in-transition/8b6ce00aafd483a6ed7a76425009ebf8
> 2013-05-21 03:39:37,015 ERROR [Thread-1446-EventThread] 
> zookeeper.ClientCnxn$EventThread(521): Error while calling watcher
> java.util.concurrent.RejectedExecutionException
>         at 
> java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:1768)
>         at 
> java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:767)
>         at 
> java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:658)
>         at 
> java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:78)
>         at 
> org.apache.hadoop.hbase.master.AssignmentManager.zkEventWorkersSubmit(AssignmentManager.java:1136)
>         at 
> org.apache.hadoop.hbase.master.AssignmentManager.handleAssignmentEvent(AssignmentManager.java:1306)
>         at 
> org.apache.hadoop.hbase.master.AssignmentManager.nodeDataChanged(AssignmentManager.java:1095)
>         at 
> org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.process(ZooKeeperWatcher.java:338)
>         at 
> org.apache.zookeeper.ClientCnxn$EventThread.processEvent(ClientCnxn.java:519)
>         at 
> org.apache.zookeeper.ClientCnxn$EventThread.run(ClientCnxn.java:495)
> {code}
> By default, ThreadPoolExecutor.AbortPolicy is used for zkEventWorkers, 
> leading to the above exception.
> We should examine the calls to zkEventWorkersSubmit() and devise proper 
> handling for RejectedExecutionException.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to