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 <[email protected]> > 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 > <[email protected]>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, [[email protected]] > > Hacker, Neo Technology > > www.neotechnology.com > > > -- Mattias Persson, [[email protected]] Hacker, Neo Technology www.neotechnology.com
