You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@zookeeper.apache.org by Zili Chen <wa...@gmail.com> on 2019/09/11 23:37:11 UTC

Re: [RFR] ZOOKEEPER-3290: Throw detailed KeeperException when multi-op failed

I met this issue again when working on Pravega[1], a project using
ZooKeeper.

I think it is nice to have that we throw the exactly path that cause the
multi-op fails.

Could you help to review the pull request?

Best,
tison.

[1] https://github.com/pravega/pravega/pull/4140#discussion_r322096138


Zili Chen <wa...@gmail.com> 于2019年8月25日周日 上午4:19写道:

> Hi ZooKeepers,
>
> ZOOKEEPER-3290 has been revived and here is its pull request[1].
>
> Basically it extends field of ErrorTxn/ErrorResponse/ErrorResult to
> reflect accurate path info when a transaction failed. For example,
> assumed we do check1(path1)-create1(path2) and fail with
> NoNodeException, previously we don't know it is because absence of
> path1? or path2? or parent of one of them? Now we will throw a
> KeeperException with the accurate path that cause it.
>
> For instance,
>
>     ZooKeeper zk = new ZooKeeper(...);
>
>     zk.multi(List.of(
>         Op.check("/path1", -1),
>         Op.create("/path2", ...)));
>
> formerly throw with
>
> Exception in thread "main"
> org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode =
> NoNode
>
> but now
>
> Exception in thread "main"
> org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode =
> NoNode for /path1
>
> Theoretically Jute is fine with this change so that we don't need to worry
> about compatibility issue. Please checkout the branch if you are
> interested
> in this feature.
>
> Any feedback includes things work as expected is welcome.
>
> Best,
> tison.
>
> [1] https://github.com/apache/zookeeper/pull/839
>

Re: [RFR] ZOOKEEPER-3290: Throw detailed KeeperException when multi-op failed

Posted by Enrico Olivelli <eo...@gmail.com>.
Zili,
Thank you for driving this.

We must ensure that that change does not break 100% compatibility with 3.4
client.

The best way to prove it is to setup some integration test that tests a
compatibility matrix, it will be an huge work.

In absence of that facility we need some Jute expert to review the change.
Personally I don't have much cycles to study jute these days.


Enrico

Il gio 12 set 2019, 01:37 Zili Chen <wa...@gmail.com> ha scritto:

> I met this issue again when working on Pravega[1], a project using
> ZooKeeper.
>
> I think it is nice to have that we throw the exactly path that cause the
> multi-op fails.
>
> Could you help to review the pull request?
>
> Best,
> tison.
>
> [1] https://github.com/pravega/pravega/pull/4140#discussion_r322096138
>
>
> Zili Chen <wa...@gmail.com> 于2019年8月25日周日 上午4:19写道:
>
> > Hi ZooKeepers,
> >
> > ZOOKEEPER-3290 has been revived and here is its pull request[1].
> >
> > Basically it extends field of ErrorTxn/ErrorResponse/ErrorResult to
> > reflect accurate path info when a transaction failed. For example,
> > assumed we do check1(path1)-create1(path2) and fail with
> > NoNodeException, previously we don't know it is because absence of
> > path1? or path2? or parent of one of them? Now we will throw a
> > KeeperException with the accurate path that cause it.
> >
> > For instance,
> >
> >     ZooKeeper zk = new ZooKeeper(...);
> >
> >     zk.multi(List.of(
> >         Op.check("/path1", -1),
> >         Op.create("/path2", ...)));
> >
> > formerly throw with
> >
> > Exception in thread "main"
> > org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode =
> > NoNode
> >
> > but now
> >
> > Exception in thread "main"
> > org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode =
> > NoNode for /path1
> >
> > Theoretically Jute is fine with this change so that we don't need to
> worry
> > about compatibility issue. Please checkout the branch if you are
> > interested
> > in this feature.
> >
> > Any feedback includes things work as expected is welcome.
> >
> > Best,
> > tison.
> >
> > [1] https://github.com/apache/zookeeper/pull/839
> >
>

Re: [RFR] ZOOKEEPER-3290: Throw detailed KeeperException when multi-op failed

Posted by Enrico Olivelli <eo...@gmail.com>.
Zili,
Thank you for driving this.

We must ensure that that change does not break 100% compatibility with 3.4
client.

The best way to prove it is to setup some integration test that tests a
compatibility matrix, it will be an huge work.

In absence of that facility we need some Jute expert to review the change.
Personally I don't have much cycles to study jute these days.


Enrico

Il gio 12 set 2019, 01:37 Zili Chen <wa...@gmail.com> ha scritto:

> I met this issue again when working on Pravega[1], a project using
> ZooKeeper.
>
> I think it is nice to have that we throw the exactly path that cause the
> multi-op fails.
>
> Could you help to review the pull request?
>
> Best,
> tison.
>
> [1] https://github.com/pravega/pravega/pull/4140#discussion_r322096138
>
>
> Zili Chen <wa...@gmail.com> 于2019年8月25日周日 上午4:19写道:
>
> > Hi ZooKeepers,
> >
> > ZOOKEEPER-3290 has been revived and here is its pull request[1].
> >
> > Basically it extends field of ErrorTxn/ErrorResponse/ErrorResult to
> > reflect accurate path info when a transaction failed. For example,
> > assumed we do check1(path1)-create1(path2) and fail with
> > NoNodeException, previously we don't know it is because absence of
> > path1? or path2? or parent of one of them? Now we will throw a
> > KeeperException with the accurate path that cause it.
> >
> > For instance,
> >
> >     ZooKeeper zk = new ZooKeeper(...);
> >
> >     zk.multi(List.of(
> >         Op.check("/path1", -1),
> >         Op.create("/path2", ...)));
> >
> > formerly throw with
> >
> > Exception in thread "main"
> > org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode =
> > NoNode
> >
> > but now
> >
> > Exception in thread "main"
> > org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode =
> > NoNode for /path1
> >
> > Theoretically Jute is fine with this change so that we don't need to
> worry
> > about compatibility issue. Please checkout the branch if you are
> > interested
> > in this feature.
> >
> > Any feedback includes things work as expected is welcome.
> >
> > Best,
> > tison.
> >
> > [1] https://github.com/apache/zookeeper/pull/839
> >
>