Skip to content

GH-50242: [CI][Release] Fix flaky dylib load failure in macOS verify-rc build#50243

Merged
kou merged 8 commits into
apache:mainfrom
tadeja:verify-release-macOS
Jun 29, 2026
Merged

GH-50242: [CI][Release] Fix flaky dylib load failure in macOS verify-rc build#50243
kou merged 8 commits into
apache:mainfrom
tadeja:verify-release-macOS

Conversation

@tadeja

@tadeja tadeja commented Jun 23, 2026

Copy link
Copy Markdown
Collaborator

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 libLLVM via @loader_path/../lib and can point at the package cache which has no libLLVM. 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/lib to DYLD_FALLBACK_LIBRARY_PATH for the step cmake --build.
(Fallback is searched last, so it resolves the @rpath miss 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.

@github-actions

Copy link
Copy Markdown

⚠️ GitHub issue #50242 has been automatically assigned in GitHub to PR creator.

@github-actions github-actions Bot added the awaiting review Awaiting review label Jun 23, 2026
@tadeja

tadeja commented Jun 23, 2026

Copy link
Copy Markdown
Collaborator Author

@github-actions crossbow submit verify-rc-source-integration-macos-conda-amd64

@github-actions

Copy link
Copy Markdown

Revision: 08323e7

Submitted crossbow builds: ursacomputing/crossbow @ actions-b28c2cbbb2

Task Status
verify-rc-source-integration-macos-conda-amd64 GitHub Actions

@tadeja

tadeja commented Jun 23, 2026

Copy link
Copy Markdown
Collaborator Author

@github-actions crossbow submit verify-rc-source-cpp-macos-conda-amd64

@github-actions

Copy link
Copy Markdown

Revision: 08323e7

Submitted crossbow builds: ursacomputing/crossbow @ actions-d35059f004

Task Status
verify-rc-source-cpp-macos-conda-amd64 GitHub Actions

@tadeja

tadeja commented Jun 24, 2026

Copy link
Copy Markdown
Collaborator Author

@github-actions crossbow submit -g verify-rc-source-macos

@github-actions

Copy link
Copy Markdown

Revision: 0bc831e

Submitted crossbow builds: ursacomputing/crossbow @ actions-7b92c7f5ce

Task Status
verify-rc-source-cpp-macos-amd64 GitHub Actions
verify-rc-source-cpp-macos-arm64 GitHub Actions
verify-rc-source-cpp-macos-conda-amd64 GitHub Actions
verify-rc-source-integration-macos-amd64 GitHub Actions
verify-rc-source-integration-macos-arm64 GitHub Actions
verify-rc-source-integration-macos-conda-amd64 GitHub Actions
verify-rc-source-python-macos-amd64 GitHub Actions
verify-rc-source-python-macos-arm64 GitHub Actions
verify-rc-source-python-macos-conda-amd64 GitHub Actions
verify-rc-source-ruby-macos-amd64 GitHub Actions
verify-rc-source-ruby-macos-arm64 GitHub Actions

@tadeja

tadeja commented Jun 24, 2026

Copy link
Copy Markdown
Collaborator Author

@github-actions crossbow submit -g verify-rc-source-macos

@github-actions

Copy link
Copy Markdown

Revision: 6a8426d

Submitted crossbow builds: ursacomputing/crossbow @ actions-aa38f94d3b

Task Status
verify-rc-source-cpp-macos-amd64 GitHub Actions
verify-rc-source-cpp-macos-arm64 GitHub Actions
verify-rc-source-cpp-macos-conda-amd64 GitHub Actions
verify-rc-source-integration-macos-amd64 GitHub Actions
verify-rc-source-integration-macos-arm64 GitHub Actions
verify-rc-source-integration-macos-conda-amd64 GitHub Actions
verify-rc-source-python-macos-amd64 GitHub Actions
verify-rc-source-python-macos-arm64 GitHub Actions
verify-rc-source-python-macos-conda-amd64 GitHub Actions
verify-rc-source-ruby-macos-amd64 GitHub Actions
verify-rc-source-ruby-macos-arm64 GitHub Actions

@tadeja tadeja changed the title GH-50242: [C++][Release] Pin LLVM <22 in conda env to avoid LLVM 22.1.8 on macOS GH-50242: [Release] Fix flaky libLLVM load failure in macOS verify-rc build Jun 24, 2026
@tadeja

tadeja commented Jun 24, 2026

Copy link
Copy Markdown
Collaborator Author

@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

@github-actions

Copy link
Copy Markdown

Revision: 8f573bb

Submitted crossbow builds: ursacomputing/crossbow @ actions-c854bae6e3

Task Status
verify-rc-source-cpp-macos-conda-amd64 GitHub Actions
verify-rc-source-integration-macos-conda-amd64 GitHub Actions
verify-rc-source-python-macos-conda-amd64 GitHub Actions

@tadeja tadeja changed the title GH-50242: [Release] Fix flaky libLLVM load failure in macOS verify-rc build GH-50242: [CI][Release] Fix flaky libLLVM load failure in macOS verify-rc build Jun 25, 2026
@tadeja tadeja marked this pull request as ready for review June 25, 2026 10:55
@tadeja tadeja changed the title GH-50242: [CI][Release] Fix flaky libLLVM load failure in macOS verify-rc build GH-50242: [CI][Release] Fix flaky dylib load failure in macOS verify-rc build Jun 26, 2026
@tadeja tadeja force-pushed the verify-release-macOS branch from 8f1149d to 800380e Compare June 26, 2026 17:43

@kou kou left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1

Comment thread dev/release/verify-release-candidate.sh Outdated
# 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

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 github-actions Bot added awaiting merge Awaiting merge and removed awaiting review Awaiting review labels Jun 26, 2026
@tadeja

tadeja commented Jun 27, 2026

Copy link
Copy Markdown
Collaborator Author

@github-actions crossbow submit verify-rc-source-*-macos-conda-amd64

@github-actions

Copy link
Copy Markdown

Revision: c24bafa

Submitted crossbow builds: ursacomputing/crossbow @ actions-eaa3774d9f

Task Status
verify-rc-source-cpp-macos-conda-amd64 GitHub Actions
verify-rc-source-integration-macos-conda-amd64 GitHub Actions
verify-rc-source-python-macos-conda-amd64 GitHub Actions

@kou kou merged commit 4f60019 into apache:main Jun 29, 2026
8 checks passed
@kou kou removed the awaiting merge Awaiting merge label Jun 29, 2026
@conbench-apache-arrow

Copy link
Copy Markdown

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants