GH-49435: [CI][Python] Fix macOS protobuf@33 keg-only discovery#49491
Open
tadeja wants to merge 2 commits intoapache:mainfrom
Open
GH-49435: [CI][Python] Fix macOS protobuf@33 keg-only discovery#49491tadeja wants to merge 2 commits intoapache:mainfrom
tadeja wants to merge 2 commits intoapache:mainfrom
Conversation
Contributor
Author
|
AMD64 macOS 15-intel Python 3 and ARM64 macOS 14 Python 3 both successfully completed with the protobuf@33 change. Now attempting similar change for |
Contributor
Author
|
@raulcd, @rok what do you say about this PR? it can be moved into existing draft #49436 if you'd prefer.
|
Member
|
Will users building for source need to use keg only? Should we update docs? |
rok
reviewed
Mar 10, 2026
Comment on lines
+235
to
+238
| export PROTOBUF_PREFIX="$(brew --prefix protobuf@33)" | ||
| echo "PKG_CONFIG_PATH=${PROTOBUF_PREFIX}/lib/pkgconfig:${PKG_CONFIG_PATH}" >> "$GITHUB_ENV" | ||
| echo "CMAKE_PREFIX_PATH=${PROTOBUF_PREFIX}:${ARROW_HOME}:${CMAKE_PREFIX_PATH}" >> "$GITHUB_ENV" | ||
| echo "${PROTOBUF_PREFIX}/bin" >> "$GITHUB_PATH" |
Member
There was a problem hiding this comment.
Perhaps this could be conditional to protobuf@33? Like here.
kou
approved these changes
Mar 11, 2026
Member
kou
left a comment
There was a problem hiding this comment.
+1
This is a workaround. We should remove @33 eventually after the gRPC problem is fixed.
See also:
- https://github.com/Homebrew/homebrew-core/blob/8b55249c502449f0c5a4c667d52af8eb7cd34010/Formula/g/grpc.rb#L37C30-L37C71
- grpc/grpc#41755
Could you add a comment when we can remove this workaround?
| export PROTOBUF_PREFIX="$(brew --prefix protobuf@33)" | ||
| echo "PKG_CONFIG_PATH=${PROTOBUF_PREFIX}/lib/pkgconfig:${PKG_CONFIG_PATH}" >> "$GITHUB_ENV" | ||
| echo "CMAKE_PREFIX_PATH=${PROTOBUF_PREFIX}:${ARROW_HOME}:${CMAKE_PREFIX_PATH}" >> "$GITHUB_ENV" | ||
| echo "${PROTOBUF_PREFIX}/bin" >> "$GITHUB_PATH" |
Member
There was a problem hiding this comment.
Suggested change
| echo "${PROTOBUF_PREFIX}/bin" >> "$GITHUB_PATH" | |
| echo "${PROTOBUF_PREFIX}/bin" >> "$GITHUB_PATH" | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Rationale for this change
Homebrew upgrading protobuf beyond v33 (as described in #49435) also causes new runtime Bus error.
What changes are included in this PR?
a) Pin
protobuf@33incpp/Brewfile(as discussed in #49436)b) Add keg-only env setup in
python.ymlso CMake/pkg-config can findprotobuf@33This resolves
Fatal Python error: Bus erroron macOS 15 Intel when importingpyarrow.flight. Homebrew's latestprotobufpulls in Abseil 20260107-- Found abslAlt: 1 (found version "20260107")which is ABI-incompatible with Arrow's bundled gRPC v1.46.3
One of earliest Python CI logs with the
Bus error:https://github.com/apache/arrow/actions/runs/22722817262/job/65889451081#step:10:103
Note: Other workflows using
cpp/Brewfilewill prob need similar keg-only setup. (There's failing C++ job log here, Ruby etc.)Are these changes tested?
Yes, fork workflow completed the Python macOS 15-intel job with success.
Are there any user-facing changes?
No.