Skip to content
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

Rebuild #142

Merged
merged 13 commits into from
Mar 11, 2024
Merged

Rebuild #142

merged 13 commits into from
Mar 11, 2024

Conversation

dalcinl
Copy link
Contributor

@dalcinl dalcinl commented Feb 5, 2024

Checklist

  • Used a personal fork of the feedstock to propose changes
  • Bumped the build number (if the version is unchanged)
  • Reset the build number to 0 (if the version changed)
  • Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
  • Ensured the license file is being packaged.

@conda-forge-webservices
Copy link
Contributor

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@leofang
Copy link
Member

leofang commented Feb 5, 2024

@conda-forge-admin, please rerender

Copy link
Contributor

github-actions bot commented Feb 5, 2024

Hi! This is the friendly automated conda-forge-webservice.

I tried to rerender for you, but it looks like there was nothing to do.

This message was generated by GitHub actions workflow run https://github.com/conda-forge/openmpi-feedstock/actions/runs/7786526756.

@leofang
Copy link
Member

leofang commented Feb 5, 2024

@conda-forge/core We need some help here. We keep hitting the unicode error after merging #141 (the CI was green there, but the error started happening at main). Now we can reproduce the error even in the CI, so I can only assume this is due to some change in build tool that unfortunately intervened. I asked in the Gitter channel last week but didn't get any response so far...

