-
-
Notifications
You must be signed in to change notification settings - Fork 10
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
Broken osx-arm64 builds #112
Comments
Do the same issues arise when installing via pip? |
I did see this segfault, but could never figure out the cause. Since this already occurs when importing the package this is all Cython generated code. So I would assume that this is either a build issue or a bug in Cython. However I have no machine with osx to properly debug this. It would probably help if you could get me a stacktrace for the segfault via gdb (or whatever is common on MacOs) |
@maxbachmann have you figured out the problems with ppc/aarch or not yet? I remember trying to figure this out with you a long time ago...
Likely a build issue.
Please give us details and we can do it. @BastianZim can also help? |
The order of business here:
|
Sure, just let me know what to run – happy to help. Note, I'm on macOS M1 not ppc/aarch |
As an advice, @maxbachmann, please avoid merging PRs when there are tests failing. If we can't figure out the issues with ppc/aarch, let's just disable them for now and if someone really needs them, they can help figuring that out; Yes, I am mainly interested in fixing the osxarm builds for now as well. This is quite important to fix. The PyPI builds (as proxied by grayskull) work completely fine, so it is a build issue here likely. |
How can this be done. The broken pypy builds are likely an issue with scikit-build and should be marked as broken as well. Maybe the /~https://github.com/conda-forge/jarowinkler-feedstock package is easier to start for debugging, since it is a smaller package which apparently has the same problems: https://dev.azure.com/conda-forge/feedstock-builds/_build/results?buildId=538295&view=logs&jobId=696704cc-6fef-57a3-ea36-f27779b8cd5e&j=696704cc-6fef-57a3-ea36-f27779b8cd5e&t=ed2e6513-0a06-519f-13f9-1e5619642f2a |
I think it is scikit-build @BastianZim do you have any experience with that? First, we likely need to add it to build for cross compile. I also found this note by a quick code search:
|
As outlined in the docs here. In short, the process is:
Sorry, away from my computer today, so I can't do it myself but feel free to ping me if I can help with anything. |
With scikit-build? No, sorry, this is the first time seeing this error. But its feedstock maintainers are very helpful, maybe we can ask them once we have a clearer understanding. |
I can handle the the admin stuff later this afternoon, no problem |
working on jarowinkler conda-forge/jarowinkler-feedstock#12 |
@maxbachmann could you hold on for ~one week before merging anything? If we can't find a solution, we will just go ahead and disable the bad builds. But let's try not to merge anything with osxarm or the failing tests on the other systems for now. |
Sure I am in no hurry |
Could someone at least check whats leading to the segmentation fault by running it with a debugger? This might already tell us the cause of the failure. Not sure how this is done on OSX under Linux this could be done with gdb. |
In addition: Is there any way to print a backtrace when encountering a segmentation fault in the conda forge tests? I do this when running tests in cibuildwheel: However I could not find a way to do the same for conda-forge. I do not have most platform combinations locally. So when there is a segmentation fault like here for linux cpython3.7 aarch64 in the CI I am unable to reproduce this locally (without way to much work). At this point I simply do not care about the failure enough, especially because apparently the builds for PyPi work. |
@henryiii adding you into the discussion, since these build issues are related to scikit-build (all builds worked fine until
The issues with PyPy and Python3.7 aarch64/ppc64le are not super important since they do not have a ton of users. However the issue for osx arm64 is going to affect a growing number of osx users. I appears the osx issue was fixed in other packages (e.g. /~https://github.com/conda-forge/slycot-feedstock) by setting: export CMAKE_OSX_ARCHITECTURES="arm64" however this did not fix the issue for @ngam (I do not own any osx devices, so I am unable to debug this) |
I tried debugging but I couldn't get anywhere. This is difficult problem that's beyond me at this point. If you want me to set up a PR for you to skip these faulty builds, I can do that so that you can resume pushing and merging your work. Would you like me to do that? Or you can do it yourself, in both here and jarowinkler, set: skip: true # [osx and build_platform != target_platform]
skip: true # [py37]
skip: true # [python_impl == 'pypy'] to skip all osx-arm64 builds, all python37 builds, and all pypy builds. |
And rerender |
I think fixing this will likely require changes in scikit-build (which I can work on, hopefully today or tomorrow). It might be best to put in the skips then I can work on removing the skips in a PR. |
Any idea how to trigger the failure in CI? |
It fails for Python3.7. Looking at the CI log it appears that tests are simply not run for OSX arm64. |
Yes, arm64 is cross-compiled and conda-forge therefore cannot test it so all of the cross-compiled builds can only be tested locally. |
I wrote a temporary workaround which packages the pure python version of rapidfuzz on the broken platforms, so this will not stop poetry 1.2.0 from building for conda: #120. Obviously it would be better if a fix for this issue can be found. |
As a small update: source of the issue is that for whatever reason scikit-build picks up an |
And this is only on conda-forge, it happily cross compiles on cibuildwheel, FWIW. |
@henryiii I tried the patches from rapidfuzz/JaroWinkler#11 here in conda-forge as well: conda-forge/jarowinkler-feedstock#22 They appear to fix most issues:
The PyPy build issues still exist, but that might be fixed once there is a new release of scikit-build (I do not know whether I can reference the master version here). edit: in fact even pypy windows was fixed, so only pypy linux aarch64/ppc64le remains |
I released working binaries for all broken platforms except PyPy on Linux arm64/ppc64, which still fails to build. |
@maxbachmann Thank you for your work on this. You're a star! 🌟 |
Special thanks to @henryiii as he did most of the work on this. |
finally all builds are fixed :) |
Solution to issue cannot be found in the documentation.
Issue
All builds since rapidfuzz 2 was released segfault on osx-arm64.
The last functional build was 1.9.1:
I also see similar segfaults in some of the CI pipelines such as:
https://dev.azure.com/conda-forge/feedstock-builds/_build/results?buildId=548027&view=logs&jobId=81eb4d60-76fc-5ac4-a959-9ebb9871bfee&j=696704cc-6fef-57a3-ea36-f27779b8cd5e&t=ed2e6513-0a06-519f-13f9-1e5619642f2a
See also: conda-forge/grayskull-feedstock#52
Installed packages
Environment info
The text was updated successfully, but these errors were encountered: