-
Notifications
You must be signed in to change notification settings - Fork 3.9k
GH-45063: [C++] Upgrade vendored grpc, protobuf, abseil #47503
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
base: main
Are you sure you want to change the base?
Conversation
Thanks for opening a pull request! If this is not a minor PR. Could you open an issue for this pull request on GitHub? https://github.com/apache/arrow/issues/new/choose Opening GitHub issues ahead of time contributes to the Openness of the Apache Arrow project. Then could you also rename the pull request title in the following format?
or
See also: |
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.
Thanks for the great work here, there seems to be some CI issues for some specific builds, seems to be related to some missing targets
set_property(TARGET absl::bad_optional_access | ||
PROPERTY INTERFACE_LINK_LIBRARIES absl::config absl::raw_logging_internal) |
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.
could this removal be the reason for some of the CI failures?
CMake Error at cmake_modules/BuildUtils.cmake:142 (file):
Error evaluating generator expression:
$<TARGET_FILE:absl::bad_optional_access>
Target "absl::bad_optional_access" is not an executable or library.
Call Stack (most recent call first):
src/arrow/CMakeLists.txt:1030 (arrow_create_merged_static_lib)
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.
bad_optional_access doesn't exist in this updated version of absl, but it looks like I missed removing the declaration of it even though I removed this link libraries. Not sure if the script didn't catch it or if I made a mistake, but I'll fully remove it, hopefully that fixes the issue
@raulcd I think I fixed the issue, can you run the CI again? |
@raulcd Looking at the failure for C GLib & Ruby / AMD64 Ubuntu 22.04 GLib & Ruby (pull_request), I see this:
It seems that the Ubuntu build uses a verison of nlohmann_json which is installed on the local machine (in |
The failure from AMD64 Ubuntu 22.04 C++ ASAN UBSAN looks like it's a failure of |
The failure from AMD64 Windows 2022 AVX2 says that it's failing to install the patch for ORC. I don't think anything in this change should affect that, and the patch works in other builds |
I'm not entirely sure how to make sense of the R failures because I have no familiarity with R. Does the R library link to the cpp library in some way? |
Rationale for this change
The currently bundled version of GRPC is several years out of date
What changes are included in this PR?
There's a few things going on here so let me explain:
-DCMAKE_CXX_EXTENSIONS=OFF
to the common cmake args. I think this is actually intended to be the case anyway, based on this, but that wasn't propagating to the ThirdPartyToolchain build. This was causing all bundled libraries to default to building withstd=gnu++17
, whereas the arrow libraries were being build withstd=c++17
, which was causing runtime issues with the new version of abslbuild_opentelemetry
macro. It isn't needed anymore as of Support protobuf 3.22 or upper open-telemetry/opentelemetry-cpp#2163, and https://github.com/apache/arrow/pull/46509/files#diff-39a645630afbfb1702af73bcb3fcdb13d87be3d78fcf501f2dcf93000f4aa738 bumped it to the version with that fixI think that's everything. Github is weirdly showing a bunch of things that I didn't actually touch in the diff, I think it maybe has something to do with the fact that I moved some of the macros higher up in the file. If you open it in VScode it shows a much more sensible diff
Are these changes tested?
I ran the ORC tests, Flight tests, and Telemetry tests, since those seem to the parts of the repo that have dependencies on grpc, protobuf, and abseil. Everything passed. Let me know if I need to do anything else
Are there any user-facing changes?
No