GH-50242: [CI][Release] Fix flaky dylib load failure in macOS verify-rc build#50243
Conversation
|
|
|
@github-actions crossbow submit verify-rc-source-integration-macos-conda-amd64 |
|
Revision: 08323e7 Submitted crossbow builds: ursacomputing/crossbow @ actions-b28c2cbbb2
|
|
@github-actions crossbow submit verify-rc-source-cpp-macos-conda-amd64 |
|
Revision: 08323e7 Submitted crossbow builds: ursacomputing/crossbow @ actions-d35059f004
|
|
@github-actions crossbow submit -g verify-rc-source-macos |
|
Revision: 0bc831e Submitted crossbow builds: ursacomputing/crossbow @ actions-7b92c7f5ce |
|
@github-actions crossbow submit -g verify-rc-source-macos |
|
Revision: 6a8426d Submitted crossbow builds: ursacomputing/crossbow @ actions-aa38f94d3b |
|
@github-actions crossbow submit verify-rc-source-integration-macos-conda-amd64 verify-rc-source-cpp-macos-conda-amd64 verify-rc-source-python-macos-conda-amd64 |
|
Revision: 8f573bb Submitted crossbow builds: ursacomputing/crossbow @ actions-c854bae6e3
|
8f1149d to
800380e
Compare
| # path (searched last, to not override system libs) so they resolve. | ||
| # See https://github.com/conda-forge/cmake-feedstock/issues/230 | ||
| if [ "$(uname)" = "Darwin" ] && [ "${USE_CONDA}" -gt 0 ] && [ -n "${CONDA_PREFIX:-}" ]; then | ||
| DYLD_FALLBACK_LIBRARY_PATH="${CONDA_PREFIX}/lib:${DYLD_FALLBACK_LIBRARY_PATH:-/usr/local/lib:/usr/lib}" cmake --build . --target install |
There was a problem hiding this comment.
It seems that we don't need the default value. Here is man dyld on my Mac mini:
DYLD_FALLBACK_LIBRARY_PATH
This is a colon separated list of directories that contain libraries. If a dylib is
not found at its install path, dyld uses this as a list of directories to search for
the dylib.
For new binaries (Fall 2023 or later) there is no default. For older binaries, there
is a default fallback search path of: /usr/local/lib:/usr/lib.
|
@github-actions crossbow submit verify-rc-source-*-macos-conda-amd64 |
|
Revision: c24bafa Submitted crossbow builds: ursacomputing/crossbow @ actions-eaa3774d9f
|
|
After merging your PR, Conbench analyzed the 4 benchmarking runs that have been run so far on merge-commit 4f60019. There were no benchmark performance regressions. 🎉 The full Conbench report has more details. It also includes information about 5 possible false positives for unstable benchmarks that are known to sometimes produce them. |
Rationale for this change
The nightly job Verify release candidate on macOS intermittently aborts the C++ build with
Library not loaded: @rpath/libLLVM.22.1.dylib).Conda's LLVM tools resolve
libLLVMvia@loader_path/../liband can point at the package cache which has nolibLLVM. The conda env lib dir is not on the loader path.The same @rpath miss seen with three different conda libraries (libLLVM, libprotoc, libabsl) through four binaries (llvm-link and llvm-ranlib, grpc_cpp_plugin, protoc) and may affect any shared library on osx - conda-forge/cmake-feedstock#230.
What changes are included in this PR?
Add
$CONDA_PREFIX/libtoDYLD_FALLBACK_LIBRARY_PATHfor the stepcmake --build.(Fallback is searched last, so it resolves the
@rpathmiss without overriding system libraries.)Also drop unneeded empty element from DYLD_LIBRARY_PATH/LD_LIBRARY_PATH assignment (trailing
:when the variable was unset).Are these changes tested?
Tested by nightly jobs verify-rc-source--macos-conda- : cpp, integration and python tasks pass.
Are there any user-facing changes?
No.