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

chunhui shen commented on HBASE-8585:
-------------------------------------

{code}
ThreadPoolExecutor:
public void execute(Runnable command) {
        if (command == null)
            throw new NullPointerException();
        if (poolSize >= corePoolSize || !addIfUnderCorePoolSize(command)) {
            if (runState == RUNNING && workQueue.offer(command)) {
                if (runState != RUNNING || poolSize == 0)
                    ensureQueuedTaskHandled(command);
            }
            else if (!addIfUnderMaximumPoolSize(command))
                reject(command); // is shutdown or saturated
        }
    }
{code}

>From the above code, I think the runState != RUNNING,  it means we have 
>shutdown the ThreadPoolExecutor, is master in stopping, if so, we don't need 
>handle RejectedExecutionException.
                
> AssignmentManager should handle RejectedExecutionException
> ----------------------------------------------------------
>
>                 Key: HBASE-8585
>                 URL: https://issues.apache.org/jira/browse/HBASE-8585
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Ted Yu
>            Assignee: Ted Yu
>         Attachments: 8585-v1.txt, 8585-v3.txt
>
>
> 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