-
Notifications
You must be signed in to change notification settings - Fork 16
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
1.11.1 release seems broken (edit: fixed now) #157
Comments
Just calling |
I do not have manage permissions for either Edit: if it's only a manylinux1 problem, the whole release doesn't need yanking. Just the manylinux1 file (which could maybe just be deleted?) |
We should make sure we check the return code in the tests. Edit: it looks like we do... FYI, this is okay on macOS. |
If you run it without the Python wrapper, it's: root@87dda27e737d:/# usr/local/lib/python3.10/dist-packages/ninja/data/bin/ninja --version
1.11.1.git.kitware.jobserver-1
Segmentation fault The released binary seems fine. |
I think I'll have a rebuild out for the 1.11.1 issue soon. Looks like ninja 1.11.1 isn't compatible with manylinux1. Though why is it passing tests? Anyway, manylinux2010 builds don't suffer the same problem, and I can upload 2010 builds to the same release. ;) |
Isn't manylinux1 vs manylinux2010 just about which version of glibc and libstdc++ you build against? Seems bizarre that ninja would be incompatible with anything there. It might fail to run due to missing symbols on too-old systems, but that should not manifest as successfully printing the version, then failing during cleanup+exit. |
It's segfaulting. It seems to get prettied up a bit by the python subprocess call. I locally rebuilt both manylinux1 and 2010 versions, and only the manylinux1 segfaults. I've uploaded a 2010 version, let's see if that helps - it shouldn't hurt anything, other than the tiny bit of wasted space. It should have failed the tests, though I think those also run in a manylinux1 container. I'd say it seems equally unlikely that the ninja developers would still be testing on CentOS, an operating system that has been end-of-life for something like five years. Technically manylinux1 and even manylinux2010 are also EoL, though due to old pip versions running around, they still are useful to ship. CentOS 8 shipped with pip 9. 🤦 |
Reproduced in #254. The manylinux1 wheel works in manylinux1, but not in newer OSs - that's weird, I thought GLIBC wasn't supposed to be able to do that. Anyway, that means we have the ideal situation: Working manylinux1 wheels on manylinux1, and manylinux2010 wheels everywhere else (unless you have really old pip, then, sorry, but not shipping manylinux1 would be about the same). The 1.11.1 release is saved! :) FYI, all special archs requires 2014 anyway, so those were fine. (I'll upload a 32-bit manylinux2010 wheel to be on the safe side, just in case anybody cares about 32-bit linux) |
Thanks for the quick fix @henryiii. |
Here's the backtrace for the observed issue (rebuilt the wheel without stripping but still in Release mode because Debug mode does not fail...):
The ninja built on manylinux1 works correctly on manylinux1, manylinux2010, manylinux2014, manylinux_2_24 & ubuntu18.04. It segfaults on manylinux_2_28, ubuntu20.04+ I don't know where is the actual bug (I think it could be either a devtoolset-2 bug or a generic libstdc++ bug). |
What's the size difference? |
x86_64:
i686:
PS: we might want to do this on musllinux where wheels (that are grafting libstdc++) are around 700/750 kB |
thanks! |
So can I use ninja 1.11.1 or not? PR #159 fixing this issue was merged in Nov 26, 2022. However the available 1.11.1 version still dates from august 30, 2022: |
This has nothing to do with ninja releases. It has everything to do with an external binary package :) So what you care about is the dates for https://pypi.org/project/ninja/#files |
and as pointed out here: #157 (comment) a wheel for newer distros was uploaded back then, so this is "fixed" for any non-ancient distro. |
Yes, a wheel with static linking for old manylinuxes is the only thing that hasn't been uploaded, but no one seems to have cared about that yet, so we haven't made a post release. |
Clear now, thanks a lot for explaining. |
hi... just to mention i get a weird error code after installing ninja in windows. same post as in this link below |
scikit-build/ninja-python-distributions#157 12:18:50 pistache 0.0.5 12:18:50 12:18:50 User defined options 12:18:50 Native files: /home/jenkins/.conan2/p/b/pistad34507cfa27c1/b/build-debug/conan/conan_meson_native.ini 12:18:50 prefix : / 12:18:50 12:18:50 12:18:50 ERROR: Could not detect Ninja v1.8.2 or newer We hit above issue during rebuilding pistache for both 0.0.5 and 0.0.5.1. Searched around seems due to the python packaging has issues. Signed-off-by: Xiaoxi Chen <[email protected]>
scikit-build/ninja-python-distributions#157 12:18:50 pistache 0.0.5 12:18:50 12:18:50 User defined options 12:18:50 Native files: /home/jenkins/.conan2/p/b/pistad34507cfa27c1/b/build-debug/conan/conan_meson_native.ini 12:18:50 prefix : / 12:18:50 12:18:50 12:18:50 ERROR: Could not detect Ninja v1.8.2 or newer Signed-off-by: Xiaoxi Chen <[email protected]>
The version released today fails when called like
ninja --version
and doesn't have a zero return code.This makes for example meson fail which calls
ninja --version
to detect the ninja version.This is on Ubuntu 22.04 using Python 3.10.7
The text was updated successfully, but these errors were encountered: