[jira] [Commented] (ZOOKEEPER-1624) PrepRequestProcessor abort multi-operation incorrectly
[ https://issues.apache.org/jira/browse/ZOOKEEPER-1624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13791856#comment-13791856 ] Hudson commented on ZOOKEEPER-1624: --- SUCCESS: Integrated in ZooKeeper-trunk #2085 (See [https://builds.apache.org/job/ZooKeeper-trunk/2085/]) ZOOKEEPER-1624. PrepRequestProcessor abort multi-operation incorrectly. (thawan via camille) (camille: http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1531061) * /zookeeper/trunk/CHANGES.txt * /zookeeper/trunk/src/c/tests/TestMulti.cc * /zookeeper/trunk/src/java/main/org/apache/zookeeper/server/PrepRequestProcessor.java * /zookeeper/trunk/src/java/test/org/apache/zookeeper/test/MultiAsyncTransactionTest.java > PrepRequestProcessor abort multi-operation incorrectly > -- > > Key: ZOOKEEPER-1624 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1624 > Project: ZooKeeper > Issue Type: Bug > Components: server >Reporter: Thawan Kooburat >Assignee: Thawan Kooburat >Priority: Critical > Labels: zk-review > Fix For: 3.4.6, 3.5.0 > > Attachments: ZOOKEEPER-1624-3.4, ZOOKEEPER-1624.patch, > ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch, > ZOOKEEPER-1624.patch > > > We found this issue when trying to issue multiple instances of the following > multi-op concurrently > multi { > 1. create sequential node /a- > 2. create node /b > } > The expected result is that only the first multi-op request should success > and the rest of request should fail because /b is already exist > However, the reported result is that the subsequence multi-op failed because > of sequential node creation failed which is not possible. > Below is the return code for each sub-op when issuing 3 instances of the > above multi-op asynchronously > 1. ZOK, ZOK > 2. ZOK, ZNODEEXISTS, > 3. ZNODEEXISTS, ZRUNTIMEINCONSISTENCY, > When I added more debug log. The cause is that PrepRequestProcessor rollback > outstandingChanges of the second multi-op incorrectly causing sequential node > name generation to be incorrect. Below is the sequential node name generated > by PrepRequestProcessor > 1. create /a-0001 > 2. create /a-0003 > 3. create /a-0001 > The bug is getPendingChanges() method. In failed to copied ChangeRecord for > the parent node ("/"). So rollbackPendingChanges() cannot restore the right > previous change record of the parent node when aborting the second multi-op > The impact of this bug is that sequential node creation on the same parent > node may fail until the previous one is committed. I am not sure if there is > other implication or not. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (ZOOKEEPER-1624) PrepRequestProcessor abort multi-operation incorrectly
[ https://issues.apache.org/jira/browse/ZOOKEEPER-1624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13791635#comment-13791635 ] Flavio Junqueira commented on ZOOKEEPER-1624: - No objection on my end. > PrepRequestProcessor abort multi-operation incorrectly > -- > > Key: ZOOKEEPER-1624 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1624 > Project: ZooKeeper > Issue Type: Bug > Components: server >Reporter: Thawan Kooburat >Assignee: Thawan Kooburat >Priority: Critical > Labels: zk-review > Fix For: 3.4.6, 3.5.0 > > Attachments: ZOOKEEPER-1624-3.4, ZOOKEEPER-1624.patch, > ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch, > ZOOKEEPER-1624.patch > > > We found this issue when trying to issue multiple instances of the following > multi-op concurrently > multi { > 1. create sequential node /a- > 2. create node /b > } > The expected result is that only the first multi-op request should success > and the rest of request should fail because /b is already exist > However, the reported result is that the subsequence multi-op failed because > of sequential node creation failed which is not possible. > Below is the return code for each sub-op when issuing 3 instances of the > above multi-op asynchronously > 1. ZOK, ZOK > 2. ZOK, ZNODEEXISTS, > 3. ZNODEEXISTS, ZRUNTIMEINCONSISTENCY, > When I added more debug log. The cause is that PrepRequestProcessor rollback > outstandingChanges of the second multi-op incorrectly causing sequential node > name generation to be incorrect. Below is the sequential node name generated > by PrepRequestProcessor > 1. create /a-0001 > 2. create /a-0003 > 3. create /a-0001 > The bug is getPendingChanges() method. In failed to copied ChangeRecord for > the parent node ("/"). So rollbackPendingChanges() cannot restore the right > previous change record of the parent node when aborting the second multi-op > The impact of this bug is that sequential node creation on the same parent > node may fail until the previous one is committed. I am not sure if there is > other implication or not. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (ZOOKEEPER-1624) PrepRequestProcessor abort multi-operation incorrectly
[ https://issues.apache.org/jira/browse/ZOOKEEPER-1624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13791632#comment-13791632 ] Camille Fournier commented on ZOOKEEPER-1624: - This patch just makes it apply to 3.4 and removes the Java test. If there are no objections I'll check it in. > PrepRequestProcessor abort multi-operation incorrectly > -- > > Key: ZOOKEEPER-1624 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1624 > Project: ZooKeeper > Issue Type: Bug > Components: server >Reporter: Thawan Kooburat >Assignee: Thawan Kooburat >Priority: Critical > Labels: zk-review > Fix For: 3.4.6, 3.5.0 > > Attachments: ZOOKEEPER-1624-3.4, ZOOKEEPER-1624.patch, > ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch, > ZOOKEEPER-1624.patch > > > We found this issue when trying to issue multiple instances of the following > multi-op concurrently > multi { > 1. create sequential node /a- > 2. create node /b > } > The expected result is that only the first multi-op request should success > and the rest of request should fail because /b is already exist > However, the reported result is that the subsequence multi-op failed because > of sequential node creation failed which is not possible. > Below is the return code for each sub-op when issuing 3 instances of the > above multi-op asynchronously > 1. ZOK, ZOK > 2. ZOK, ZNODEEXISTS, > 3. ZNODEEXISTS, ZRUNTIMEINCONSISTENCY, > When I added more debug log. The cause is that PrepRequestProcessor rollback > outstandingChanges of the second multi-op incorrectly causing sequential node > name generation to be incorrect. Below is the sequential node name generated > by PrepRequestProcessor > 1. create /a-0001 > 2. create /a-0003 > 3. create /a-0001 > The bug is getPendingChanges() method. In failed to copied ChangeRecord for > the parent node ("/"). So rollbackPendingChanges() cannot restore the right > previous change record of the parent node when aborting the second multi-op > The impact of this bug is that sequential node creation on the same parent > node may fail until the previous one is committed. I am not sure if there is > other implication or not. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (ZOOKEEPER-1624) PrepRequestProcessor abort multi-operation incorrectly
[ https://issues.apache.org/jira/browse/ZOOKEEPER-1624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13789887#comment-13789887 ] Hadoop QA commented on ZOOKEEPER-1624: -- -1 overall. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12607473/ZOOKEEPER-1624-3.4 against trunk revision 1530166. +1 @author. The patch does not contain any @author tags. +1 tests included. The patch appears to include 3 new or modified tests. -1 patch. The patch command could not apply the patch. Console output: https://builds.apache.org/job/PreCommit-ZOOKEEPER-Build/1662//console This message is automatically generated. > PrepRequestProcessor abort multi-operation incorrectly > -- > > Key: ZOOKEEPER-1624 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1624 > Project: ZooKeeper > Issue Type: Bug > Components: server >Reporter: Thawan Kooburat >Assignee: Thawan Kooburat >Priority: Critical > Labels: zk-review > Fix For: 3.4.6, 3.5.0 > > Attachments: ZOOKEEPER-1624-3.4, ZOOKEEPER-1624.patch, > ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch, > ZOOKEEPER-1624.patch > > > We found this issue when trying to issue multiple instances of the following > multi-op concurrently > multi { > 1. create sequential node /a- > 2. create node /b > } > The expected result is that only the first multi-op request should success > and the rest of request should fail because /b is already exist > However, the reported result is that the subsequence multi-op failed because > of sequential node creation failed which is not possible. > Below is the return code for each sub-op when issuing 3 instances of the > above multi-op asynchronously > 1. ZOK, ZOK > 2. ZOK, ZNODEEXISTS, > 3. ZNODEEXISTS, ZRUNTIMEINCONSISTENCY, > When I added more debug log. The cause is that PrepRequestProcessor rollback > outstandingChanges of the second multi-op incorrectly causing sequential node > name generation to be incorrect. Below is the sequential node name generated > by PrepRequestProcessor > 1. create /a-0001 > 2. create /a-0003 > 3. create /a-0001 > The bug is getPendingChanges() method. In failed to copied ChangeRecord for > the parent node ("/"). So rollbackPendingChanges() cannot restore the right > previous change record of the parent node when aborting the second multi-op > The impact of this bug is that sequential node creation on the same parent > node may fail until the previous one is committed. I am not sure if there is > other implication or not. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (ZOOKEEPER-1624) PrepRequestProcessor abort multi-operation incorrectly
[ https://issues.apache.org/jira/browse/ZOOKEEPER-1624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13789833#comment-13789833 ] Flavio Junqueira commented on ZOOKEEPER-1624: - Given the recent set of comments, I'm not sure it matters, but my point was simply that adding async calls for a feature that already exists is not really adding a whole new feature, just extending the scope of an existing one. For me, the feature is multi. But fine if we can make progress without it. > PrepRequestProcessor abort multi-operation incorrectly > -- > > Key: ZOOKEEPER-1624 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1624 > Project: ZooKeeper > Issue Type: Bug > Components: server >Reporter: Thawan Kooburat >Assignee: Thawan Kooburat >Priority: Critical > Labels: zk-review > Fix For: 3.4.6, 3.5.0 > > Attachments: ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch, > ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch > > > We found this issue when trying to issue multiple instances of the following > multi-op concurrently > multi { > 1. create sequential node /a- > 2. create node /b > } > The expected result is that only the first multi-op request should success > and the rest of request should fail because /b is already exist > However, the reported result is that the subsequence multi-op failed because > of sequential node creation failed which is not possible. > Below is the return code for each sub-op when issuing 3 instances of the > above multi-op asynchronously > 1. ZOK, ZOK > 2. ZOK, ZNODEEXISTS, > 3. ZNODEEXISTS, ZRUNTIMEINCONSISTENCY, > When I added more debug log. The cause is that PrepRequestProcessor rollback > outstandingChanges of the second multi-op incorrectly causing sequential node > name generation to be incorrect. Below is the sequential node name generated > by PrepRequestProcessor > 1. create /a-0001 > 2. create /a-0003 > 3. create /a-0001 > The bug is getPendingChanges() method. In failed to copied ChangeRecord for > the parent node ("/"). So rollbackPendingChanges() cannot restore the right > previous change record of the parent node when aborting the second multi-op > The impact of this bug is that sequential node creation on the same parent > node may fail until the previous one is committed. I am not sure if there is > other implication or not. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (ZOOKEEPER-1624) PrepRequestProcessor abort multi-operation incorrectly
[ https://issues.apache.org/jira/browse/ZOOKEEPER-1624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13789821#comment-13789821 ] Patrick Hunt commented on ZOOKEEPER-1624: - bq. it is not really a whole new feature fwiw a public facing client API change that adds async support to multi is a feature imo. > PrepRequestProcessor abort multi-operation incorrectly > -- > > Key: ZOOKEEPER-1624 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1624 > Project: ZooKeeper > Issue Type: Bug > Components: server >Reporter: Thawan Kooburat >Assignee: Thawan Kooburat >Priority: Critical > Labels: zk-review > Fix For: 3.4.6, 3.5.0 > > Attachments: ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch, > ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch > > > We found this issue when trying to issue multiple instances of the following > multi-op concurrently > multi { > 1. create sequential node /a- > 2. create node /b > } > The expected result is that only the first multi-op request should success > and the rest of request should fail because /b is already exist > However, the reported result is that the subsequence multi-op failed because > of sequential node creation failed which is not possible. > Below is the return code for each sub-op when issuing 3 instances of the > above multi-op asynchronously > 1. ZOK, ZOK > 2. ZOK, ZNODEEXISTS, > 3. ZNODEEXISTS, ZRUNTIMEINCONSISTENCY, > When I added more debug log. The cause is that PrepRequestProcessor rollback > outstandingChanges of the second multi-op incorrectly causing sequential node > name generation to be incorrect. Below is the sequential node name generated > by PrepRequestProcessor > 1. create /a-0001 > 2. create /a-0003 > 3. create /a-0001 > The bug is getPendingChanges() method. In failed to copied ChangeRecord for > the parent node ("/"). So rollbackPendingChanges() cannot restore the right > previous change record of the parent node when aborting the second multi-op > The impact of this bug is that sequential node creation on the same parent > node may fail until the previous one is committed. I am not sure if there is > other implication or not. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (ZOOKEEPER-1624) PrepRequestProcessor abort multi-operation incorrectly
[ https://issues.apache.org/jira/browse/ZOOKEEPER-1624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13789807#comment-13789807 ] Camille Fournier commented on ZOOKEEPER-1624: - I'm comfortable with pushing the patch for 3.4 without the Java test. > PrepRequestProcessor abort multi-operation incorrectly > -- > > Key: ZOOKEEPER-1624 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1624 > Project: ZooKeeper > Issue Type: Bug > Components: server >Reporter: Thawan Kooburat >Assignee: Thawan Kooburat >Priority: Critical > Labels: zk-review > Fix For: 3.4.6, 3.5.0 > > Attachments: ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch, > ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch > > > We found this issue when trying to issue multiple instances of the following > multi-op concurrently > multi { > 1. create sequential node /a- > 2. create node /b > } > The expected result is that only the first multi-op request should success > and the rest of request should fail because /b is already exist > However, the reported result is that the subsequence multi-op failed because > of sequential node creation failed which is not possible. > Below is the return code for each sub-op when issuing 3 instances of the > above multi-op asynchronously > 1. ZOK, ZOK > 2. ZOK, ZNODEEXISTS, > 3. ZNODEEXISTS, ZRUNTIMEINCONSISTENCY, > When I added more debug log. The cause is that PrepRequestProcessor rollback > outstandingChanges of the second multi-op incorrectly causing sequential node > name generation to be incorrect. Below is the sequential node name generated > by PrepRequestProcessor > 1. create /a-0001 > 2. create /a-0003 > 3. create /a-0001 > The bug is getPendingChanges() method. In failed to copied ChangeRecord for > the parent node ("/"). So rollbackPendingChanges() cannot restore the right > previous change record of the parent node when aborting the second multi-op > The impact of this bug is that sequential node creation on the same parent > node may fail until the previous one is committed. I am not sure if there is > other implication or not. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (ZOOKEEPER-1624) PrepRequestProcessor abort multi-operation incorrectly
[ https://issues.apache.org/jira/browse/ZOOKEEPER-1624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13789692#comment-13789692 ] Thawan Kooburat commented on ZOOKEEPER-1624: As I already comment earlier, the current Java test doesn't actually catch the bug due to timing issue. I guess, I will have to rewrite it to test PrepRequestProcessor directly (which is probably not going to rely on ZOOKEEPER-1572) If you want to commit this now, the patch itself has a proper and reliable (at least on my box) unit test in C. Our test infrastructure do run C unit test and report the result right? I agree with Camile that it would be nice to have Java test for server-side functionality but it isn't strictly needed right? > PrepRequestProcessor abort multi-operation incorrectly > -- > > Key: ZOOKEEPER-1624 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1624 > Project: ZooKeeper > Issue Type: Bug > Components: server >Reporter: Thawan Kooburat >Assignee: Thawan Kooburat >Priority: Critical > Labels: zk-review > Fix For: 3.4.6, 3.5.0 > > Attachments: ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch, > ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch > > > We found this issue when trying to issue multiple instances of the following > multi-op concurrently > multi { > 1. create sequential node /a- > 2. create node /b > } > The expected result is that only the first multi-op request should success > and the rest of request should fail because /b is already exist > However, the reported result is that the subsequence multi-op failed because > of sequential node creation failed which is not possible. > Below is the return code for each sub-op when issuing 3 instances of the > above multi-op asynchronously > 1. ZOK, ZOK > 2. ZOK, ZNODEEXISTS, > 3. ZNODEEXISTS, ZRUNTIMEINCONSISTENCY, > When I added more debug log. The cause is that PrepRequestProcessor rollback > outstandingChanges of the second multi-op incorrectly causing sequential node > name generation to be incorrect. Below is the sequential node name generated > by PrepRequestProcessor > 1. create /a-0001 > 2. create /a-0003 > 3. create /a-0001 > The bug is getPendingChanges() method. In failed to copied ChangeRecord for > the parent node ("/"). So rollbackPendingChanges() cannot restore the right > previous change record of the parent node when aborting the second multi-op > The impact of this bug is that sequential node creation on the same parent > node may fail until the previous one is committed. I am not sure if there is > other implication or not. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (ZOOKEEPER-1624) PrepRequestProcessor abort multi-operation incorrectly
[ https://issues.apache.org/jira/browse/ZOOKEEPER-1624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13789664#comment-13789664 ] Flavio Junqueira commented on ZOOKEEPER-1624: - I understand that we typically don't add new features to bug fix releases, but I don't really see a problem with having ZOOKEEPER-1572 into b3.4, it is not really a whole new feature. > PrepRequestProcessor abort multi-operation incorrectly > -- > > Key: ZOOKEEPER-1624 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1624 > Project: ZooKeeper > Issue Type: Bug > Components: server >Reporter: Thawan Kooburat >Assignee: Thawan Kooburat >Priority: Critical > Labels: zk-review > Fix For: 3.4.6, 3.5.0 > > Attachments: ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch, > ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch > > > We found this issue when trying to issue multiple instances of the following > multi-op concurrently > multi { > 1. create sequential node /a- > 2. create node /b > } > The expected result is that only the first multi-op request should success > and the rest of request should fail because /b is already exist > However, the reported result is that the subsequence multi-op failed because > of sequential node creation failed which is not possible. > Below is the return code for each sub-op when issuing 3 instances of the > above multi-op asynchronously > 1. ZOK, ZOK > 2. ZOK, ZNODEEXISTS, > 3. ZNODEEXISTS, ZRUNTIMEINCONSISTENCY, > When I added more debug log. The cause is that PrepRequestProcessor rollback > outstandingChanges of the second multi-op incorrectly causing sequential node > name generation to be incorrect. Below is the sequential node name generated > by PrepRequestProcessor > 1. create /a-0001 > 2. create /a-0003 > 3. create /a-0001 > The bug is getPendingChanges() method. In failed to copied ChangeRecord for > the parent node ("/"). So rollbackPendingChanges() cannot restore the right > previous change record of the parent node when aborting the second multi-op > The impact of this bug is that sequential node creation on the same parent > node may fail until the previous one is committed. I am not sure if there is > other implication or not. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (ZOOKEEPER-1624) PrepRequestProcessor abort multi-operation incorrectly
[ https://issues.apache.org/jira/browse/ZOOKEEPER-1624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13789627#comment-13789627 ] Patrick Hunt commented on ZOOKEEPER-1624: - Can a test not be created that meets the criteria? > PrepRequestProcessor abort multi-operation incorrectly > -- > > Key: ZOOKEEPER-1624 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1624 > Project: ZooKeeper > Issue Type: Bug > Components: server >Reporter: Thawan Kooburat >Assignee: Thawan Kooburat >Priority: Critical > Labels: zk-review > Fix For: 3.4.6, 3.5.0 > > Attachments: ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch, > ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch > > > We found this issue when trying to issue multiple instances of the following > multi-op concurrently > multi { > 1. create sequential node /a- > 2. create node /b > } > The expected result is that only the first multi-op request should success > and the rest of request should fail because /b is already exist > However, the reported result is that the subsequence multi-op failed because > of sequential node creation failed which is not possible. > Below is the return code for each sub-op when issuing 3 instances of the > above multi-op asynchronously > 1. ZOK, ZOK > 2. ZOK, ZNODEEXISTS, > 3. ZNODEEXISTS, ZRUNTIMEINCONSISTENCY, > When I added more debug log. The cause is that PrepRequestProcessor rollback > outstandingChanges of the second multi-op incorrectly causing sequential node > name generation to be incorrect. Below is the sequential node name generated > by PrepRequestProcessor > 1. create /a-0001 > 2. create /a-0003 > 3. create /a-0001 > The bug is getPendingChanges() method. In failed to copied ChangeRecord for > the parent node ("/"). So rollbackPendingChanges() cannot restore the right > previous change record of the parent node when aborting the second multi-op > The impact of this bug is that sequential node creation on the same parent > node may fail until the previous one is committed. I am not sure if there is > other implication or not. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (ZOOKEEPER-1624) PrepRequestProcessor abort multi-operation incorrectly
[ https://issues.apache.org/jira/browse/ZOOKEEPER-1624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13789388#comment-13789388 ] Camille Fournier commented on ZOOKEEPER-1624: - Right. So should we push the patch without the Java test in 3.4.6? > PrepRequestProcessor abort multi-operation incorrectly > -- > > Key: ZOOKEEPER-1624 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1624 > Project: ZooKeeper > Issue Type: Bug > Components: server >Reporter: Thawan Kooburat >Assignee: Thawan Kooburat >Priority: Critical > Labels: zk-review > Fix For: 3.4.6, 3.5.0 > > Attachments: ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch, > ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch > > > We found this issue when trying to issue multiple instances of the following > multi-op concurrently > multi { > 1. create sequential node /a- > 2. create node /b > } > The expected result is that only the first multi-op request should success > and the rest of request should fail because /b is already exist > However, the reported result is that the subsequence multi-op failed because > of sequential node creation failed which is not possible. > Below is the return code for each sub-op when issuing 3 instances of the > above multi-op asynchronously > 1. ZOK, ZOK > 2. ZOK, ZNODEEXISTS, > 3. ZNODEEXISTS, ZRUNTIMEINCONSISTENCY, > When I added more debug log. The cause is that PrepRequestProcessor rollback > outstandingChanges of the second multi-op incorrectly causing sequential node > name generation to be incorrect. Below is the sequential node name generated > by PrepRequestProcessor > 1. create /a-0001 > 2. create /a-0003 > 3. create /a-0001 > The bug is getPendingChanges() method. In failed to copied ChangeRecord for > the parent node ("/"). So rollbackPendingChanges() cannot restore the right > previous change record of the parent node when aborting the second multi-op > The impact of this bug is that sequential node creation on the same parent > node may fail until the previous one is committed. I am not sure if there is > other implication or not. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (ZOOKEEPER-1624) PrepRequestProcessor abort multi-operation incorrectly
[ https://issues.apache.org/jira/browse/ZOOKEEPER-1624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13789385#comment-13789385 ] Patrick Hunt commented on ZOOKEEPER-1624: - We typically don't add features in fix releases. > PrepRequestProcessor abort multi-operation incorrectly > -- > > Key: ZOOKEEPER-1624 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1624 > Project: ZooKeeper > Issue Type: Bug > Components: server >Reporter: Thawan Kooburat >Assignee: Thawan Kooburat >Priority: Critical > Labels: zk-review > Fix For: 3.4.6, 3.5.0 > > Attachments: ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch, > ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch > > > We found this issue when trying to issue multiple instances of the following > multi-op concurrently > multi { > 1. create sequential node /a- > 2. create node /b > } > The expected result is that only the first multi-op request should success > and the rest of request should fail because /b is already exist > However, the reported result is that the subsequence multi-op failed because > of sequential node creation failed which is not possible. > Below is the return code for each sub-op when issuing 3 instances of the > above multi-op asynchronously > 1. ZOK, ZOK > 2. ZOK, ZNODEEXISTS, > 3. ZNODEEXISTS, ZRUNTIMEINCONSISTENCY, > When I added more debug log. The cause is that PrepRequestProcessor rollback > outstandingChanges of the second multi-op incorrectly causing sequential node > name generation to be incorrect. Below is the sequential node name generated > by PrepRequestProcessor > 1. create /a-0001 > 2. create /a-0003 > 3. create /a-0001 > The bug is getPendingChanges() method. In failed to copied ChangeRecord for > the parent node ("/"). So rollbackPendingChanges() cannot restore the right > previous change record of the parent node when aborting the second multi-op > The impact of this bug is that sequential node creation on the same parent > node may fail until the previous one is committed. I am not sure if there is > other implication or not. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (ZOOKEEPER-1624) PrepRequestProcessor abort multi-operation incorrectly
[ https://issues.apache.org/jira/browse/ZOOKEEPER-1624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13789376#comment-13789376 ] Camille Fournier commented on ZOOKEEPER-1624: - The problem is that ZOOKEEPER-1572 is necessary for the test he wrote for this. Do we want to push that into 3.4.6? > PrepRequestProcessor abort multi-operation incorrectly > -- > > Key: ZOOKEEPER-1624 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1624 > Project: ZooKeeper > Issue Type: Bug > Components: server >Reporter: Thawan Kooburat >Assignee: Thawan Kooburat >Priority: Critical > Labels: zk-review > Fix For: 3.4.6, 3.5.0 > > Attachments: ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch, > ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch > > > We found this issue when trying to issue multiple instances of the following > multi-op concurrently > multi { > 1. create sequential node /a- > 2. create node /b > } > The expected result is that only the first multi-op request should success > and the rest of request should fail because /b is already exist > However, the reported result is that the subsequence multi-op failed because > of sequential node creation failed which is not possible. > Below is the return code for each sub-op when issuing 3 instances of the > above multi-op asynchronously > 1. ZOK, ZOK > 2. ZOK, ZNODEEXISTS, > 3. ZNODEEXISTS, ZRUNTIMEINCONSISTENCY, > When I added more debug log. The cause is that PrepRequestProcessor rollback > outstandingChanges of the second multi-op incorrectly causing sequential node > name generation to be incorrect. Below is the sequential node name generated > by PrepRequestProcessor > 1. create /a-0001 > 2. create /a-0003 > 3. create /a-0001 > The bug is getPendingChanges() method. In failed to copied ChangeRecord for > the parent node ("/"). So rollbackPendingChanges() cannot restore the right > previous change record of the parent node when aborting the second multi-op > The impact of this bug is that sequential node creation on the same parent > node may fail until the previous one is committed. I am not sure if there is > other implication or not. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (ZOOKEEPER-1624) PrepRequestProcessor abort multi-operation incorrectly
[ https://issues.apache.org/jira/browse/ZOOKEEPER-1624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13789358#comment-13789358 ] Flavio Junqueira commented on ZOOKEEPER-1624: - [~thawan], would you have time to generate a patch for 3.4.6? > PrepRequestProcessor abort multi-operation incorrectly > -- > > Key: ZOOKEEPER-1624 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1624 > Project: ZooKeeper > Issue Type: Bug > Components: server >Reporter: Thawan Kooburat >Assignee: Thawan Kooburat >Priority: Critical > Labels: zk-review > Fix For: 3.4.6, 3.5.0 > > Attachments: ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch, > ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch > > > We found this issue when trying to issue multiple instances of the following > multi-op concurrently > multi { > 1. create sequential node /a- > 2. create node /b > } > The expected result is that only the first multi-op request should success > and the rest of request should fail because /b is already exist > However, the reported result is that the subsequence multi-op failed because > of sequential node creation failed which is not possible. > Below is the return code for each sub-op when issuing 3 instances of the > above multi-op asynchronously > 1. ZOK, ZOK > 2. ZOK, ZNODEEXISTS, > 3. ZNODEEXISTS, ZRUNTIMEINCONSISTENCY, > When I added more debug log. The cause is that PrepRequestProcessor rollback > outstandingChanges of the second multi-op incorrectly causing sequential node > name generation to be incorrect. Below is the sequential node name generated > by PrepRequestProcessor > 1. create /a-0001 > 2. create /a-0003 > 3. create /a-0001 > The bug is getPendingChanges() method. In failed to copied ChangeRecord for > the parent node ("/"). So rollbackPendingChanges() cannot restore the right > previous change record of the parent node when aborting the second multi-op > The impact of this bug is that sequential node creation on the same parent > node may fail until the previous one is committed. I am not sure if there is > other implication or not. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (ZOOKEEPER-1624) PrepRequestProcessor abort multi-operation incorrectly
[ https://issues.apache.org/jira/browse/ZOOKEEPER-1624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13769576#comment-13769576 ] Flavio Junqueira commented on ZOOKEEPER-1624: - I'd like to have this one in for 3.4.6 if possible. > PrepRequestProcessor abort multi-operation incorrectly > -- > > Key: ZOOKEEPER-1624 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1624 > Project: ZooKeeper > Issue Type: Bug > Components: server >Reporter: Thawan Kooburat >Assignee: Thawan Kooburat >Priority: Critical > Labels: zk-review > Fix For: 3.5.0, 3.4.6 > > Attachments: ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch, > ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch > > > We found this issue when trying to issue multiple instances of the following > multi-op concurrently > multi { > 1. create sequential node /a- > 2. create node /b > } > The expected result is that only the first multi-op request should success > and the rest of request should fail because /b is already exist > However, the reported result is that the subsequence multi-op failed because > of sequential node creation failed which is not possible. > Below is the return code for each sub-op when issuing 3 instances of the > above multi-op asynchronously > 1. ZOK, ZOK > 2. ZOK, ZNODEEXISTS, > 3. ZNODEEXISTS, ZRUNTIMEINCONSISTENCY, > When I added more debug log. The cause is that PrepRequestProcessor rollback > outstandingChanges of the second multi-op incorrectly causing sequential node > name generation to be incorrect. Below is the sequential node name generated > by PrepRequestProcessor > 1. create /a-0001 > 2. create /a-0003 > 3. create /a-0001 > The bug is getPendingChanges() method. In failed to copied ChangeRecord for > the parent node ("/"). So rollbackPendingChanges() cannot restore the right > previous change record of the parent node when aborting the second multi-op > The impact of this bug is that sequential node creation on the same parent > node may fail until the previous one is committed. I am not sure if there is > other implication or not. -- 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
[jira] [Commented] (ZOOKEEPER-1624) PrepRequestProcessor abort multi-operation incorrectly
[ https://issues.apache.org/jira/browse/ZOOKEEPER-1624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13768992#comment-13768992 ] Thawan Kooburat commented on ZOOKEEPER-1624: For Java, I think the best approach is to unit test the PrepRequestProcessor itself directly (and mock the rest of system). With this approach, we won't need async interface. I haven't have time to rewrite the test yet but if we want this in 3.4.6, I will find some time to work on it after I am done with ZK-1551,1552 > PrepRequestProcessor abort multi-operation incorrectly > -- > > Key: ZOOKEEPER-1624 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1624 > Project: ZooKeeper > Issue Type: Bug > Components: server >Reporter: Thawan Kooburat >Assignee: Thawan Kooburat >Priority: Critical > Labels: zk-review > Fix For: 3.5.0, 3.4.6 > > Attachments: ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch, > ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch > > > We found this issue when trying to issue multiple instances of the following > multi-op concurrently > multi { > 1. create sequential node /a- > 2. create node /b > } > The expected result is that only the first multi-op request should success > and the rest of request should fail because /b is already exist > However, the reported result is that the subsequence multi-op failed because > of sequential node creation failed which is not possible. > Below is the return code for each sub-op when issuing 3 instances of the > above multi-op asynchronously > 1. ZOK, ZOK > 2. ZOK, ZNODEEXISTS, > 3. ZNODEEXISTS, ZRUNTIMEINCONSISTENCY, > When I added more debug log. The cause is that PrepRequestProcessor rollback > outstandingChanges of the second multi-op incorrectly causing sequential node > name generation to be incorrect. Below is the sequential node name generated > by PrepRequestProcessor > 1. create /a-0001 > 2. create /a-0003 > 3. create /a-0001 > The bug is getPendingChanges() method. In failed to copied ChangeRecord for > the parent node ("/"). So rollbackPendingChanges() cannot restore the right > previous change record of the parent node when aborting the second multi-op > The impact of this bug is that sequential node creation on the same parent > node may fail until the previous one is committed. I am not sure if there is > other implication or not. -- 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
[jira] [Commented] (ZOOKEEPER-1624) PrepRequestProcessor abort multi-operation incorrectly
[ https://issues.apache.org/jira/browse/ZOOKEEPER-1624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13768874#comment-13768874 ] Flavio Junqueira commented on ZOOKEEPER-1624: - @thawan, Could you give me some feedback here as well, please? As for the Java test, I was thinking that to make a multi-op transaction fail reliably, you could use check() with a znode, version pair that doesn't match, which will cause the transaction to fail. If the transaction also includes the creation of a sequential znode, then you should be able to trigger this bug, no? > PrepRequestProcessor abort multi-operation incorrectly > -- > > Key: ZOOKEEPER-1624 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1624 > Project: ZooKeeper > Issue Type: Bug > Components: server >Reporter: Thawan Kooburat >Assignee: Thawan Kooburat >Priority: Critical > Labels: zk-review > Fix For: 3.5.0, 3.4.6 > > Attachments: ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch, > ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch > > > We found this issue when trying to issue multiple instances of the following > multi-op concurrently > multi { > 1. create sequential node /a- > 2. create node /b > } > The expected result is that only the first multi-op request should success > and the rest of request should fail because /b is already exist > However, the reported result is that the subsequence multi-op failed because > of sequential node creation failed which is not possible. > Below is the return code for each sub-op when issuing 3 instances of the > above multi-op asynchronously > 1. ZOK, ZOK > 2. ZOK, ZNODEEXISTS, > 3. ZNODEEXISTS, ZRUNTIMEINCONSISTENCY, > When I added more debug log. The cause is that PrepRequestProcessor rollback > outstandingChanges of the second multi-op incorrectly causing sequential node > name generation to be incorrect. Below is the sequential node name generated > by PrepRequestProcessor > 1. create /a-0001 > 2. create /a-0003 > 3. create /a-0001 > The bug is getPendingChanges() method. In failed to copied ChangeRecord for > the parent node ("/"). So rollbackPendingChanges() cannot restore the right > previous change record of the parent node when aborting the second multi-op > The impact of this bug is that sequential node creation on the same parent > node may fail until the previous one is committed. I am not sure if there is > other implication or not. -- 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
[jira] [Commented] (ZOOKEEPER-1624) PrepRequestProcessor abort multi-operation incorrectly
[ https://issues.apache.org/jira/browse/ZOOKEEPER-1624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13750061#comment-13750061 ] Flavio Junqueira commented on ZOOKEEPER-1624: - I was wondering about what to do with this jira. We need to work on the java test case, and on top of it decide what to do for the 3.4 branch. I believe that we didn't check in ZOOKEEPER-1572 to the 3.4. branch because [~mahadev] said that we don't check in new features into an ongoing branch. Well, in this case, I'd say we should so that we can cleanly apply this patch, unless we come up with a way of testing that does not rely on the async multi api. On the java test case, [~thawan] says that it doesn't pass, but the last run on jenkins returned +1 for the core unit tests. Did you mean to say that it doesn't pass reliably? Could you people give me some feedback here, please, [~thawan], [~fournc]? > PrepRequestProcessor abort multi-operation incorrectly > -- > > Key: ZOOKEEPER-1624 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1624 > Project: ZooKeeper > Issue Type: Bug > Components: server >Reporter: Thawan Kooburat >Assignee: Thawan Kooburat >Priority: Critical > Labels: zk-review > Fix For: 3.5.0, 3.4.6 > > Attachments: ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch, > ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch > > > We found this issue when trying to issue multiple instances of the following > multi-op concurrently > multi { > 1. create sequential node /a- > 2. create node /b > } > The expected result is that only the first multi-op request should success > and the rest of request should fail because /b is already exist > However, the reported result is that the subsequence multi-op failed because > of sequential node creation failed which is not possible. > Below is the return code for each sub-op when issuing 3 instances of the > above multi-op asynchronously > 1. ZOK, ZOK > 2. ZOK, ZNODEEXISTS, > 3. ZNODEEXISTS, ZRUNTIMEINCONSISTENCY, > When I added more debug log. The cause is that PrepRequestProcessor rollback > outstandingChanges of the second multi-op incorrectly causing sequential node > name generation to be incorrect. Below is the sequential node name generated > by PrepRequestProcessor > 1. create /a-0001 > 2. create /a-0003 > 3. create /a-0001 > The bug is getPendingChanges() method. In failed to copied ChangeRecord for > the parent node ("/"). So rollbackPendingChanges() cannot restore the right > previous change record of the parent node when aborting the second multi-op > The impact of this bug is that sequential node creation on the same parent > node may fail until the previous one is committed. I am not sure if there is > other implication or not. -- 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
[jira] [Commented] (ZOOKEEPER-1624) PrepRequestProcessor abort multi-operation incorrectly
[ https://issues.apache.org/jira/browse/ZOOKEEPER-1624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13581968#comment-13581968 ] Hadoop QA commented on ZOOKEEPER-1624: -- +1 overall. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12570079/ZOOKEEPER-1624.patch against trunk revision 1447982. +1 @author. The patch does not contain any @author tags. +1 tests included. The patch appears to include 6 new or modified tests. +1 javadoc. The javadoc tool did not generate any warning messages. +1 javac. The applied patch does not increase the total number of javac compiler warnings. +1 findbugs. The patch does not introduce any new Findbugs (version 1.3.9) warnings. +1 release audit. The applied patch does not increase the total number of release audit warnings. +1 core tests. The patch passed core unit tests. +1 contrib tests. The patch passed contrib unit tests. Test results: https://builds.apache.org/job/PreCommit-ZOOKEEPER-Build/1402//testReport/ Findbugs warnings: https://builds.apache.org/job/PreCommit-ZOOKEEPER-Build/1402//artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html Console output: https://builds.apache.org/job/PreCommit-ZOOKEEPER-Build/1402//console This message is automatically generated. > PrepRequestProcessor abort multi-operation incorrectly > -- > > Key: ZOOKEEPER-1624 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1624 > Project: ZooKeeper > Issue Type: Bug > Components: server >Reporter: Thawan Kooburat >Assignee: Thawan Kooburat >Priority: Critical > Labels: zk-review > Fix For: 3.5.0, 3.4.6 > > Attachments: ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch, > ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch > > > We found this issue when trying to issue multiple instances of the following > multi-op concurrently > multi { > 1. create sequential node /a- > 2. create node /b > } > The expected result is that only the first multi-op request should success > and the rest of request should fail because /b is already exist > However, the reported result is that the subsequence multi-op failed because > of sequential node creation failed which is not possible. > Below is the return code for each sub-op when issuing 3 instances of the > above multi-op asynchronously > 1. ZOK, ZOK > 2. ZOK, ZNODEEXISTS, > 3. ZNODEEXISTS, ZRUNTIMEINCONSISTENCY, > When I added more debug log. The cause is that PrepRequestProcessor rollback > outstandingChanges of the second multi-op incorrectly causing sequential node > name generation to be incorrect. Below is the sequential node name generated > by PrepRequestProcessor > 1. create /a-0001 > 2. create /a-0003 > 3. create /a-0001 > The bug is getPendingChanges() method. In failed to copied ChangeRecord for > the parent node ("/"). So rollbackPendingChanges() cannot restore the right > previous change record of the parent node when aborting the second multi-op > The impact of this bug is that sequential node creation on the same parent > node may fail until the previous one is committed. I am not sure if there is > other implication or not. -- 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
[jira] [Commented] (ZOOKEEPER-1624) PrepRequestProcessor abort multi-operation incorrectly
[ https://issues.apache.org/jira/browse/ZOOKEEPER-1624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13581899#comment-13581899 ] Hadoop QA commented on ZOOKEEPER-1624: -- -1 overall. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12570055/ZOOKEEPER-1624.patch against trunk revision 1447982. +1 @author. The patch does not contain any @author tags. +1 tests included. The patch appears to include 6 new or modified tests. +1 javadoc. The javadoc tool did not generate any warning messages. +1 javac. The applied patch does not increase the total number of javac compiler warnings. +1 findbugs. The patch does not introduce any new Findbugs (version 1.3.9) warnings. +1 release audit. The applied patch does not increase the total number of release audit warnings. -1 core tests. The patch failed core unit tests. +1 contrib tests. The patch passed contrib unit tests. Test results: https://builds.apache.org/job/PreCommit-ZOOKEEPER-Build/1400//testReport/ Findbugs warnings: https://builds.apache.org/job/PreCommit-ZOOKEEPER-Build/1400//artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html Console output: https://builds.apache.org/job/PreCommit-ZOOKEEPER-Build/1400//console This message is automatically generated. > PrepRequestProcessor abort multi-operation incorrectly > -- > > Key: ZOOKEEPER-1624 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1624 > Project: ZooKeeper > Issue Type: Bug > Components: server >Reporter: Thawan Kooburat >Assignee: Thawan Kooburat >Priority: Critical > Labels: zk-review > Fix For: 3.5.0, 3.4.6 > > Attachments: ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch, > ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch > > > We found this issue when trying to issue multiple instances of the following > multi-op concurrently > multi { > 1. create sequential node /a- > 2. create node /b > } > The expected result is that only the first multi-op request should success > and the rest of request should fail because /b is already exist > However, the reported result is that the subsequence multi-op failed because > of sequential node creation failed which is not possible. > Below is the return code for each sub-op when issuing 3 instances of the > above multi-op asynchronously > 1. ZOK, ZOK > 2. ZOK, ZNODEEXISTS, > 3. ZNODEEXISTS, ZRUNTIMEINCONSISTENCY, > When I added more debug log. The cause is that PrepRequestProcessor rollback > outstandingChanges of the second multi-op incorrectly causing sequential node > name generation to be incorrect. Below is the sequential node name generated > by PrepRequestProcessor > 1. create /a-0001 > 2. create /a-0003 > 3. create /a-0001 > The bug is getPendingChanges() method. In failed to copied ChangeRecord for > the parent node ("/"). So rollbackPendingChanges() cannot restore the right > previous change record of the parent node when aborting the second multi-op > The impact of this bug is that sequential node creation on the same parent > node may fail until the previous one is committed. I am not sure if there is > other implication or not. -- 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
[jira] [Commented] (ZOOKEEPER-1624) PrepRequestProcessor abort multi-operation incorrectly
[ https://issues.apache.org/jira/browse/ZOOKEEPER-1624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13581869#comment-13581869 ] Camille Fournier commented on ZOOKEEPER-1624: - This new patch still doesn't seem to have the Java test. > PrepRequestProcessor abort multi-operation incorrectly > -- > > Key: ZOOKEEPER-1624 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1624 > Project: ZooKeeper > Issue Type: Bug > Components: server >Reporter: Thawan Kooburat >Assignee: Thawan Kooburat >Priority: Critical > Labels: zk-review > Fix For: 3.5.0, 3.4.6 > > Attachments: ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch, > ZOOKEEPER-1624.patch > > > We found this issue when trying to issue multiple instances of the following > multi-op concurrently > multi { > 1. create sequential node /a- > 2. create node /b > } > The expected result is that only the first multi-op request should success > and the rest of request should fail because /b is already exist > However, the reported result is that the subsequence multi-op failed because > of sequential node creation failed which is not possible. > Below is the return code for each sub-op when issuing 3 instances of the > above multi-op asynchronously > 1. ZOK, ZOK > 2. ZOK, ZNODEEXISTS, > 3. ZNODEEXISTS, ZRUNTIMEINCONSISTENCY, > When I added more debug log. The cause is that PrepRequestProcessor rollback > outstandingChanges of the second multi-op incorrectly causing sequential node > name generation to be incorrect. Below is the sequential node name generated > by PrepRequestProcessor > 1. create /a-0001 > 2. create /a-0003 > 3. create /a-0001 > The bug is getPendingChanges() method. In failed to copied ChangeRecord for > the parent node ("/"). So rollbackPendingChanges() cannot restore the right > previous change record of the parent node when aborting the second multi-op > The impact of this bug is that sequential node creation on the same parent > node may fail until the previous one is committed. I am not sure if there is > other implication or not. -- 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
[jira] [Commented] (ZOOKEEPER-1624) PrepRequestProcessor abort multi-operation incorrectly
[ https://issues.apache.org/jira/browse/ZOOKEEPER-1624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13581737#comment-13581737 ] Hadoop QA commented on ZOOKEEPER-1624: -- +1 overall. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12570018/ZOOKEEPER-1624.patch against trunk revision 1447621. +1 @author. The patch does not contain any @author tags. +1 tests included. The patch appears to include 3 new or modified tests. +1 javadoc. The javadoc tool did not generate any warning messages. +1 javac. The applied patch does not increase the total number of javac compiler warnings. +1 findbugs. The patch does not introduce any new Findbugs (version 1.3.9) warnings. +1 release audit. The applied patch does not increase the total number of release audit warnings. +1 core tests. The patch passed core unit tests. +1 contrib tests. The patch passed contrib unit tests. Test results: https://builds.apache.org/job/PreCommit-ZOOKEEPER-Build/1398//testReport/ Findbugs warnings: https://builds.apache.org/job/PreCommit-ZOOKEEPER-Build/1398//artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html Console output: https://builds.apache.org/job/PreCommit-ZOOKEEPER-Build/1398//console This message is automatically generated. > PrepRequestProcessor abort multi-operation incorrectly > -- > > Key: ZOOKEEPER-1624 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1624 > Project: ZooKeeper > Issue Type: Bug > Components: server >Reporter: Thawan Kooburat >Assignee: Thawan Kooburat >Priority: Critical > Labels: zk-review > Fix For: 3.5.0, 3.4.6 > > Attachments: ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch, > ZOOKEEPER-1624.patch > > > We found this issue when trying to issue multiple instances of the following > multi-op concurrently > multi { > 1. create sequential node /a- > 2. create node /b > } > The expected result is that only the first multi-op request should success > and the rest of request should fail because /b is already exist > However, the reported result is that the subsequence multi-op failed because > of sequential node creation failed which is not possible. > Below is the return code for each sub-op when issuing 3 instances of the > above multi-op asynchronously > 1. ZOK, ZOK > 2. ZOK, ZNODEEXISTS, > 3. ZNODEEXISTS, ZRUNTIMEINCONSISTENCY, > When I added more debug log. The cause is that PrepRequestProcessor rollback > outstandingChanges of the second multi-op incorrectly causing sequential node > name generation to be incorrect. Below is the sequential node name generated > by PrepRequestProcessor > 1. create /a-0001 > 2. create /a-0003 > 3. create /a-0001 > The bug is getPendingChanges() method. In failed to copied ChangeRecord for > the parent node ("/"). So rollbackPendingChanges() cannot restore the right > previous change record of the parent node when aborting the second multi-op > The impact of this bug is that sequential node creation on the same parent > node may fail until the previous one is committed. I am not sure if there is > other implication or not. -- 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
[jira] [Commented] (ZOOKEEPER-1624) PrepRequestProcessor abort multi-operation incorrectly
[ https://issues.apache.org/jira/browse/ZOOKEEPER-1624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13580987#comment-13580987 ] Camille Fournier commented on ZOOKEEPER-1624: - Can we get a test for this in Java now that ZOOKEEPER-1572 has been committed? I can't get the cppunit build to run and I'm uncomfortable approving a patch where I can't see the tests fail and pass. > PrepRequestProcessor abort multi-operation incorrectly > -- > > Key: ZOOKEEPER-1624 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1624 > Project: ZooKeeper > Issue Type: Bug > Components: server >Reporter: Thawan Kooburat >Assignee: Thawan Kooburat >Priority: Critical > Labels: zk-review > Fix For: 3.5.0, 3.4.6 > > Attachments: ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch > > > We found this issue when trying to issue multiple instances of the following > multi-op concurrently > multi { > 1. create sequential node /a- > 2. create node /b > } > The expected result is that only the first multi-op request should success > and the rest of request should fail because /b is already exist > However, the reported result is that the subsequence multi-op failed because > of sequential node creation failed which is not possible. > Below is the return code for each sub-op when issuing 3 instances of the > above multi-op asynchronously > 1. ZOK, ZOK > 2. ZOK, ZNODEEXISTS, > 3. ZNODEEXISTS, ZRUNTIMEINCONSISTENCY, > When I added more debug log. The cause is that PrepRequestProcessor rollback > outstandingChanges of the second multi-op incorrectly causing sequential node > name generation to be incorrect. Below is the sequential node name generated > by PrepRequestProcessor > 1. create /a-0001 > 2. create /a-0003 > 3. create /a-0001 > The bug is getPendingChanges() method. In failed to copied ChangeRecord for > the parent node ("/"). So rollbackPendingChanges() cannot restore the right > previous change record of the parent node when aborting the second multi-op > The impact of this bug is that sequential node creation on the same parent > node may fail until the previous one is committed. I am not sure if there is > other implication or not. -- 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
[jira] [Commented] (ZOOKEEPER-1624) PrepRequestProcessor abort multi-operation incorrectly
[ https://issues.apache.org/jira/browse/ZOOKEEPER-1624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13569147#comment-13569147 ] Hadoop QA commented on ZOOKEEPER-1624: -- -1 overall. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12567638/ZOOKEEPER-1624.patch against trunk revision 1438375. +1 @author. The patch does not contain any @author tags. +1 tests included. The patch appears to include 3 new or modified tests. +1 javadoc. The javadoc tool did not generate any warning messages. +1 javac. The applied patch does not increase the total number of javac compiler warnings. +1 findbugs. The patch does not introduce any new Findbugs (version 1.3.9) warnings. -1 release audit. The applied patch generated 26 release audit warnings (more than the trunk's current 24 warnings). +1 core tests. The patch passed core unit tests. +1 contrib tests. The patch passed contrib unit tests. Test results: https://builds.apache.org/job/PreCommit-ZOOKEEPER-Build/1375//testReport/ Release audit warnings: https://builds.apache.org/job/PreCommit-ZOOKEEPER-Build/1375//artifact/trunk/patchprocess/patchReleaseAuditProblems.txt Findbugs warnings: https://builds.apache.org/job/PreCommit-ZOOKEEPER-Build/1375//artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html Console output: https://builds.apache.org/job/PreCommit-ZOOKEEPER-Build/1375//console This message is automatically generated. > PrepRequestProcessor abort multi-operation incorrectly > -- > > Key: ZOOKEEPER-1624 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1624 > Project: ZooKeeper > Issue Type: Bug > Components: server >Reporter: Thawan Kooburat >Assignee: Thawan Kooburat >Priority: Critical > Labels: zk-review > Fix For: 3.5.0 > > Attachments: ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch > > > We found this issue when trying to issue multiple instances of the following > multi-op concurrently > multi { > 1. create sequential node /a- > 2. create node /b > } > The expected result is that only the first multi-op request should success > and the rest of request should fail because /b is already exist > However, the reported result is that the subsequence multi-op failed because > of sequential node creation failed which is not possible. > Below is the return code for each sub-op when issuing 3 instances of the > above multi-op asynchronously > 1. ZOK, ZOK > 2. ZOK, ZNODEEXISTS, > 3. ZNODEEXISTS, ZRUNTIMEINCONSISTENCY, > When I added more debug log. The cause is that PrepRequestProcessor rollback > outstandingChanges of the second multi-op incorrectly causing sequential node > name generation to be incorrect. Below is the sequential node name generated > by PrepRequestProcessor > 1. create /a-0001 > 2. create /a-0003 > 3. create /a-0001 > The bug is getPendingChanges() method. In failed to copied ChangeRecord for > the parent node ("/"). So rollbackPendingChanges() cannot restore the right > previous change record of the parent node when aborting the second multi-op > The impact of this bug is that sequential node creation on the same parent > node may fail until the previous one is committed. I am not sure if there is > other implication or not. -- 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
[jira] [Commented] (ZOOKEEPER-1624) PrepRequestProcessor abort multi-operation incorrectly
[ https://issues.apache.org/jira/browse/ZOOKEEPER-1624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13569138#comment-13569138 ] Ted Yu commented on ZOOKEEPER-1624: --- The fix would be backported to 3.4, right ? > PrepRequestProcessor abort multi-operation incorrectly > -- > > Key: ZOOKEEPER-1624 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1624 > Project: ZooKeeper > Issue Type: Bug > Components: server >Reporter: Thawan Kooburat >Assignee: Thawan Kooburat >Priority: Critical > Labels: zk-review > Fix For: 3.5.0 > > Attachments: ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch > > > We found this issue when trying to issue multiple instances of the following > multi-op concurrently > multi { > 1. create sequential node /a- > 2. create node /b > } > The expected result is that only the first multi-op request should success > and the rest of request should fail because /b is already exist > However, the reported result is that the subsequence multi-op failed because > of sequential node creation failed which is not possible. > Below is the return code for each sub-op when issuing 3 instances of the > above multi-op asynchronously > 1. ZOK, ZOK > 2. ZOK, ZNODEEXISTS, > 3. ZNODEEXISTS, ZRUNTIMEINCONSISTENCY, > When I added more debug log. The cause is that PrepRequestProcessor rollback > outstandingChanges of the second multi-op incorrectly causing sequential node > name generation to be incorrect. Below is the sequential node name generated > by PrepRequestProcessor > 1. create /a-0001 > 2. create /a-0003 > 3. create /a-0001 > The bug is getPendingChanges() method. In failed to copied ChangeRecord for > the parent node ("/"). So rollbackPendingChanges() cannot restore the right > previous change record of the parent node when aborting the second multi-op > The impact of this bug is that sequential node creation on the same parent > node may fail until the previous one is committed. I am not sure if there is > other implication or not. -- 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
[jira] [Commented] (ZOOKEEPER-1624) PrepRequestProcessor abort multi-operation incorrectly
[ https://issues.apache.org/jira/browse/ZOOKEEPER-1624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13569136#comment-13569136 ] Camille Fournier commented on ZOOKEEPER-1624: - Oh that's great Thawan, I will see about getting 1572 committed so we can get an easy Java-side test for this bug. > PrepRequestProcessor abort multi-operation incorrectly > -- > > Key: ZOOKEEPER-1624 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1624 > Project: ZooKeeper > Issue Type: Bug > Components: server >Reporter: Thawan Kooburat >Assignee: Thawan Kooburat >Priority: Critical > Labels: zk-review > Fix For: 3.5.0 > > Attachments: ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch > > > We found this issue when trying to issue multiple instances of the following > multi-op concurrently > multi { > 1. create sequential node /a- > 2. create node /b > } > The expected result is that only the first multi-op request should success > and the rest of request should fail because /b is already exist > However, the reported result is that the subsequence multi-op failed because > of sequential node creation failed which is not possible. > Below is the return code for each sub-op when issuing 3 instances of the > above multi-op asynchronously > 1. ZOK, ZOK > 2. ZOK, ZNODEEXISTS, > 3. ZNODEEXISTS, ZRUNTIMEINCONSISTENCY, > When I added more debug log. The cause is that PrepRequestProcessor rollback > outstandingChanges of the second multi-op incorrectly causing sequential node > name generation to be incorrect. Below is the sequential node name generated > by PrepRequestProcessor > 1. create /a-0001 > 2. create /a-0003 > 3. create /a-0001 > The bug is getPendingChanges() method. In failed to copied ChangeRecord for > the parent node ("/"). So rollbackPendingChanges() cannot restore the right > previous change record of the parent node when aborting the second multi-op > The impact of this bug is that sequential node creation on the same parent > node may fail until the previous one is committed. I am not sure if there is > other implication or not. -- 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
[jira] [Commented] (ZOOKEEPER-1624) PrepRequestProcessor abort multi-operation incorrectly
[ https://issues.apache.org/jira/browse/ZOOKEEPER-1624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13569121#comment-13569121 ] Thawan Kooburat commented on ZOOKEEPER-1624: It should be simple to replicate if ZOOKEEPER-1572 is committed to trunk. We just need async functionality to test this. > PrepRequestProcessor abort multi-operation incorrectly > -- > > Key: ZOOKEEPER-1624 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1624 > Project: ZooKeeper > Issue Type: Bug > Components: server >Reporter: Thawan Kooburat >Assignee: Thawan Kooburat >Priority: Critical > Labels: zk-review > Fix For: 3.5.0 > > Attachments: ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch > > > We found this issue when trying to issue multiple instances of the following > multi-op concurrently > multi { > 1. create sequential node /a- > 2. create node /b > } > The expected result is that only the first multi-op request should success > and the rest of request should fail because /b is already exist > However, the reported result is that the subsequence multi-op failed because > of sequential node creation failed which is not possible. > Below is the return code for each sub-op when issuing 3 instances of the > above multi-op asynchronously > 1. ZOK, ZOK > 2. ZOK, ZNODEEXISTS, > 3. ZNODEEXISTS, ZRUNTIMEINCONSISTENCY, > When I added more debug log. The cause is that PrepRequestProcessor rollback > outstandingChanges of the second multi-op incorrectly causing sequential node > name generation to be incorrect. Below is the sequential node name generated > by PrepRequestProcessor > 1. create /a-0001 > 2. create /a-0003 > 3. create /a-0001 > The bug is getPendingChanges() method. In failed to copied ChangeRecord for > the parent node ("/"). So rollbackPendingChanges() cannot restore the right > previous change record of the parent node when aborting the second multi-op > The impact of this bug is that sequential node creation on the same parent > node may fail until the previous one is committed. I am not sure if there is > other implication or not. -- 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
[jira] [Commented] (ZOOKEEPER-1624) PrepRequestProcessor abort multi-operation incorrectly
[ https://issues.apache.org/jira/browse/ZOOKEEPER-1624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13569107#comment-13569107 ] Camille Fournier commented on ZOOKEEPER-1624: - I started looking at this. I am very unhappy that we have to write a C client test to reveal a bug in our Java core. I'm working on writing a java test to replicate because we really should not have to rely on tests that should only be for the client side code to test our server. > PrepRequestProcessor abort multi-operation incorrectly > -- > > Key: ZOOKEEPER-1624 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1624 > Project: ZooKeeper > Issue Type: Bug > Components: server >Reporter: Thawan Kooburat >Assignee: Thawan Kooburat >Priority: Critical > Labels: zk-review > Fix For: 3.5.0 > > Attachments: ZOOKEEPER-1624.patch, ZOOKEEPER-1624.patch > > > We found this issue when trying to issue multiple instances of the following > multi-op concurrently > multi { > 1. create sequential node /a- > 2. create node /b > } > The expected result is that only the first multi-op request should success > and the rest of request should fail because /b is already exist > However, the reported result is that the subsequence multi-op failed because > of sequential node creation failed which is not possible. > Below is the return code for each sub-op when issuing 3 instances of the > above multi-op asynchronously > 1. ZOK, ZOK > 2. ZOK, ZNODEEXISTS, > 3. ZNODEEXISTS, ZRUNTIMEINCONSISTENCY, > When I added more debug log. The cause is that PrepRequestProcessor rollback > outstandingChanges of the second multi-op incorrectly causing sequential node > name generation to be incorrect. Below is the sequential node name generated > by PrepRequestProcessor > 1. create /a-0001 > 2. create /a-0003 > 3. create /a-0001 > The bug is getPendingChanges() method. In failed to copied ChangeRecord for > the parent node ("/"). So rollbackPendingChanges() cannot restore the right > previous change record of the parent node when aborting the second multi-op > The impact of this bug is that sequential node creation on the same parent > node may fail until the previous one is committed. I am not sure if there is > other implication or not. -- 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
[jira] [Commented] (ZOOKEEPER-1624) PrepRequestProcessor abort multi-operation incorrectly
[ https://issues.apache.org/jira/browse/ZOOKEEPER-1624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13557586#comment-13557586 ] Thawan Kooburat commented on ZOOKEEPER-1624: Any multi-op expert can help on initial feedback? > PrepRequestProcessor abort multi-operation incorrectly > -- > > Key: ZOOKEEPER-1624 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1624 > Project: ZooKeeper > Issue Type: Bug > Components: server >Reporter: Thawan Kooburat >Assignee: Thawan Kooburat >Priority: Critical > Labels: zk-review > Fix For: 3.5.0 > > Attachments: ZOOKEEPER-1624.patch > > > We found this issue when trying to issue multiple instances of the following > multi-op concurrently > multi { > 1. create sequential node /a- > 2. create node /b > } > The expected result is that only the first multi-op request should success > and the rest of request should fail because /b is already exist > However, the reported result is that the subsequence multi-op failed because > of sequential node creation failed which is not possible. > Below is the return code for each sub-op when issuing 3 instances of the > above multi-op asynchronously > 1. ZOK, ZOK > 2. ZOK, ZNODEEXISTS, > 3. ZNODEEXISTS, ZRUNTIMEINCONSISTENCY, > When I added more debug log. The cause is that PrepRequestProcessor rollback > outstandingChanges of the second multi-op incorrectly causing sequential node > name generation to be incorrect. Below is the sequential node name generated > by PrepRequestProcessor > 1. create /a-0001 > 2. create /a-0003 > 3. create /a-0001 > The bug is getPendingChanges() method. In failed to copied ChangeRecord for > the parent node ("/"). So rollbackPendingChanges() cannot restore the right > previous change record of the parent node when aborting the second multi-op > The impact of this bug is that sequential node creation on the same parent > node may fail until the previous one is committed. I am not sure if there is > other implication or not. -- 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
[jira] [Commented] (ZOOKEEPER-1624) PrepRequestProcessor abort multi-operation incorrectly
[ https://issues.apache.org/jira/browse/ZOOKEEPER-1624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13556954#comment-13556954 ] Hadoop QA commented on ZOOKEEPER-1624: -- +1 overall. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12565429/ZOOKEEPER-1624.patch against trunk revision 1434978. +1 @author. The patch does not contain any @author tags. +1 tests included. The patch appears to include 3 new or modified tests. +1 javadoc. The javadoc tool did not generate any warning messages. +1 javac. The applied patch does not increase the total number of javac compiler warnings. +1 findbugs. The patch does not introduce any new Findbugs (version 1.3.9) warnings. +1 release audit. The applied patch does not increase the total number of release audit warnings. +1 core tests. The patch passed core unit tests. +1 contrib tests. The patch passed contrib unit tests. Test results: https://builds.apache.org/job/PreCommit-ZOOKEEPER-Build/1343//testReport/ Findbugs warnings: https://builds.apache.org/job/PreCommit-ZOOKEEPER-Build/1343//artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html Console output: https://builds.apache.org/job/PreCommit-ZOOKEEPER-Build/1343//console This message is automatically generated. > PrepRequestProcessor abort multi-operation incorrectly > -- > > Key: ZOOKEEPER-1624 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1624 > Project: ZooKeeper > Issue Type: Bug > Components: server >Reporter: Thawan Kooburat >Assignee: Thawan Kooburat >Priority: Critical > Attachments: ZOOKEEPER-1624.patch > > > We found this issue when trying to issue multiple instances of the following > multi-op concurrently > multi { > 1. create sequential node /a- > 2. create node /b > } > The expected result is that only the first multi-op request should success > and the rest of request should fail because /b is already exist > However, the reported result is that the subsequence multi-op failed because > of sequential node creation failed which is not possible. > Below is the return code for each sub-op when issuing 3 instances of the > above multi-op asynchronously > 1. ZOK, ZOK > 2. ZOK, ZNODEEXISTS, > 3. ZNODEEXISTS, ZRUNTIMEINCONSISTENCY, > When I added more debug log. The cause is that PrepRequestProcessor rollback > outstandingChanges of the second multi-op incorrectly causing sequential node > name generation to be incorrect. Below is the sequential node name generated > by PrepRequestProcessor > 1. create /a-0001 > 2. create /a-0003 > 3. create /a-0001 > The bug is getPendingChanges() method. In failed to copied ChangeRecord for > the parent node ("/"). So rollbackPendingChanges() cannot restore the right > previous change record of the parent node when aborting the second multi-op > The impact of this bug is that sequential node creation on the same parent > node may fail until the previous one is committed. I am not sure if there is > other implication or not. -- 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