Hope your appln code is ensuring the watch registration?
I could see one case, say, zkCli-3 has invoked getData(), before reaching this to the zkserver, setData() has been called by the zkCli-2. Here, it will miss the notification.
Are you able to re-produce it..
From: Wangpei (Peter) [[EMAIL PROTECTED]]
Sent: Wednesday, April 11, 2012 1:08 PM
To: [EMAIL PROTECTED]
Subject: event loss?
Three ZK client on different computer.
1． if needed, it set data on /PathA to trigger the 2nd client.
2． Set a watcher on /PathA with getData(). when it is triggered, it will do something and set data on /PathB to trigger the 3rd client.
3． Set a watcher on /PathB with getData().
The code for set watcher and setData is the same.
Now, the watcher of 2nd client is triggered as wish, but watcher of 3rd client is not triggered at all. There are no any error log at either client.
The zookeeper cluster is 3 server, version 3.3.5. All client is run with curator-client version 1.1.3-58.