zookeeper-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mattias Persson <matt...@neotechnology.com>
Subject Re: Node being there and not at the same time
Date Thu, 23 Aug 2012 15:21:51 GMT
Hi David,

There is nowhere in the code where that node gets deleted. If we refrain
from that suspicion, could there be something else?

2012/8/23 David Nickerson <davidnickerson4mailinglists@gmail.com>

> It's a little difficult to guess what your application is doing, but it
> sounds like there's "someone else" who can create and delete the nodes
> you're trying to work with. So when you create the node and check its data,
> someone else might have deleted it before you got the chance to check the
> data. The same is true when you check that it exists and then check the
> data. You could ensure that the node won't be deleted by using ACLs or
> giving the node a sequential ephemeral child.
>
> On Thu, Aug 23, 2012 at 6:30 AM, Mattias Persson
> <mattias@neotechnology.com>wrote:
>
> > Hi,
> >
> > I've got a problem that I've seen at only a few occasions and which
> > confuses me a bit. Basically I construct a ZooKeeper client (I'm running
> > version 3.3.2) where there's a ZK quorum of size 3 running. I get a
> > SyncConnected event in a Watcher of mine and in that watcher I do a
> > get-or-create(-if-absent) behaviour where I first do a:
> >
> >   zooKeeper.getData( myPath, false, null );
> >
> > if that produces a NONODE code I'll try to create it with:
> >
> >   zooKeeper.create( myPath, smallByteArray, OPEN_ACL_UNSAFE, PERSISTENT
> );
> >
> > If that fails with NODEEXISTS code I'll just get it, assuming someone
> else
> > made it before me. What I see from this getData call that I do after
> > getting this NODEEXISTS code, which is the same as the first one btw, is
> > that I'll get a NONODE code back. Given in this scenario is that I'm 100%
> > certain that this node exists in the quorum at myPath in the first place
> > even.
> >
> > Questions:
> > 1) How can this happen?
> > 2) Do I use ZooKeeper here in an improper way?
> > 3) Will a later version fix any potential issue I might have hit?
> > 4) What's the guarantees around the state of my ZooKeeper instance after
> a
> > receive a SyncConnected event, is it fully synced with the master at that
> > point, or will a call to sync() be necessary first?
> >
> > Best,
> > Mattias
> >
> > --
> > Mattias Persson, [mattias@neotechnology.com]
> > Hacker, Neo Technology
> > www.neotechnology.com
> >
>



-- 
Mattias Persson, [mattias@neotechnology.com]
Hacker, Neo Technology
www.neotechnology.com

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