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)