[
https://issues.apache.org/jira/browse/ZOOKEEPER-3290?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Kezhu Wang resolved ZOOKEEPER-3290.
-----------------------------------
Fix Version/s: (was: 4.0.0)
Resolution: Duplicate
The patch in ZOOKEEPER-2276 is also interesting, it uses path from request to
feed exception which is similar to {{create}} and {{setData}}. This way it will
not break any protocol. [~tison]
> 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: Zili Chen
> Assignee: Zili Chen
> Priority: Major
> Labels: pull-request-available
> Time Spent: 6h 40m
> 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.20.10#820010)