[ 
https://issues.apache.org/jira/browse/ZOOKEEPER-3290?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Enrico Olivelli updated ZOOKEEPER-3290:
---------------------------------------
    Fix Version/s:     (was: 3.5.6)

> Throw detailed KeeperException when a transaction failed
> --------------------------------------------------------
>
>                 Key: ZOOKEEPER-3290
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-3290
>             Project: ZooKeeper
>          Issue Type: Improvement
>          Components: server
>    Affects Versions: 3.5.4, 3.4.13
>            Reporter: TisonKun
>            Assignee: TisonKun
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 3.4.15, 3.5.7
>
>          Time Spent: 5h 50m
>  Remaining Estimate: 0h
>
> Assume we execute the follow statements
> {code:java}
> ZooKeeper zk = ...;
> zk.multi(Arrays.asList(
>   Op.check(path1, -1),
>   Op.delete(path2, -1)));
> {code}
> If path1 or path2 didn't exist, we got an exception 
> {{KeeperException.NoNodeException}} without which of them doesn't exist.
> The reason is when we executed {{PrepRequestProccessor#pRequest}} in 
> {{PrepRequestProccessor#L804}}, it processed 
> {{KeeperException.NoNodeException}} which contained path info.
> However, we generated {{ErrorTxn}} which only contains {{err}} field 
> represented error code and lost path info. Maybe a reasonable resolution is 
> extend {{ErrorTxn}} to contain path info or a general {{data}} byte array.



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

Reply via email to