-
Notifications
You must be signed in to change notification settings - Fork 387
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Kazoo heartbeats dont work with eventlet or monkey-patched threads #364
Comments
The bug cited includes this tidbit from the server:
Is the heart-beat not working, or is the server experiencing issues which effect latency and therefore not responding to the ping quick enough? Can someone verify that kazoo does not send heartbeat pings with eventlet independent of the rest of the bug cited here where the ZK server appears to be slammed or malfunctioning? |
BTW, the error afterwards (my above paste) should be especially disconcerting to the operation of the Zookeeper cluster:
Zookeeper is running into errors while attempting to commit its sync log. Since Zookeeper is spinning its own event loop (NIO), if its blocked waiting for quorum and trying to write the sync-log, clients will not receive pings. |
after patching the kazoo connection with #363 , i do see regular pings over time, but i get a lot of expired session messages like these: (kazoo.client): 2015-11-13 14:33:24,379 WARNING connection _connect_attempt Session has expired Querying Zookeeper using shell returns empty: [zk: localhost:2181(CONNECTED) 9] ls /tooz/ceilometer.notification |
When you say you see regular pings, does that mean you see kazoo sending them more frequently, or do you see responses? If the underlying problem is that Zookeeper still cannot sync properly then sending more pings will not keep the session active since Zookeeper won't process them within the session lifetime. |
I think kazoo is sending them as defined (in regular intervals) but the response i empty. When the agents are restarted, the response is there, i get 3 uuids for the 3 agents, the same is returned by the zookeeper shell, but soon after that, the agent logs show session expiry and empty response is returned on all 3 agents and also the zookeeper shell for ls /tooz/ceilometer.notification as shown above. Things stop working when session expires.. |
So we chatted on IRC, rjaiwal5139 is going to do some testing by putting zookeeper on its own hardware (separated from other VMs) and report back if this issues still occurs when this change is done... Useful link for folks: https://zookeeper.apache.org/doc/r3.1.2/zookeeperAdmin.html#Single+Machine+Requirements |
Slight correction in my earlier response - i was testing with 3 VM instances all sharing the same baremetal with ZK running on all 3, not just one, however i was passing in just one hostname to Kazoo, Initial observation on a multi-node test install shows Zookeeper without any of the sync errors on my local setup. Does Kazoo handle failover among ZK hosts when more than one host is specified? |
In the event kazoo pings out on a server, it will move to the next server in the list, yes. I believe it'll also separate out hosts if multiple ones are found for a single DNS name to rotate amongst as well. |
More details here: https://bugs.launchpad.net/python-tooz/+bug/1512001
The text was updated successfully, but these errors were encountered: