-
Notifications
You must be signed in to change notification settings - Fork 3.6k
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
ARROW-17104: [C++] Workaround protobuf ABI issues #13634
Conversation
@github-actions crossbow submit -g cpp |
fdafabe
to
1d78dd6
Compare
1d78dd6
to
a6a445c
Compare
|
Revision: a6a445c Submitted crossbow builds: ursacomputing/crossbow @ actions-f4bb15b092 |
Do we require a higher protobuf version for substrait with this change? I think the failures on Ubuntu 18.04 are due to version |
@raulcd No, this should hopefully be fixed using a compile-time check. |
413b687
to
815b1a3
Compare
// FIXME there are too many inclusions here; besides, arrow/compute/exec/util.h | ||
// includes even more, including arrow/util/logging.h which is forbidden | ||
// in public headers. |
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.
Unfortunately the MacOS Python issue still occurs: @lidavidm @kou does one of you have a MacOS machine to debug this? |
5301ee1
to
9582bd8
Compare
I usually SSH into the Ursa Mac machines to debug this sort of issue. I could take a look but it might be a few days. |
@paleolimbot Can you help me debug this R CI failure? I cannot even reproduce locally (build succeeds here with Docker): |
Seems like |
Well, |
I also cannot reproduce locally (MacOS, M1). I will try locally on Linux as well...I don't quite understand the failure mode...even if ARROW_HOME was picking up a different version of Arrow than that of the commit, are there any versions of engine/substrait/api.h that have ever excluded the basic functionality of Substrait? |
Apparently not. It was like that from the start. |
I can't reproduce locally on Linux either. One other thing to try is change all |
I'm not sure. TBH I'm a bit surprised these calls work at all in other instances. Perhaps because of argument-dependent lookup? In any case, I think the |
I'm a trying a cache-less build... |
3b2a345
to
9582bd8
Compare
Ok, I'm relieved that the issue isn't due to caching at least. |
@@ -22,6 +22,10 @@ | |||
#include <string> | |||
#include <vector> | |||
|
|||
// FIXME there are too many inclusions here; besides, arrow/compute/exec/util.h |
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.
// FIXME there are too many inclusions here; besides, arrow/compute/exec/util.h | |
// TODO(ARROW-17109): there are too many inclusions here; besides, arrow/compute/exec/util.h |
4874f99
to
9f281de
Compare
Ok, my latest attempt failed again. |
Well, finally it seems the issue may be fixed in the next upstream release: |
I've fixed GLib and Python failures. |
@github-actions crossbow submit -g cpp -g python |
Revision: 8b0b941 Submitted crossbow builds: ursacomputing/crossbow @ actions-f8f2014cd2 |
https://app.travis-ci.com/github/apache/arrow/jobs/577173431#L2887
It seems that we need a wrapper for |
Now that this is fixed upstream, my inclination would be to wait for conda-forge and homebrew packages to be updated. |
I think that we need this because other packaging system may ship Protobuf that has this problem. |
Which packaging systems ship the offending protobuf version?
@kou You can. But the fix is extremely brittle, so I'm in favour of not doing it since it's fixed upstream. |
Ah, I see. OK. We can close this. |
Should we still merge 9e10f6c independently? I think is required to fix the:
Which happens on master? |
Right, and the added |
I opened #13965 for the public API test improvement. |
The protocol buffers ABI unfortunately depends on whether NDEBUG is enabled or not.
When installing gRPC using a package manager (Homebrew, conda...), most often it is built with NDEBUG enabled.
Some hackery is then needed to avoid missing symbols on Arrow debug builds...
Should also fix ARROW-16520.