-
Notifications
You must be signed in to change notification settings - Fork 3.3k
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
GH-36456: [CI][R] Unlink system OpenSSL to avoid mixing OpenSSL versions #36522
Conversation
|
@github-actions crossbow submit r-binary-packages homebrew-r-autobrew |
This comment was marked as outdated.
This comment was marked as outdated.
@github-actions crossbow submit r-binary-packages homebrew-r-autobrew |
This comment was marked as outdated.
This comment was marked as outdated.
This will fix our nightly build but could this not also happen when users build from scratch? |
In general, it'll not be happen on user environments because Homebrew's OpenSSL packages don't put symlinks to the default path by default. (If you're interested in it, please search "keg-only".) But GitHub Actions runs |
Ah interesting, thanks! |
Oh... This doesn't resolve this problem... |
@github-actions crossbow submit r-binary-packages homebrew-r-autobrew |
This comment was marked as outdated.
This comment was marked as outdated.
@github-actions crossbow submit r-binary-packages homebrew-r-autobrew |
This comment was marked as outdated.
This comment was marked as outdated.
@github-actions crossbow submit r-binary-packages homebrew-r-autobrew |
This comment was marked as outdated.
This comment was marked as outdated.
@github-actions crossbow submit r-binary-packages homebrew-r-autobrew |
This comment was marked as outdated.
This comment was marked as outdated.
@github-actions crossbow submit r-binary-packages homebrew-r-autobrew |
This comment was marked as outdated.
This comment was marked as outdated.
@github-actions crossbow submit r-binary-packages homebrew-r-autobrew |
Revision: e79c31e Submitted crossbow builds: ursacomputing/crossbow @ actions-32865d51a3
|
# Ensure removing OpenSSL from the default paths to avoid | ||
# mixing OpenSSL in the default paths and OpenSSL installed | ||
# by autobrew. | ||
brew unlink openssl || : |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm... can we instead make sure our build chain selects OpenSSL consistently? Users will otherwise probably encounter a similar problem if they try compiling Arrow themselves.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That would also be my preference though it seems to be tricky and I haven't had the time to investigate.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think that it's difficult.
For example, please consider the following case:
- OpenSSL 1.1 is installed in
/usr/local
- OpenSSL 3 is install in
/opt/openssl
- c-ares is installed in
/usr/local
- Build bundled gRPC with c-ares and OpenSSL 3
- gRPC uses
-I/usr/local/include
from c-ares and-I/opt/openssl/include
from OpenSSL 3 -I/opt/openssl/include -I/usr/local/include
will work but-I/usr/local/include -I/opt/openssl/include
will not work because OpenSSl 1.1 headers in/usr/local/include
are used- I don't think that we can always use include flags from OpenSSL 3 as the first include flag because there are more version mixable libraries such as Abseil
find / 2>&1 | grep include/openssl || : | ||
arrow/ci/scripts/r_test.sh arrow |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm a bit embarassed, but I don't understand what these two lines do...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the first line is just for debug purposes printing all find hits of include/openssl or nothing. The script setup an env for r testing and then test/checks the r package.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes. It's just a debug print.
I want to find OpenSSl header files in the system but I couldn't find them...
Oh great it looks like @paleolimbot was able to repro locally and fix the underlying issue in #36551 🎉 |
I close this in favor of #36551. |
Rationale for this change
If OpenSSL exists in the default path, we may mix OpenSSL in the default path and OpenSSL installed by autobrew. It may cause a link error, run-time symbol not found error and so on.
What changes are included in this PR?
Ensure unlinking OpenSSL in the default path.
Are these changes tested?
Yes.
Are there any user-facing changes?
No.