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
gevent==20.6.2 should require a specific version of greenlets #1674
Comments
Thanks for the report. I understand your frustration. There's very little gevent can do here. Not all greenlet version changes introduce any incompatibility issues; most just fix bugs or add new platforms so I don't want to introduce an exact version number pin in gevent. Even if I did pin to exactly one version of greenlet, that's not enough because many of its features, and thus the resulting binary compatibility, can be set at compile time. Building greenlet 0.4.17 with |
I yanked 0.4.17 until contextvars support could be rewritten in a binary compatible manner or issue is worked around in some other way. |
Thanks to both of you; I do understand that pinning a version isn't common (look at the length of that constraints file), but the errors one gets from a dependency of a dependency are difficult to recognize, diagnose and work around for many users that are just trying to install a bigger package … so my opinion is that the python community's practice is not particularly helpful. It's difficult to trust a pip install of apache-airflow if it breaks basically every few weeks due to one of the great many deps. OTOH a package like thrift-sasl pins a version of thrift and goes unmaintained for half decade, and it turns out the warning that it wouldn't work with a newer version of thrift is untrue, leading again to no trust for the advertised in-compatibility. It's a pickle. |
greenlet 0.4.17 release [1] changed its ABI and became incompatible with pre-built gevent wheels [2], resulting in warnings such as: <frozen importlib._bootstrap>:219: RuntimeWarning: greenlet.greenlet size changed, may indicate binary incompatibility. Expected 144 from C header, got 152 from PyObject [1] https://github.com/python-greenlet/greenlet/blob/master/CHANGES.rst#0417-2020-09-22 [2] gevent/gevent#1674
greenlet 0.4.17 release [1] changed its ABI and became incompatible with pre-built gevent wheels [2], resulting in warnings such as: <frozen importlib._bootstrap>:219: RuntimeWarning: greenlet.greenlet size changed, may indicate binary incompatibility. Expected 144 from C header, got 152 from PyObject [1] https://github.com/python-greenlet/greenlet/blob/master/CHANGES.rst#0417-2020-09-22 [2] gevent/gevent#1674
greenlet 0.4.17 release [1] changed its ABI and became incompatible with pre-built gevent wheels [2], resulting in warnings such as: <frozen importlib._bootstrap>:219: RuntimeWarning: greenlet.greenlet size changed, may indicate binary incompatibility. Expected 144 from C header, got 152 from PyObject [1] https://github.com/python-greenlet/greenlet/blob/master/CHANGES.rst#0417-2020-09-22 [2] gevent/gevent#1674
greenlet 0.4.17 release [1] changed its ABI and became incompatible with pre-built gevent wheels [2], resulting in warnings such as: <frozen importlib._bootstrap>:219: RuntimeWarning: greenlet.greenlet size changed, may indicate binary incompatibility. Expected 144 from C header, got 152 from PyObject [1] https://github.com/python-greenlet/greenlet/blob/master/CHANGES.rst#0417-2020-09-22 [2] gevent/gevent#1674
Description:
My Apache Airflow FlaskAppBuilder webserver installed and ran fine 2h ago with greenlets version v0.4.16;
However making a config change to my dockerfile triggered a rebuild with reinstall which didn't pin the greenlet and brought in the 50 minute old v0.4.17. This logged a complaint about binary incompatibility and didn't serve any pages.
Rebuilding with 0.4.16 and everything is fine again.
These constraints (failing to mention greenlets) were used: https://github.com/apache/airflow/blob/constraints-1.10.12/constraints-3.7.txt
Presumably if gevent needs a specific version of greenlets it should pin that version in the released packages.
The text was updated successfully, but these errors were encountered: