zookeeper-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Enrico Olivelli <eolive...@gmail.com>
Subject Re: [RFR] ZOOKEEPER-3290: Throw detailed KeeperException when multi-op failed
Date Fri, 13 Sep 2019 05:29:41 GMT
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 <wander4096@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 <wander4096@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
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message