-
Notifications
You must be signed in to change notification settings - Fork 257
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
pyzmq 17.0.0 can cause circus to busy loop on epoll_wait #1055
Comments
Thanks for this thorough report! Reading the Changelog of PyZMQ, I see that there was some major changes in regarding the Tornado EventLoop. It caused some issues in IPython for example: ipython/ipykernel#307 If someone want to do a PR to fix that it would be very nice. Else, we can put |
ZMQPoller is deprecated in PyZMQ 17, which cause many circus unit tests to fail.. |
same problem here, reverting to pyzmq 16.0.4 fixed the issue |
We've set the version of pyzmq to < 17 in the latest release. But let's keep that issue to remember to update someday. |
Note that the latest circus version supports pyzmq 17+ https://github.com/circus-tent/circus/releases I think this issue can be closed |
We run circus in a docker container. We rebuilt our containers which pulled in a new version of pyzmq. It went from 16.0.3 to 17.0.0 and it seems like an incompatibility has crept in, as circusd's CPU utilization went to 100%. strace shows:
The fd for epoll_wait is a pipe:
It seems like there are three circusd threads and only one of them is spinning (this is from "top"):
And here's output from lsof:
Backing off to pyzmq 16.0.4 (or 16.0.3) fixes the issue. However! We have multiple containers running apps that use circus, and all upgraded to pyzmq 17.0.0 yet only a subset are exhibiting this behavior. I think pyzmq is involved only because pinning it to an older version makes the problem go away. I haven't yet figured out what the difference is between a system that works with 17.0.0 and one that doesn't. The other dependencies of circus (iowait, psutil, tornado) are the same on all systems:
If there's any additional information I can gather please let me know. This could absolutely be a pyzmq issue but I'm starting here in case they changed something that requires a change in circusd.
The text was updated successfully, but these errors were encountered: