-
Notifications
You must be signed in to change notification settings - Fork 560
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
brew update followed by brew upgrade fails for Python's 2to3 conflict (December 2022) #577
Comments
Possibly related to actions/runner-images#6459 . |
Hi @traversaro , thank you, we will take a look. |
Also observed this here https://github.com/ryancurrah/lima-and-qemu/actions/runs/3745432855/jobs/6359863993 and here https://github.com/mook-as/lima-and-qemu/actions/runs/3743467832/jobs/6356414606. EDIT: I was able to get it working by removing the existing symlinks.
|
MacOS Catalina is no longer supported by Apple or GitHub https://github.blog/changelog/2022-07-20-github-actions-the-macos-10-15-actions-runner-image-is-being-deprecated-and-will-be-removed-by-8-30-22. This PR updates the runner used for MacOS to Big Sur. Includes a fix for https://github.com/actions/runner-images/issues/6817. Issue: rancher-sandbox#19 Signed-off-by: Ryan Currah <ryan@currah.ca>
It looks like it the universal python's package used in @marko-zivic-93 @dsame @dmitry-shibanov could you please take a look? |
Got the same issue, and find out that something similar we had previously. Now it looks like: # homebrew fails to update python 3.9.1 to 3.9.1.1 due to unlinking failure
rm /usr/local/bin/2to3 || true
# homebrew fails to update python from 3.9 to 3.10 due to another unlinking failure
rm /usr/local/bin/idle3 || true
rm /usr/local/bin/pydoc3 || true
rm /usr/local/bin/python3 || true
rm /usr/local/bin/python3-config || true |
It may fail creating some symlinks which we don't care about. See e.g. https://github.com/actions/runner-images/issues/6817
That is not the case for us and the OP:
There is seemingly a non-brew installed Python from somewhere else |
@Flamefire the workflow does not use |
@traversaro actully it is a normal behaviour. As you see from the log the installation continues normally with just a warning the links were not overwritten. The problem is The easiest way to make the step to success is to add
|
see: https://github.com/actions/runner-images/issues/6817 Signed-off-by: Shun Wang <shuonwang@gmail.com>
Hello @fredroy, i see you forces the links by removing them manually in fact it is better to be done with
|
I'm also observing this behavior (just with running |
Yes this is what I also observed and wrote in #577
We also see this when we install a package with brew (e.g. ccache) which requires Python and hence is automatically upgraded. Ignoring the exit code is not feasible in that case as it might hint to anything besides this issue.
This is also not feasible for us as the exact Python version required for a package to be installed is not known/may change. Hence our workaround is to remove the symlinks on failure and retry: https://github.com/boostorg/boost-ci/blob/ac5ae7e901e49351d19de278cbf82ce8d2c44216/ci/setup_ccache.sh#L17-L24
No, I also made this false assumption. The behavior is not triggered by the update (which just downloads meta information similar to |
Thank you for the clarification, you are right. |
See actions/setup-python#577 for details. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
Follow-up to commit 98ff4db (Fix Mac OS GitHub workflow, 2023-04-11). See actions/setup-python#577 for more details. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
Add a better workaround for actions/setup-python#577
Add a better workaround for actions/setup-python#577
symlink already exists error, see actions/setup-python#577
When running the CI, we get errors like: ==> Pouring python@3.11--3.11.8.ventura.bottle.tar.gz Error: The `brew link` step did not complete successfully The formula built, but is not symlinked into /usr/local Could not symlink bin/2to3-3.11 Target /usr/local/bin/2to3-3.11 already exists. You may want to remove it: rm '/usr/local/bin/2to3-3.11' To force the link and overwrite all conflicting files: brew link --overwrite python@3.11 To list all files that would be deleted: brew link --overwrite python@3.11 --dry-run Possible conflicting files are: /usr/local/bin/2to3-3.11 -> /Library/Frameworks/Python.framework/Versions/3.11/bin/2to3-3.11 /usr/local/bin/idle3.11 -> /Library/Frameworks/Python.framework/Versions/3.11/bin/idle3.11 /usr/local/bin/pydoc3.11 -> /Library/Frameworks/Python.framework/Versions/3.11/bin/pydoc3.11 /usr/local/bin/python3.11 -> /Library/Frameworks/Python.framework/Versions/3.11/bin/python3.11 /usr/local/bin/python3.11-config -> /Library/Frameworks/Python.framework/Versions/3.11/bin/python3.11-config Hence, we use a fix described here: actions/setup-python#577 (comment)
workaround inconsistency problems between github runner image and brew on macos relates: actions/setup-python#577
This is based on issue on github side. actions/setup-python#577
Sometimes `brew upgrade` of Graphviz action fails on macOS runner while upgrading python packages. This error is based on the below issue: - actions/setup-python#577 Re-linking python will fix this problem: - Ref: Homebrew/homebrew-core#165793 (comment)
Hello Everyone, This behavior is expected. The installation proceeds normally with just a warning that the links were not overwritten, which is typical. The issue arises because the brew upgrade command exits with a non-zero exit code, and since the bash shell runs with the set -e option, it causes the step to fail even though brew upgrade is the final command. Regarding the versions, Python 2.7, 3.10.8, and 3.11.0 symlinks are created during image generation. Specifically: Python 2.7 is linked to macOS Library/Frameworks Please let us know if any further assistance or clarification! |
You seem to have fundamentally failed to understand the entire reason anyone is unhappy with GitHub Actions. The behavior is detrimental and bad. We know that GitHub expects this to happen and we don't wish for further clarification. We wish for GitHub to repent, to acknowledge that the expected behavior is detrimental and bad, and for GitHub to redesign the Actions image such that the Actions image works robustly, which it currently does not. It is an antipattern to respond to an issue saying that some behavior is bad and causes troubles, by responding "we know it's bad and causes troubles, but that was intentional". |
The following works for us: - name: Force update all brew python
run: |
brew update
# GHA messes with links https://github.com/actions/setup-python/issues/577 so we just force replace their installs' with brew's
for pkg in $(brew list --formula | grep -E '^python(@[0-9]+\.[0-9]+)?$'); do
brew upgrade --force --overwrite "$pkg"
done
brew cleanup |
Description
If one has on a job:
the job fails with error:
This is similar to old issues:
Platforms affected
Runner images affected
Image version and build link
Image Version: 20221215.1
Link: https://github.com/traversaro/github-actions-brew-update-upgrade-check/actions/runs/3742142787
Is it regression?
20221211.1
Expected behavior
The
brew upgrade
should exit fine.Actual behavior
The
brew upgrade
fails with the error message in the top of the issue.Repro steps
See https://github.com/traversaro/github-actions-brew-update-upgrade-check/blob/2fa847c627c643716ba10d681ea18c86c0b54dec/.github/workflows/brew-update.yml for a MWE .
The text was updated successfully, but these errors were encountered: