[jira] [Commented] (ZOOKEEPER-2496) When inside a transaction, some exceptions do not have path information set.
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2496?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15525954#comment-15525954 ] Kazuaki Banzai commented on ZOOKEEPER-2496: --- Thanks [~arshad.mohammad] for uploading the path. I added a test for async multi and its fix to your patch. Unfortunately, I couldn't fix this bug in the same place(the fix is in ClientCnxn.processEvent). For future changes, I added a comment to ZooKeeper.multiInternal. > When inside a transaction, some exceptions do not have path information set. > > > Key: ZOOKEEPER-2496 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2496 > Project: ZooKeeper > Issue Type: Bug >Affects Versions: 3.4.8, 3.5.1 >Reporter: Kazuaki Banzai > Attachments: transactionException.patch > > > If a client tries to execute some illegal operations inside a transaction, > ZooKeeper throws an exception. > Some exceptions such as NodeExistsException should have a path to indicate > where the exception occurred. > ZooKeeper clients can get the path by calling method getPath. > However, this method returns null if the exception occurs inside a > transaction. > For example, when a client calls create /a and create /a in a transaction, > ZooKeeper throws NodeExistsException but getPath returns null. > In normal operation (outside transactions), the path information is set > correctly. > The patch only shows this bug occurs with NoNode exception and NodeExists > exception, > but this bug seems to occur with any exception which needs a path information: > When an error occurred in a transaction, ZooKeeper creates an ErrorResult > instance to represent error result. > However, the ErrorResult class doesn't have a field for a path where an error > occurred(See src/java/main/org/apache/zookeeper/OpResult.java for more > details). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (ZOOKEEPER-2496) When inside a transaction, some exceptions do not have path information set.
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2496?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15522321#comment-15522321 ] Cyrille Artho commented on ZOOKEEPER-2496: -- For a unit test, yes, the check on whether the path returned by the exception (or rather, the return code indicating there was one) has to be checked by the callback handler. Our path for ZOOKEEPER-2496 from 2016-08-01 does not include a test for asynchronous multi. Such a test would be welcome. In ZooKeeper itself, it is of course preferable if the missing path info can be fixed in one place (same fix for sync and async). I have not checked the source in detail, but I would only fix this in two places (separate fix for sync and async) if there is no other way. Otherwise we have partial code duplication that may lead to future changes not being applied consistently in both cases. > When inside a transaction, some exceptions do not have path information set. > > > Key: ZOOKEEPER-2496 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2496 > Project: ZooKeeper > Issue Type: Bug >Affects Versions: 3.4.8, 3.5.1 >Reporter: Kazuaki Banzai > Attachments: transactionException.patch > > > If a client tries to execute some illegal operations inside a transaction, > ZooKeeper throws an exception. > Some exceptions such as NodeExistsException should have a path to indicate > where the exception occurred. > ZooKeeper clients can get the path by calling method getPath. > However, this method returns null if the exception occurs inside a > transaction. > For example, when a client calls create /a and create /a in a transaction, > ZooKeeper throws NodeExistsException but getPath returns null. > In normal operation (outside transactions), the path information is set > correctly. > The patch only shows this bug occurs with NoNode exception and NodeExists > exception, > but this bug seems to occur with any exception which needs a path information: > When an error occurred in a transaction, ZooKeeper creates an ErrorResult > instance to represent error result. > However, the ErrorResult class doesn't have a field for a path where an error > occurred(See src/java/main/org/apache/zookeeper/OpResult.java for more > details). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (ZOOKEEPER-2496) When inside a transaction, some exceptions do not have path information set.
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2496?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15518596#comment-15518596 ] Arshad Mohammad commented on ZOOKEEPER-2496: Async multi API does process the result and also it does not throw execption. Result is processed in the callback handler I think the logic to find path of transaction should be written in the callback handler. Any thought? I am just re-basing the ZOOKEEPER-2276 patch > When inside a transaction, some exceptions do not have path information set. > > > Key: ZOOKEEPER-2496 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2496 > Project: ZooKeeper > Issue Type: Bug >Affects Versions: 3.4.8, 3.5.1 >Reporter: Kazuaki Banzai > Attachments: transactionException.patch > > > If a client tries to execute some illegal operations inside a transaction, > ZooKeeper throws an exception. > Some exceptions such as NodeExistsException should have a path to indicate > where the exception occurred. > ZooKeeper clients can get the path by calling method getPath. > However, this method returns null if the exception occurs inside a > transaction. > For example, when a client calls create /a and create /a in a transaction, > ZooKeeper throws NodeExistsException but getPath returns null. > In normal operation (outside transactions), the path information is set > correctly. > The patch only shows this bug occurs with NoNode exception and NodeExists > exception, > but this bug seems to occur with any exception which needs a path information: > When an error occurred in a transaction, ZooKeeper creates an ErrorResult > instance to represent error result. > However, the ErrorResult class doesn't have a field for a path where an error > occurred(See src/java/main/org/apache/zookeeper/OpResult.java for more > details). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (ZOOKEEPER-2496) When inside a transaction, some exceptions do not have path information set.
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2496?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15516289#comment-15516289 ] Arshad Mohammad commented on ZOOKEEPER-2496: Thanks [~kazuakibanzai] for the feeback on ZOOKEEPER-2276. If you have already fixed both scenarios you mentioned I can assign you ZOOKEEPER-2276, may be you can submit patch there or here in this jira. Otherwise i will submit new patch for ZOOKEEPER-2276 soon. > When inside a transaction, some exceptions do not have path information set. > > > Key: ZOOKEEPER-2496 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2496 > Project: ZooKeeper > Issue Type: Bug >Affects Versions: 3.4.8, 3.5.1 >Reporter: Kazuaki Banzai > Attachments: transactionException.patch > > > If a client tries to execute some illegal operations inside a transaction, > ZooKeeper throws an exception. > Some exceptions such as NodeExistsException should have a path to indicate > where the exception occurred. > ZooKeeper clients can get the path by calling method getPath. > However, this method returns null if the exception occurs inside a > transaction. > For example, when a client calls create /a and create /a in a transaction, > ZooKeeper throws NodeExistsException but getPath returns null. > In normal operation (outside transactions), the path information is set > correctly. > The patch only shows this bug occurs with NoNode exception and NodeExists > exception, > but this bug seems to occur with any exception which needs a path information: > When an error occurred in a transaction, ZooKeeper creates an ErrorResult > instance to represent error result. > However, the ErrorResult class doesn't have a field for a path where an error > occurred(See src/java/main/org/apache/zookeeper/OpResult.java for more > details). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (ZOOKEEPER-2496) When inside a transaction, some exceptions do not have path information set.
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2496?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15516125#comment-15516125 ] Kazuaki Banzai commented on ZOOKEEPER-2496: --- Dear Mr.Artho, > Is the following correct? > Issue 2276 reports and fixes one variant of the bug. > Our issue (2496) covers both variants and includes a test for them, but > no fix. Yes it is. (Issue 2276 fixes the sync multi bug only. The async version is not fixed.) > When inside a transaction, some exceptions do not have path information set. > > > Key: ZOOKEEPER-2496 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2496 > Project: ZooKeeper > Issue Type: Bug >Affects Versions: 3.4.8, 3.5.1 >Reporter: Kazuaki Banzai > Attachments: transactionException.patch > > > If a client tries to execute some illegal operations inside a transaction, > ZooKeeper throws an exception. > Some exceptions such as NodeExistsException should have a path to indicate > where the exception occurred. > ZooKeeper clients can get the path by calling method getPath. > However, this method returns null if the exception occurs inside a > transaction. > For example, when a client calls create /a and create /a in a transaction, > ZooKeeper throws NodeExistsException but getPath returns null. > In normal operation (outside transactions), the path information is set > correctly. > The patch only shows this bug occurs with NoNode exception and NodeExists > exception, > but this bug seems to occur with any exception which needs a path information: > When an error occurred in a transaction, ZooKeeper creates an ErrorResult > instance to represent error result. > However, the ErrorResult class doesn't have a field for a path where an error > occurred(See src/java/main/org/apache/zookeeper/OpResult.java for more > details). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (ZOOKEEPER-2496) When inside a transaction, some exceptions do not have path information set.
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2496?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15516107#comment-15516107 ] Cyrille Artho commented on ZOOKEEPER-2496: -- Dear Banzai-san, Thank you for commenting on that issue. Is the following correct? * Issue 2276 reports and fixes one variant of the bug. * Our issue (2496) covers both variants and includes a test for them, but no fix. Key: ZOOKEEPER-2496 -- Regards, Cyrille Artho - http://artho.com/ Youth -- not a time of life but a state of mind... a predominance of courage over timidity, of the appetite for adventure over the love of ease. -- Robert F. Kennedy > When inside a transaction, some exceptions do not have path information set. > > > Key: ZOOKEEPER-2496 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2496 > Project: ZooKeeper > Issue Type: Bug >Affects Versions: 3.4.8, 3.5.1 >Reporter: Kazuaki Banzai > Attachments: transactionException.patch > > > If a client tries to execute some illegal operations inside a transaction, > ZooKeeper throws an exception. > Some exceptions such as NodeExistsException should have a path to indicate > where the exception occurred. > ZooKeeper clients can get the path by calling method getPath. > However, this method returns null if the exception occurs inside a > transaction. > For example, when a client calls create /a and create /a in a transaction, > ZooKeeper throws NodeExistsException but getPath returns null. > In normal operation (outside transactions), the path information is set > correctly. > The patch only shows this bug occurs with NoNode exception and NodeExists > exception, > but this bug seems to occur with any exception which needs a path information: > When an error occurred in a transaction, ZooKeeper creates an ErrorResult > instance to represent error result. > However, the ErrorResult class doesn't have a field for a path where an error > occurred(See src/java/main/org/apache/zookeeper/OpResult.java for more > details). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (ZOOKEEPER-2496) When inside a transaction, some exceptions do not have path information set.
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2496?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15516095#comment-15516095 ] Kazuaki Banzai commented on ZOOKEEPER-2496: --- [~eribeiro] Thank you for replying. It is the same bug. I applied the patch (https://issues.apache.org/jira/browse/ZOOKEEPER-2276) on zookeeper-3.5.0, and it passed the TransactionExceptionTest. However, it didn't pass the MultiTransactionTest. > When inside a transaction, some exceptions do not have path information set. > > > Key: ZOOKEEPER-2496 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2496 > Project: ZooKeeper > Issue Type: Bug >Affects Versions: 3.4.8, 3.5.1 >Reporter: Kazuaki Banzai > Attachments: transactionException.patch > > > If a client tries to execute some illegal operations inside a transaction, > ZooKeeper throws an exception. > Some exceptions such as NodeExistsException should have a path to indicate > where the exception occurred. > ZooKeeper clients can get the path by calling method getPath. > However, this method returns null if the exception occurs inside a > transaction. > For example, when a client calls create /a and create /a in a transaction, > ZooKeeper throws NodeExistsException but getPath returns null. > In normal operation (outside transactions), the path information is set > correctly. > The patch only shows this bug occurs with NoNode exception and NodeExists > exception, > but this bug seems to occur with any exception which needs a path information: > When an error occurred in a transaction, ZooKeeper creates an ErrorResult > instance to represent error result. > However, the ErrorResult class doesn't have a field for a path where an error > occurred(See src/java/main/org/apache/zookeeper/OpResult.java for more > details). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (ZOOKEEPER-2496) When inside a transaction, some exceptions do not have path information set.
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2496?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15513124#comment-15513124 ] Cyrille Artho commented on ZOOKEEPER-2496: -- Looks like the same bug to me. > When inside a transaction, some exceptions do not have path information set. > > > Key: ZOOKEEPER-2496 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2496 > Project: ZooKeeper > Issue Type: Bug >Affects Versions: 3.4.8, 3.5.1 >Reporter: Kazuaki Banzai > Attachments: transactionException.patch > > > If a client tries to execute some illegal operations inside a transaction, > ZooKeeper throws an exception. > Some exceptions such as NodeExistsException should have a path to indicate > where the exception occurred. > ZooKeeper clients can get the path by calling method getPath. > However, this method returns null if the exception occurs inside a > transaction. > For example, when a client calls create /a and create /a in a transaction, > ZooKeeper throws NodeExistsException but getPath returns null. > In normal operation (outside transactions), the path information is set > correctly. > The patch only shows this bug occurs with NoNode exception and NodeExists > exception, > but this bug seems to occur with any exception which needs a path information: > When an error occurred in a transaction, ZooKeeper creates an ErrorResult > instance to represent error result. > However, the ErrorResult class doesn't have a field for a path where an error > occurred(See src/java/main/org/apache/zookeeper/OpResult.java for more > details). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (ZOOKEEPER-2496) When inside a transaction, some exceptions do not have path information set.
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2496?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15490356#comment-15490356 ] Edward Ribeiro commented on ZOOKEEPER-2496: --- Hey [~kazuakibanzai], could you please confirm if this issue is not a duplicate of https://issues.apache.org/jira/browse/ZOOKEEPER-2276 ? Thanks > When inside a transaction, some exceptions do not have path information set. > > > Key: ZOOKEEPER-2496 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2496 > Project: ZooKeeper > Issue Type: Bug >Affects Versions: 3.4.8, 3.5.1 >Reporter: Kazuaki Banzai > Attachments: transactionException.patch > > > If a client tries to execute some illegal operations inside a transaction, > ZooKeeper throws an exception. > Some exceptions such as NodeExistsException should have a path to indicate > where the exception occurred. > ZooKeeper clients can get the path by calling method getPath. > However, this method returns null if the exception occurs inside a > transaction. > For example, when a client calls create /a and create /a in a transaction, > ZooKeeper throws NodeExistsException but getPath returns null. > In normal operation (outside transactions), the path information is set > correctly. > The patch only shows this bug occurs with NoNode exception and NodeExists > exception, > but this bug seems to occur with any exception which needs a path information: > When an error occurred in a transaction, ZooKeeper creates an ErrorResult > instance to represent error result. > However, the ErrorResult class doesn't have a field for a path where an error > occurred(See src/java/main/org/apache/zookeeper/OpResult.java for more > details). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (ZOOKEEPER-2496) When inside a transaction, some exceptions do not have path information set.
[ https://issues.apache.org/jira/browse/ZOOKEEPER-2496?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15490208#comment-15490208 ] Kazuaki Banzai commented on ZOOKEEPER-2496: --- In the callback of asynchronous multi, there is no way to get the path of the exception. Is it also a bug? > When inside a transaction, some exceptions do not have path information set. > > > Key: ZOOKEEPER-2496 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2496 > Project: ZooKeeper > Issue Type: Bug >Affects Versions: 3.4.8, 3.5.1 >Reporter: Kazuaki Banzai > Attachments: transactionException.patch > > > If a client tries to execute some illegal operations inside a transaction, > ZooKeeper throws an exception. > Some exceptions such as NodeExistsException should have a path to indicate > where the exception occurred. > ZooKeeper clients can get the path by calling method getPath. > However, this method returns null if the exception occurs inside a > transaction. > For example, when a client calls create /a and create /a in a transaction, > ZooKeeper throws NodeExistsException but getPath returns null. > In normal operation (outside transactions), the path information is set > correctly. > The patch only shows this bug occurs with NoNode exception and NodeExists > exception, > but this bug seems to occur with any exception which needs a path information: > When an error occurred in a transaction, ZooKeeper creates an ErrorResult > instance to represent error result. > However, the ErrorResult class doesn't have a field for a path where an error > occurred(See src/java/main/org/apache/zookeeper/OpResult.java for more > details). -- This message was sent by Atlassian JIRA (v6.3.4#6332)