[
https://issues.apache.org/jira/browse/STORM-1750?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15272034#comment-15272034
]
ASF GitHub Bot commented on STORM-1750:
---------------------------------------
Github user Jackyele commented on a diff in the pull request:
https://github.com/apache/storm/pull/1384#discussion_r62157087
--- Diff: storm-core/src/jvm/org/apache/storm/cluster/ZKStateStorage.java
---
@@ -189,7 +190,15 @@ public void set_data(String path, byte[] data,
List<ACL> acls) {
Zookeeper.setData(zkWriter, path, data);
} else {
Zookeeper.mkdirs(zkWriter, Zookeeper.parentPath(path), acls);
- Zookeeper.createNode(zkWriter, path, data,
CreateMode.PERSISTENT, acls);
+ try {
+ Zookeeper.createNode(zkWriter, path, data,
CreateMode.PERSISTENT, acls);
+ } catch (RuntimeException e) {
--- End diff --
yeah, we have to catch RuntimeError first; and how about using **Utils.
exceptionCauseIsInstanceOf** instead for consistency, just like
https://github.com/apache/storm/blob/master/storm-core/src/jvm/org/apache/storm/zookeeper/Zookeeper.java#L165
does
> Report-error-and-die may not kill the worker
> --------------------------------------------
>
> Key: STORM-1750
> URL: https://issues.apache.org/jira/browse/STORM-1750
> Project: Apache Storm
> Issue Type: Bug
> Components: storm-core
> Affects Versions: 0.10.0, 1.0.0, 2.0.0
> Reporter: Stig Rohde Døssing
> Assignee: Stig Rohde Døssing
> Priority: Critical
>
> The report-error-and-die function in executor.clj calls report-error, which
> can throw exceptions if Curator runs into any kind of trouble while
> registering the error. I suspect this may happen with network errors, but it
> can also happen if two executors for the same component throw exceptions at
> the same time and no errors have been registered for the component
> previously. This is because both calls to report-error-and-die update the
> lastErrorPath, and ZkStateStorage set_data doesn't catch the potential
> NodeExistsException that may be thrown from the create call.
> If an exception is thrown from report-error, the suicide-fn is never called,
> and the worker keeps running sans the crashed executor.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)