From 751678a3e7d3a8b20026d9e66b85af2686df2732 Mon Sep 17 00:00:00 2001
From: David Li
Date: Fri, 3 Jun 2022 17:16:04 -0400
Subject: [PATCH 1/3] ARROW-16729: [C++] Bump Abseil/gRPC dependency versions
---
cpp/cmake_modules/ThirdpartyToolchain.cmake | 117 ++++++++++++++++++--
cpp/src/arrow/flight/CMakeLists.txt | 3 +-
cpp/src/arrow/flight/server.cc | 7 +-
cpp/thirdparty/versions.txt | 8 +-
4 files changed, 116 insertions(+), 19 deletions(-)
diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake
index 7174a70ff2a..7a7b7667afb 100644
--- a/cpp/cmake_modules/ThirdpartyToolchain.cmake
+++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake
@@ -2638,6 +2638,11 @@ macro(resolve_dependency_absl)
city
civil_time
cord
+ cord_internal
+ cordz_functions
+ cordz_handle
+ cordz_info
+ cordz_sample_token
debugging_internal
demangle_internal
examine_stack
@@ -2662,6 +2667,7 @@ macro(resolve_dependency_absl)
leak_check
leak_check_disable
log_severity
+ low_level_hash
malloc_internal
periodic_sampler
random_distributions
@@ -2690,8 +2696,7 @@ macro(resolve_dependency_absl)
synchronization
throw_delegate
time
- time_zone
- wyhash)
+ time_zone)
# Abseil creates a number of header-only targets, which are needed to resolve dependencies.
# The list can be refreshed using:
# comm -13 <(ls -l $PREFIX/lib/libabsl_*.a | sed -e 's/.*libabsl_//' -e 's/.a$//' | sort -u) \
@@ -2713,6 +2718,9 @@ macro(resolve_dependency_absl)
config
container_common
container_memory
+ cordz_statistics
+ cordz_update_scope
+ cordz_update_tracker
core_headers
counting_allocator
debugging
@@ -2759,6 +2767,7 @@ macro(resolve_dependency_absl)
random_internal_wide_multiply
random_random
raw_hash_map
+ sample_recorder
span
str_format
type_traits
@@ -2867,23 +2876,82 @@ macro(resolve_dependency_absl)
absl::memory
absl::type_traits
absl::utility)
- set_property(TARGET absl::cord
+ set_property(TARGET absl::cord_internal
PROPERTY INTERFACE_LINK_LIBRARIES
- absl::base
absl::base_internal
absl::compressed_tuple
absl::config
absl::core_headers
absl::endian
+ absl::inlined_vector
+ absl::layout
+ absl::raw_logging_internal
+ absl::strings
+ absl::throw_delegate
+ absl::type_traits)
+ set_property(TARGET absl::cord
+ PROPERTY INTERFACE_LINK_LIBRARIES
+ absl::base
+ absl::config
+ absl::cord_internal
+ absl::cordz_functions
+ absl::cordz_info
+ absl::cordz_update_scope
+ absl::cordz_update_tracker
+ absl::core_headers
+ absl::endian
absl::fixed_array
absl::function_ref
absl::inlined_vector
absl::optional
absl::raw_logging_internal
absl::strings
- absl::strings_internal
- absl::throw_delegate
absl::type_traits)
+ set_property(TARGET absl::cordz_functions
+ PROPERTY INTERFACE_LINK_LIBRARIES
+ absl::config
+ absl::core_headers
+ absl::exponential_biased
+ absl::raw_logging_internal)
+ set_property(TARGET absl::cordz_handle
+ PROPERTY INTERFACE_LINK_LIBRARIES
+ absl::base
+ absl::config
+ absl::raw_logging_internal
+ absl::synchronization)
+ set_property(TARGET absl::cordz_info
+ PROPERTY INTERFACE_LINK_LIBRARIES
+ absl::base
+ absl::config
+ absl::cord_internal
+ absl::cordz_functions
+ absl::cordz_handle
+ absl::cordz_statistics
+ absl::cordz_update_tracker
+ absl::core_headers
+ absl::inlined_vector
+ absl::span
+ absl::raw_logging_internal
+ absl::stacktrace
+ absl::synchronization)
+ set_property(TARGET absl::cordz_sample_token
+ PROPERTY INTERFACE_LINK_LIBRARIES absl::config absl::cordz_handle
+ absl::cordz_info)
+ set_property(TARGET absl::cordz_statistics
+ PROPERTY INTERFACE_LINK_LIBRARIES
+ absl::config
+ absl::core_headers
+ absl::cordz_update_tracker
+ absl::synchronization)
+ set_property(TARGET absl::cordz_update_scope
+ PROPERTY INTERFACE_LINK_LIBRARIES
+ absl::config
+ absl::cord_internal
+ absl::cordz_info
+ absl::cordz_update_tracker
+ absl::core_headers)
+ set_property(TARGET absl::cordz_update_tracker PROPERTY INTERFACE_LINK_LIBRARIES
+ absl::config)
set_property(TARGET absl::core_headers PROPERTY INTERFACE_LINK_LIBRARIES absl::config)
set_property(TARGET absl::counting_allocator PROPERTY INTERFACE_LINK_LIBRARIES
absl::config)
@@ -3026,6 +3094,7 @@ macro(resolve_dependency_absl)
absl::flags_private_handle_accessor
absl::flags_program_name
absl::flags_reflection
+ absl::flat_hash_map
absl::strings
absl::synchronization)
set_property(TARGET absl::flags_usage
@@ -3050,8 +3119,9 @@ macro(resolve_dependency_absl)
absl::algorithm_container
absl::core_headers
absl::memory)
- set_property(TARGET absl::function_ref PROPERTY INTERFACE_LINK_LIBRARIES
- absl::base_internal absl::meta)
+ set_property(TARGET absl::function_ref
+ PROPERTY INTERFACE_LINK_LIBRARIES absl::base_internal absl::core_headers
+ absl::meta)
set_property(TARGET absl::graphcycles_internal
PROPERTY INTERFACE_LINK_LIBRARIES
absl::base
@@ -3079,7 +3149,7 @@ macro(resolve_dependency_absl)
absl::optional
absl::variant
absl::utility
- absl::wyhash)
+ absl::low_level_hash)
set_property(TARGET absl::hash_policy_traits PROPERTY INTERFACE_LINK_LIBRARIES
absl::meta)
set_property(TARGET absl::hashtable_debug_hooks PROPERTY INTERFACE_LINK_LIBRARIES
@@ -3091,6 +3161,7 @@ macro(resolve_dependency_absl)
absl::base
absl::exponential_biased
absl::have_sse
+ absl::sample_recorder
absl::synchronization)
set_property(TARGET absl::inlined_vector_internal
PROPERTY INTERFACE_LINK_LIBRARIES
@@ -3123,6 +3194,12 @@ macro(resolve_dependency_absl)
absl::core_headers)
set_property(TARGET absl::log_severity PROPERTY INTERFACE_LINK_LIBRARIES
absl::core_headers)
+ set_property(TARGET absl::low_level_hash
+ PROPERTY INTERFACE_LINK_LIBRARIES
+ absl::bits
+ absl::config
+ absl::endian
+ absl::int128)
set_property(TARGET absl::malloc_internal
PROPERTY INTERFACE_LINK_LIBRARIES
absl::base
@@ -3318,7 +3395,6 @@ macro(resolve_dependency_absl)
absl::hash_policy_traits
absl::hashtable_debug_hooks
absl::have_sse
- absl::layout
absl::memory
absl::meta
absl::optional
@@ -3330,6 +3406,8 @@ macro(resolve_dependency_absl)
absl::config
absl::core_headers
absl::log_severity)
+ set_property(TARGET absl::sample_recorder PROPERTY INTERFACE_LINK_LIBRARIES
+ absl::base absl::synchronization)
set_property(TARGET absl::scoped_set_env
PROPERTY INTERFACE_LINK_LIBRARIES absl::config
absl::raw_logging_internal)
@@ -3347,6 +3425,7 @@ macro(resolve_dependency_absl)
absl::core_headers)
set_property(TARGET absl::statusor
PROPERTY INTERFACE_LINK_LIBRARIES
+ absl::base
absl::status
absl::core_headers
absl::raw_logging_internal
@@ -3359,6 +3438,7 @@ macro(resolve_dependency_absl)
absl::atomic_hook
absl::config
absl::core_headers
+ absl::function_ref
absl::raw_logging_internal
absl::inlined_vector
absl::stacktrace
@@ -3439,6 +3519,19 @@ macro(resolve_dependency_absl)
absl::raw_logging_internal
absl::strings
absl::time_zone)
+ set_property(TARGET absl::type_traits PROPERTY INTERFACE_LINK_LIBRARIES absl::config)
+ set_property(TARGET absl::utility
+ PROPERTY INTERFACE_LINK_LIBRARIES absl::base_internal absl::config
+ absl::type_traits)
+ set_property(TARGET absl::variant
+ PROPERTY INTERFACE_LINK_LIBRARIES
+ absl::bad_variant_access
+ absl::base_internal
+ absl::config
+ absl::core_headers
+ absl::type_traits
+ absl::utility)
+
if(APPLE)
# This is due to upstream absl::cctz issue
# https://github.com/abseil/abseil-cpp/issues/283
@@ -3459,8 +3552,6 @@ macro(resolve_dependency_absl)
absl::core_headers
absl::type_traits
absl::utility)
- set_property(TARGET absl::wyhash PROPERTY INTERFACE_LINK_LIBRARIES absl::config
- absl::endian absl::int128)
externalproject_add(absl_ep
${EP_LOG_OPTIONS}
@@ -3627,6 +3718,8 @@ macro(build_grpc)
absl::graphcycles_internal
absl::int128
absl::malloc_internal
+ absl::random_internal_pool_urbg
+ absl::random_internal_randen
absl::raw_logging_internal
absl::spinlock_wait
absl::stacktrace
diff --git a/cpp/src/arrow/flight/CMakeLists.txt b/cpp/src/arrow/flight/CMakeLists.txt
index 252bbaf44e3..39f2fecdde6 100644
--- a/cpp/src/arrow/flight/CMakeLists.txt
+++ b/cpp/src/arrow/flight/CMakeLists.txt
@@ -157,7 +157,8 @@ elseif(GRPC_VERSION EQUAL "1.34" OR GRPC_VERSION EQUAL "1.35")
elseif(GRPC_VERSION EQUAL "1.36")
add_definitions(-DGRPC_USE_TLS_CHANNEL_CREDENTIALS_OPTIONS
-DGRPC_NAMESPACE_FOR_TLS_CREDENTIALS_OPTIONS=grpc::experimental)
-elseif(GRPC_VERSION EQUAL "1.43")
+elseif((GRPC_VERSION EQUAL "1.43") OR (GRPC_VERSION EQUAL "1.46"))
+ # 1.46 is the bundled version
add_definitions(-DGRPC_USE_TLS_CHANNEL_CREDENTIALS_OPTIONS
-DGRPC_NAMESPACE_FOR_TLS_CREDENTIALS_OPTIONS=grpc::experimental
-DGRPC_USE_CERTIFICATE_VERIFIER)
diff --git a/cpp/src/arrow/flight/server.cc b/cpp/src/arrow/flight/server.cc
index 1d2e381c10d..c64bd1c98e3 100644
--- a/cpp/src/arrow/flight/server.cc
+++ b/cpp/src/arrow/flight/server.cc
@@ -157,8 +157,11 @@ struct FlightServerBase::Impl {
void DoHandleSignal(int signum) {
got_signal_ = signum;
int saved_errno = errno;
- // Ignore errors - pipe is nonblocking
- PIPE_WRITE(self_pipe_wfd_, "0", 1);
+ if (PIPE_WRITE(self_pipe_wfd_, "0", 1) < 0) {
+ // Can't do much here, though, pipe is nonblocking so hopefully this doesn't happen
+ ARROW_LOG(WARNING) << "FlightServerBase: failed to handle signal " << signum
+ << " errno: " << errno;
+ }
errno = saved_errno;
}
diff --git a/cpp/thirdparty/versions.txt b/cpp/thirdparty/versions.txt
index 08f81808db8..69dc4486cd6 100644
--- a/cpp/thirdparty/versions.txt
+++ b/cpp/thirdparty/versions.txt
@@ -23,8 +23,8 @@
# `DEPENDENCIES` array (see the comment on top of the declaration for the
# format).
-ARROW_ABSL_BUILD_VERSION=20210324.2
-ARROW_ABSL_BUILD_SHA256_CHECKSUM=59b862f50e710277f8ede96f083a5bb8d7c9595376146838b9580be90374ee1f
+ARROW_ABSL_BUILD_VERSION=20211102.0
+ARROW_ABSL_BUILD_SHA256_CHECKSUM=dcf71b9cba8dc0ca9940c4b316a0c796be8fab42b070bb6b7cab62b48f0e66c4
ARROW_AWSSDK_BUILD_VERSION=1.8.133
ARROW_AWSSDK_BUILD_SHA256_CHECKSUM=d6c495bc06be5e21dac716571305d77437e7cfd62a2226b8fe48d9ab5785a8d6
ARROW_AWS_CHECKSUMS_BUILD_VERSION=v0.1.12
@@ -51,8 +51,8 @@ ARROW_GLOG_BUILD_VERSION=v0.5.0
ARROW_GLOG_BUILD_SHA256_CHECKSUM=eede71f28371bf39aa69b45de23b329d37214016e2055269b3b5e7cfd40b59f5
ARROW_GOOGLE_CLOUD_CPP_BUILD_VERSION=v1.39.0
ARROW_GOOGLE_CLOUD_CPP_BUILD_SHA256_CHECKSUM=73e4e840018b24bec2beb49e036a3c2d8c471d4dc4a18b9026ccc4d8ab8e78cc
-ARROW_GRPC_BUILD_VERSION=v1.35.0
-ARROW_GRPC_BUILD_SHA256_CHECKSUM=27dd2fc5c9809ddcde8eb6fa1fa278a3486566dfc28335fca13eb8df8bd3b958
+ARROW_GRPC_BUILD_VERSION=v1.46.3
+ARROW_GRPC_BUILD_SHA256_CHECKSUM=d6cbf22cb5007af71b61c6be316a79397469c58c82a942552a62e708bce60964
ARROW_GTEST_BUILD_VERSION=1.11.0
ARROW_GTEST_BUILD_SHA256_CHECKSUM=b4870bf121ff7795ba20d20bcdd8627b8e088f2d1dab299a031c1034eddc93d5
ARROW_JEMALLOC_BUILD_VERSION=5.3.0
From 3b0a07e231e6540fb70fbc6ed2a5cd42d27949fe Mon Sep 17 00:00:00 2001
From: David Li
Date: Mon, 6 Jun 2022 16:49:57 -0400
Subject: [PATCH 2/3] Try to fix build
---
cpp/cmake_modules/ThirdpartyToolchain.cmake | 1 +
1 file changed, 1 insertion(+)
diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake
index 7a7b7667afb..bd956bcf4e0 100644
--- a/cpp/cmake_modules/ThirdpartyToolchain.cmake
+++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake
@@ -3716,6 +3716,7 @@ macro(build_grpc)
absl::debugging_internal
absl::demangle_internal
absl::graphcycles_internal
+ absl::hash
absl::int128
absl::malloc_internal
absl::random_internal_pool_urbg
From b43c4b2702d226bc1e60d7bb1b51d4bda84818ca Mon Sep 17 00:00:00 2001
From: David Li
Date: Tue, 7 Jun 2022 11:21:08 -0400
Subject: [PATCH 3/3] Try to fix Fedora build
---
cpp/cmake_modules/ThirdpartyToolchain.cmake | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake
index bd956bcf4e0..4518576b569 100644
--- a/cpp/cmake_modules/ThirdpartyToolchain.cmake
+++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake
@@ -3639,6 +3639,9 @@ macro(build_grpc)
get_target_property(GRPC_RE2_INCLUDE_DIR re2::re2 INTERFACE_INCLUDE_DIRECTORIES)
get_filename_component(GRPC_RE2_ROOT "${GRPC_RE2_INCLUDE_DIR}" DIRECTORY)
+ # Put Abseil, etc. first so that local directories are searched
+ # before (what are likely) system directories
+ set(GRPC_CMAKE_PREFIX "${GRPC_CMAKE_PREFIX};${ABSL_PREFIX}")
set(GRPC_CMAKE_PREFIX "${GRPC_CMAKE_PREFIX};${GRPC_PB_ROOT}")
set(GRPC_CMAKE_PREFIX "${GRPC_CMAKE_PREFIX};${GRPC_GFLAGS_ROOT}")
set(GRPC_CMAKE_PREFIX "${GRPC_CMAKE_PREFIX};${GRPC_CARES_ROOT}")
@@ -3646,7 +3649,6 @@ macro(build_grpc)
# ZLIB is never vendored
set(GRPC_CMAKE_PREFIX "${GRPC_CMAKE_PREFIX};${ZLIB_ROOT}")
- set(GRPC_CMAKE_PREFIX "${GRPC_CMAKE_PREFIX};${ABSL_PREFIX}")
if(RAPIDJSON_VENDORED)
add_dependencies(grpc_dependencies rapidjson_ep)