You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@storm.apache.org by pt...@apache.org on 2017/04/13 20:10:31 UTC

[1/2] storm git commit: STORM-1114: Handle race condition in Storm/Trident transactional state when ZK nodes have already been created/deleted

Repository: storm
Updated Branches:
  refs/heads/0.10.x-branch 4fa445f91 -> 86f851379


STORM-1114: Handle race condition in Storm/Trident transactional state when ZK nodes have already been created/deleted


Project: http://git-wip-us.apache.org/repos/asf/storm/repo
Commit: http://git-wip-us.apache.org/repos/asf/storm/commit/92733999
Tree: http://git-wip-us.apache.org/repos/asf/storm/tree/92733999
Diff: http://git-wip-us.apache.org/repos/asf/storm/diff/92733999

Branch: refs/heads/0.10.x-branch
Commit: 927339992d68863c06455c59bf0f202a413d821d
Parents: 4fa445f
Author: P. Taylor Goetz <pt...@gmail.com>
Authored: Thu Apr 13 16:08:07 2017 -0400
Committer: P. Taylor Goetz <pt...@gmail.com>
Committed: Thu Apr 13 16:08:07 2017 -0400

----------------------------------------------------------------------
 .../transactional/state/TransactionalState.java | 22 ++++++++++++++++----
 .../topology/state/TransactionalState.java      |  7 +++++++
 2 files changed, 25 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/storm/blob/92733999/storm-core/src/jvm/backtype/storm/transactional/state/TransactionalState.java
----------------------------------------------------------------------
diff --git a/storm-core/src/jvm/backtype/storm/transactional/state/TransactionalState.java b/storm-core/src/jvm/backtype/storm/transactional/state/TransactionalState.java
index 5afcd0a..8547346 100644
--- a/storm-core/src/jvm/backtype/storm/transactional/state/TransactionalState.java
+++ b/storm-core/src/jvm/backtype/storm/transactional/state/TransactionalState.java
@@ -34,8 +34,11 @@ import org.apache.zookeeper.KeeperException;
 import org.apache.zookeeper.ZooDefs;
 import org.apache.zookeeper.data.ACL;
 import org.apache.zookeeper.data.Id;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class TransactionalState {
+    public static final Logger LOG = LoggerFactory.getLogger(TransactionalState.class);
     CuratorFramework _curator;
     KryoValuesSerializer _ser;
     KryoValuesDeserializer _des;
@@ -83,11 +86,17 @@ public class TransactionalState {
         }
     }
 
-    protected static String forPath(PathAndBytesable<String> builder, 
+    protected static void forPath(PathAndBytesable<String> builder,
             String path, byte[] data) throws Exception {
-        return (data == null) 
-            ? builder.forPath(path) 
-            : builder.forPath(path, data);
+        try {
+            if (data == null) {
+                builder.forPath(path);
+            } else {
+                builder.forPath(path, data);
+            }
+        } catch (KeeperException.NodeExistsException e){
+            LOG.info("Path {} already exists.", path);
+        }
     }
 
     protected static void createNode(CuratorFramework curator, String path,
@@ -117,6 +126,8 @@ public class TransactionalState {
                 TransactionalState.createNode(_curator, path, ser, _zkAcls,
                         CreateMode.PERSISTENT);
             }
+        } catch (KeeperException.NodeExistsException nee) {
+            LOG.warn("Path {} already exists.", path);
         } catch(Exception e) {
             throw new RuntimeException(e);
         }        
@@ -126,6 +137,9 @@ public class TransactionalState {
         path = "/" + path;
         try {
             _curator.delete().forPath(path);
+        } catch (KeeperException.NoNodeException nne){
+            // node was already deleted
+            LOG.info("Path {} has already been deleted.", path);
         } catch (Exception e) {
             throw new RuntimeException(e);
         }

http://git-wip-us.apache.org/repos/asf/storm/blob/92733999/storm-core/src/jvm/storm/trident/topology/state/TransactionalState.java
----------------------------------------------------------------------
diff --git a/storm-core/src/jvm/storm/trident/topology/state/TransactionalState.java b/storm-core/src/jvm/storm/trident/topology/state/TransactionalState.java
index 5fba1a2..baff5fa 100644
--- a/storm-core/src/jvm/storm/trident/topology/state/TransactionalState.java
+++ b/storm-core/src/jvm/storm/trident/topology/state/TransactionalState.java
@@ -37,8 +37,11 @@ import org.apache.zookeeper.ZooDefs;
 import org.apache.zookeeper.data.ACL;
 import org.apache.zookeeper.data.Id;
 import org.json.simple.JSONValue;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class TransactionalState {
+    private static final Logger LOG = LoggerFactory.getLogger(TransactionalState.class);
     CuratorFramework _curator;
     List<ACL> _zkAcls = null;
     
@@ -115,6 +118,8 @@ public class TransactionalState {
                 TransactionalState.createNode(_curator, path, ser, _zkAcls,
                         CreateMode.PERSISTENT);
             }
+        } catch (KeeperException.NodeExistsException nne){
+            LOG.warn("Node {} already created.", path);
         } catch(Exception e) {
             throw new RuntimeException(e);
         }        
@@ -124,6 +129,8 @@ public class TransactionalState {
         path = "/" + path;
         try {
             _curator.delete().forPath(path);
+        } catch (KeeperException.NoNodeException nne){
+           LOG.warn("Path {} already deleted.");
         } catch (Exception e) {
             throw new RuntimeException(e);
         }


[2/2] storm git commit: add STORM-1114 to changelog

Posted by pt...@apache.org.
add STORM-1114 to changelog


Project: http://git-wip-us.apache.org/repos/asf/storm/repo
Commit: http://git-wip-us.apache.org/repos/asf/storm/commit/86f85137
Tree: http://git-wip-us.apache.org/repos/asf/storm/tree/86f85137
Diff: http://git-wip-us.apache.org/repos/asf/storm/diff/86f85137

Branch: refs/heads/0.10.x-branch
Commit: 86f851379754add07ffcfc7c9c34315fdb747077
Parents: 9273399
Author: P. Taylor Goetz <pt...@gmail.com>
Authored: Thu Apr 13 16:10:20 2017 -0400
Committer: P. Taylor Goetz <pt...@gmail.com>
Committed: Thu Apr 13 16:10:20 2017 -0400

----------------------------------------------------------------------
 CHANGELOG.md | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/storm/blob/86f85137/CHANGELOG.md
----------------------------------------------------------------------
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ae0ae4a..5fa2e9c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,5 @@
-## 0.10.3
+\ufeff## 0.10.3
+ * STORM-1114: Race condition in trident zookeeper zk-node create/delete
  * STORM-2158: Fix OutOfMemoryError in Nimbus' SimpleTransportPlugin
 
 ## 0.10.2