-
Notifications
You must be signed in to change notification settings - Fork 5.9k
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
Make Ray wheels manylinux2014 compatible #18506
Comments
Great find. I agree either the wheels should conform to |
To be conformant with
which is apparently the case here, so no segfault to expect in the first place. From PEP600, |
Apparently it is possible to explicitly check compliance to |
We definitely will when there is bandwidth. Is there a specific problem you are seeing? @SongGuyang |
@mwtian do you know the status of this one? |
This has been dropped for awhile .. Related questions are: whether and when should Ray move to the newer manylinux standard, and what kind of ABI should Ray guarantee. Maybe we can start a doc or REP .. |
Wish to see a REP. 😊 |
@aslonnie @can-anyscale is this issue still relevant now? |
probably still relevant, we never really audit the wheel, and the which might explains the various segfaults.. as we build the wheels in manylinux, but run them in ubuntu.. |
yes, likely still an issue, and the TODO is moved into ci/build/build-manylinux-wheel.sh file ;) |
hi @aslonnie @can-anyscale we've been having some trouble with Ray segfaults with our project, arcticdb, since we upgraded it to C++20.
segfaults, whereas,
is fine. It seems likely to us that this is a packaging / manylinux issue. I'm curious about the remark above,
Have other projects reported issues with this? |
hi
not recently at least. where does it segfault at ? what version of |
Hi all, The segmentation fault can be reproduced with the PyPI wheels of Full explanationThe build system of ArcticDB is currently statically linking the C++ standard library within shared objects it ships in its wheels. man-group/ArcticDB#1572 modifies the linkage so that the C++ standard library is loaded dynamically, making the wheels comply with the This solves the problem for me locally, but we need extensive testing. To me, man-group/ArcticDB#1572 is likely a partial solution to this kind of issues. I believe we should make sure the wheels of ArcticDB and Ray comply with the ArcticDB uses Note that those segmentation faults cannot be reproduced with the conda-forge package of In any case, I confirm that Ray also must have |
What is the problem?
Currently we are not running
auditwheel
on our wheels (seeray/python/build-wheel-manylinux2014.sh
Line 103 in 4971e13
The first problem when running
auditwheel
on them is that all the binaries are in thepurelib
instead of theplatlib
folder. After unzipping the wheel, movingpurelib
toplatlib
and adaptingray-1.6.0.dist-info/RECORD
to point to the new files, I'm getting this message from auditwheel:It is not clear that this is currently causing problems but it certainly has the potential to cause problems (in the past we have seen very subtle segfaults from non-conforming wheels). While the manylinux2014 standard is compatible with all older standards (manylinux1, manylinux2010), I'm not sure if this is also the case for
manylinux_2_17_x86_64
.We should make sure our wheels have the right tags and we run
auditwheel
on them. Preferably we should produce manylinux2014 wheels.Ray version and other system information (Python version, TensorFlow version, OS):
Reproduction (REQUIRED)
Please provide a short code snippet (less than 50 lines if possible) that can be copy-pasted to reproduce the issue. The snippet should have no external library dependencies (i.e., use fake or mock data / environments):
If the code snippet cannot be run by itself, the issue will be closed with "needs-repro-script".
The text was updated successfully, but these errors were encountered: