Closed tsuraan closed 6 years ago
I've been digging a bit, but I think the issue may be that the correlated etcd node's lifetime is tied to the lease of the entire zetcd server, and not to any particular client's connection. I haven't yet found why the ephemeral node disappears from zetcd at all, but I would guess that there's a disconnect between what zetcd is showing and what etcd has stored. I'll keep poking around.
Nope, leases are per-connection. I think I found an unrelated ephemeral node bug, though...
Sorry for the silence, that fix does work for me.
Hello @heyitsanthony, I have met the same issue, and your fix commit also work for me I am just wondering when it will be merged into master? Thanks
/cc @gyuho
Just merged. Thanks!
This one's a bit weird, but basically if you create some node, and then create a sequential node within it, the node goes away on client connection loss, but the parent cannot be deleted because it thinks it isn't empty. Here's a sample (using the python kazoo library):
Basic setup:
Okay, now we can create foo, create foo/bar as ephemeral, fail to delete foo as expected, delete foo/bar, and then deleting /foo works also as expected:
Now for the weird; create /foo as before, create /foo/bar ephemeral as before, but disconnect and reconnect the client, then try to delete /foo (which appears to be empty):
Well, that was weird. /foo looks empty, but deleting it says it isn't empty. Can we fix things? Yes, re-creating /foo/bar and then explicitly deleting it lets us delete /foo again:
So, that's weird.