2024-02-05T10:57:22.0104022Z Warning: rpath /home/conda/feedstock_root/build_artifacts/openmpi-mpi_1707129643574/_build_env/lib is outside prefix /home/conda/feedstock_root/build_artifacts/openmpi-mpi_1707129643574/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold (removing it)
2024-02-05T10:57:22.0576062Z Warning: rpath /home/conda/feedstock_root/build_artifacts/openmpi-mpi_1707129643574/_build_env/lib is outside prefix /home/conda/feedstock_root/build_artifacts/openmpi-mpi_1707129643574/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold (removing it)
2024-02-05T10:57:22.1059741Z Traceback (most recent call last):
2024-02-05T10:57:22.1060663Z   File "/opt/conda/lib/python3.10/site-packages/conda_build/os_utils/liefldd.py", line 54, in ensure_binary
2024-02-05T10:57:22.1067614Z     return lief.parse(str(file))
2024-02-05T10:57:22.1068672Z TypeError: '/home/conda/feedstock_root/build_artifacts/openmpi-mpi_1707129643574/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/\x01\udce4\x05'
2024-02-05T10:57:22.1069304Z 
2024-02-05T10:57:22.1069548Z During handling of the above exception, another exception occurred:
2024-02-05T10:57:22.1069815Z 
2024-02-05T10:57:22.1070014Z Traceback (most recent call last):
2024-02-05T10:57:22.1070354Z   File "/opt/conda/bin/conda-mambabuild", line 10, in <module>
2024-02-05T10:57:22.1070660Z     sys.exit(main())
2024-02-05T10:57:22.1071014Z   File "/opt/conda/lib/python3.10/site-packages/boa/cli/mambabuild.py", line 256, in main
2024-02-05T10:57:22.1077424Z     call_conda_build(action, config)
2024-02-05T10:57:22.1078241Z   File "/opt/conda/lib/python3.10/site-packages/boa/cli/mambabuild.py", line 228, in call_conda_build
2024-02-05T10:57:22.1078616Z     result = api.build(
2024-02-05T10:57:22.1079028Z   File "/opt/conda/lib/python3.10/site-packages/conda_build/api.py", line 254, in build
2024-02-05T10:57:22.1084360Z     return build_tree(
2024-02-05T10:57:22.1084989Z   File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 3789, in build_tree
2024-02-05T10:57:22.1097473Z     packages_from_this = build(
2024-02-05T10:57:22.1098008Z   File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2877, in build
2024-02-05T10:57:22.1104652Z     newly_built_packages = bundlers[pkg_type](output_d, m, env, stats)
2024-02-05T10:57:22.1105254Z   File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 2004, in bundle_conda
2024-02-05T10:57:22.1109746Z     files = post_process_files(metadata, initial_files)
2024-02-05T10:57:22.1110373Z   File "/opt/conda/lib/python3.10/site-packages/conda_build/build.py", line 1815, in post_process_files
2024-02-05T10:57:22.1114364Z     post_build(m, new_files, build_python=python)
2024-02-05T10:57:22.1114887Z   File "/opt/conda/lib/python3.10/site-packages/conda_build/post.py", line 1818, in post_build
2024-02-05T10:57:22.1125728Z     post_process_shared_lib(m, f, prefix_files, host_prefix)
2024-02-05T10:57:22.1126377Z   File "/opt/conda/lib/python3.10/site-packages/conda_build/post.py", line 1680, in post_process_shared_lib
2024-02-05T10:57:22.1130273Z     mk_relative_linux(
2024-02-05T10:57:22.1135257Z   File "/opt/conda/lib/python3.10/site-packages/conda_build/post.py", line 612, in mk_relative_linux
2024-02-05T10:57:22.1135716Z     existing2, _, _ = get_rpaths_raw(elf)
2024-02-05T10:57:22.1136164Z   File "/opt/conda/lib/python3.10/site-packages/conda_build/os_utils/liefldd.py", line 206, in get_rpathy_thing_raw_partial
2024-02-05T10:57:22.1136517Z     binary = ensure_binary(file)
2024-02-05T10:57:22.1136924Z   File "/opt/conda/lib/python3.10/site-packages/conda_build/os_utils/liefldd.py", line 56, in ensure_binary
2024-02-05T10:57:22.1137298Z     print(f"WARNING: liefldd: failed to ensure_binary({file})")
2024-02-05T10:57:22.1137708Z UnicodeEncodeError: 'utf-8' codec can't encode character '\udce4' in position 303: surrogates not allowed
2024-02-05T10:57:29.2571498Z 
2024-02-05T10:57:29.2638583Z ##[error]Bash exited with code '1'.
2024-02-05T10:57:29.2801376Z ##[section]Finishing: Run docker build

@leofang
Copy link
Member

leofang commented Feb 5, 2024

@dalcinl do you think any of the changes that we made could lead to this file being generated?

/home/conda/feedstock_root/build_artifacts/openmpi-mpi_1707129643574/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/lib/\x01\udce4\x05

which seems an odd one to me

@dalcinl
Copy link
Contributor Author

dalcinl commented Feb 5, 2024

@dalcinl do you think any of the changes that we made could lead to this file being generated?

I don't think so, but I'll double check our PR diff.

@hmaarrfk
Copy link

hmaarrfk commented Feb 5, 2024

it might be a difference in the lief version... maybe compare and try to pin?

@leofang
Copy link
Member

leofang commented Feb 5, 2024

liblief/py-lief are both staying on 0.12.3, nothing has changed 🤔

@hmaarrfk
Copy link

hmaarrfk commented Feb 6, 2024

sometimes i download both logs, delete everything until Z and just run vimdiff to visually inspect the differences

@jakirkham
Copy link
Member

Looks like some builds are running out of space. Should we try adding to conda-forge.yml (and re-render)?

azure:
  free_disk_space: true

@leofang
Copy link
Member

leofang commented Feb 6, 2024

@conda-forge-admin, please rerender

@leofang
Copy link
Member

leofang commented Feb 6, 2024

No luck, out of disk space doesn't seem to be the issue of having a filename with weird unicode

@jakirkham
Copy link
Member

Previously saw this error in this CI log

conda.CondaMultiError: Error with archive /home/conda/feedstock_root/build_artifacts/pkg_cache/libstdcxx-devel_linux-64-11.4.0-h922705a_105.conda.  You probably need to delete and re-download or re-create this file.  Message was:

failed with error: [Errno 28] No space left on device
Error with archive /home/conda/feedstock_root/build_artifacts/pkg_cache/gfortran_impl_linux-aarch64-11.4.0-hfbda5c0_5.conda.  You probably need to delete and re-download or re-create this file.  Message was:

failed with error: [Errno 28] No space left on device
Error with archive /home/conda/feedstock_root/build_artifacts/pkg_cache/gxx_impl_linux-aarch64-11.4.0-he533754_5.conda.  You probably need to delete and re-download or re-create this file.  Message was:

failed with error: [Errno 28] No space left on device
Error with archive /home/conda/feedstock_root/build_artifacts/pkg_cache/libgfortran5-13.2.0-ha4646dd_5.conda.  You probably need to delete and re-download or re-create this file.  Message was:

failed with error: [Errno 28] No space left on device
Error with archive /home/conda/feedstock_root/build_artifacts/pkg_cache/binutils_impl_linux-64-2.40-hf600244_0.conda.  You probably need to delete and re-download or re-create this file.  Message was:

failed with error: [Errno 28] No space left on device
Error with archive /home/conda/feedstock_root/build_artifacts/pkg_cache/libsanitizer-11.4.0-h4dcbe23_5.conda.  You probably need to delete and re-download or re-create this file.  Message was:

failed with error: [Errno 28] No space left on device
Error with archive /home/conda/feedstock_root/build_artifacts/pkg_cache/gcc_impl_linux-aarch64-11.4.0-he533754_5.conda.  You probably need to delete and re-download or re-create this file.  Message was:

failed with error: [Errno 28] No space left on device

@leofang
Copy link
Member

leofang commented Feb 6, 2024

Yeah we were not concerned with that, we've been focusing on fixing this issue: #142 (comment), starting here: #141 (comment).

Co-authored-by: jakirkham <[email protected]>
@leofang
Copy link
Member

leofang commented Feb 7, 2024

@conda-forge-admin, please rerender

@h-vetinari
Copy link
Member

Wouldn't we also need to rebuild rdma-core first to produce packages with the fix for openmpi to use?

AFAIU, as long as that malformed (non-UTF-8) path is there - which is still the case - the rdma rebuild shouldn't make a difference. Unless we completely get rid of the symlinks in that package, but that's not a reasonable ask; we should IMO fix (or work around) the bug in patchelf/conda-build.

@leofang
Copy link
Member

leofang commented Mar 7, 2024

@mbargull any change you have further insight on this issue? 🙂

@mbargull
Copy link
Member

@mbargull any change you have further insight on this issue? 🙂

Sorry, didn't follow this issue; looks like rdma-core has not been rebuilt yet.
The libraries therein are broken for the versions built with conda-build >=3.28,<24.1.2, see my previous comment #142 (comment) :

The rdma-core=50 and rdma-core=49.1 builds are faulty in that ldconfig -vn "${PREFIX}/lib" creates symlinks for libmana/libmlx5 with those broken filenames.

@leofang
Copy link
Member

leofang commented Mar 10, 2024

So was my understanding in #142 (comment) incorrect, that there are still issues to fix, regardless whether we fixed conda-build (1)?

@mbargull
Copy link
Member

So was my understanding in #142 (comment) incorrect, that there are still issues to fix, regardless whether we fixed conda-build (1)?

Yes, it is partially incorrect. patchelf does not call ldconfig.
There's no "gap in this analysis"; it's simply that the combination of bugs in conda-build and patchelf lead to faulty artifacts (in rdma-core) which when processed downstream (this feedstock) with ldconfig causes the creation of symlinks with broken names.

@xhochy
Copy link
Member

xhochy commented Mar 11, 2024

I have put in a PR to rebuild rdma_core: conda-forge/rdma-core-feedstock#17

@mbargull
Copy link
Member

@conda-forge-admin, please rerender

recipe/meta.yaml Outdated Show resolved Hide resolved
@leofang
Copy link
Member

leofang commented Mar 11, 2024

@conda-forge-admin, please rerender

recipe/meta.yaml Outdated Show resolved Hide resolved
Copy link
Contributor

Hi! This is the friendly automated conda-forge-webservice.

I tried to rerender for you, but it looks like there was nothing to do.

This message was generated by GitHub actions workflow run https://github.com/conda-forge/openmpi-feedstock/actions/runs/8234009795.

@leofang
Copy link
Member

leofang commented Mar 11, 2024

Yes, it is partially incorrect. patchelf does not call ldconfig. (...) which when processed downstream (this feedstock) with ldconfig causes the creation of symlinks with broken names.

@mbargull Forgive my ignorance, so when exactly is ldconfig called and by whom?

@mbargull
Copy link
Member

@mbargull Forgive my ignorance, so when exactly is ldconfig called and by whom?

https://www.gnu.org/software/libtool/manual/libtool.html#Finish-mode
(You should find the exact invocations in a configure scripts, but build's source archive might also carry a libtool.m4 which would be slightly more readable.)

@leofang
Copy link
Member

leofang commented Mar 11, 2024

linux-64 CI is finally happy!

jakirkham and others added 2 commits March 11, 2024 12:44
This lines up the GLIBC version with the Docker image used in the CentOS
7 case. It also ensures GLIBC is properly constrained in the packages
produced.
@leofang
Copy link
Member

leofang commented Mar 11, 2024

@conda-forge-admin, please rerender

@leofang leofang marked this pull request as ready for review March 11, 2024 19:47
@leofang leofang added the automerge Merge the PR when CI passes label Mar 11, 2024
Copy link
Contributor

Hi! This is the friendly automated conda-forge-webservice.

I tried to rerender for you, but it looks like there was nothing to do.

This message was generated by GitHub actions workflow run https://github.com/conda-forge/openmpi-feedstock/actions/runs/8238815790.

@github-actions github-actions bot merged commit 8910db8 into conda-forge:main Mar 11, 2024
10 checks passed
Copy link
Contributor

Hi! This is the friendly conda-forge automerge bot!

I considered the following status checks when analyzing this PR:

  • linter: passed
  • azure: passed

Thus the PR was passing and merged! Have a great day!

@leofang
Copy link
Member

leofang commented Mar 11, 2024

Thanks @mbargull @minrk @jakirkham and everyone for helping out! This is one of the most tricky bugs I've ever seen on conda-forge!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
automerge Merge the PR when CI passes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants