Hi there,
I have discovered that PersistentTTLNode (Curator 5.8.0 and probably previous 
versions) has a corner case that prevents that ZNode is deleted when program 
running the recipe is stop in certain situations.
This is the sequence:- Start the recipe with TTL of 30secs -> Container Node is 
created- Stop the program (or the program crashes in production) that runs the 
recipe before Touch TTL node is created. This is NOT deterministic and 
basically a background thread is scheduled to run TTL/2 (by default). In worse 
case scenario de TTL node could take up to 15 secs in this example to be created
When this is happening the CONTAINER node is never deleted. One option is to 
increase the touchScheduleFactor, BUT still this solution looks not correct for 
me.

In my view the recipe should watch the Container Node itself and just when the 
node is created, the recipe could trigger TOUCH node creation to minimize the 
opportunity window in which the problem happens.
Let me know if I should open an ISSUE
Regards,
Cheva



Reply via email to