[
https://issues.apache.org/jira/browse/ZOOKEEPER-1907?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14304984#comment-14304984
]
Rakesh R commented on ZOOKEEPER-1907:
-------------------------------------
Thanks [~hdeng] for the comments.
bq. 1. handleException() in ZK critical Thread seems to be duplicate to the
added "notify and shut it down" function. How can we make this part cleaner?
instead of notifying, can call #handleException(thName, exp). I will also
remove the duplicate error log messages in the #run() method. Does this sound
good to you?
bq. 2.What about multiple calls to shutdown()?
I think, {{this.running}} flag present in {{ZooKeeperServer}} will help to
avoid duplicate calls. Before calling zks#shutdown() will do a check
zks#isRunning(), let me try this out.
> Improve Thread handling
> -----------------------
>
> Key: ZOOKEEPER-1907
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1907
> Project: ZooKeeper
> Issue Type: Improvement
> Components: server
> Affects Versions: 3.5.0
> Reporter: Rakesh R
> Assignee: Rakesh R
> Fix For: 3.5.1, 3.6.0
>
> Attachments: ZOOKEEPER-1907.patch, ZOOKEEPER-1907.patch,
> ZOOKEEPER-1907.patch, ZOOKEEPER-1907.patch, ZOOKEEPER-1907.patch,
> ZOOKEEPER-1907.patch, ZOOKEEPER-1907.patch, ZOOKEEPER-1907.patch,
> ZOOKEEPER-1907.patch
>
>
> Server has many critical threads running and co-ordinating each other like
> RequestProcessor chains et. When going through each threads, most of them
> having the similar structure like:
> {code}
> public void run() {
> try {
> while(running)
> // processing logic
> }
> } catch (InterruptedException e) {
> LOG.error("Unexpected interruption", e);
> } catch (Exception e) {
> LOG.error("Unexpected exception", e);
> }
> LOG.info("...exited loop!");
> }
> {code}
> From the design I could see, there could be a chance of silently leaving the
> thread by swallowing the exception. If this happens in the production, the
> server would get hanged forever and would not be able to deliver its role.
> Now its hard for the management tool to detect this.
> The idea of this JIRA is to discuss and imprv.
> Reference: [Community discussion
> thread|http://mail-archives.apache.org/mod_mbox/zookeeper-user/201403.mbox/%3cc2496325850aa74c92aaf83aa9662d26458a1...@szxeml561-mbx.china.huawei.com%3E]
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)