aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/grpc/src
diff options
context:
space:
mode:
authorthegeorg <thegeorg@yandex-team.com>2025-05-23 14:00:28 +0300
committerthegeorg <thegeorg@yandex-team.com>2025-05-23 14:26:56 +0300
commit0332172e69764e28c8913bb5c74a58d1fc892fbc (patch)
tree64ac5c309a6d846700cfe32fe1eea62baabb983b /contrib/libs/grpc/src
parent7da274ad7c6d448407d7c41af78fbec2bc8e3222 (diff)
downloadydb-0332172e69764e28c8913bb5c74a58d1fc892fbc.tar.gz
Revert commit rXXXXXX, contrib/libs/grpc: Backport patch to fix race condition during openssl shutdown
commit_hash:65fb8d40012f8e188efdebc8137a923db4fcc6e1
Diffstat (limited to 'contrib/libs/grpc/src')
-rw-r--r--contrib/libs/grpc/src/core/lib/surface/init.cc15
-rw-r--r--contrib/libs/grpc/src/core/lib/surface/init.h5
-rw-r--r--contrib/libs/grpc/src/core/tsi/ssl_transport_security.cc8
3 files changed, 0 insertions, 28 deletions
diff --git a/contrib/libs/grpc/src/core/lib/surface/init.cc b/contrib/libs/grpc/src/core/lib/surface/init.cc
index 59521f8348e..4527f273bf6 100644
--- a/contrib/libs/grpc/src/core/lib/surface/init.cc
+++ b/contrib/libs/grpc/src/core/lib/surface/init.cc
@@ -23,8 +23,6 @@
#include <limits.h>
#include "y_absl/base/thread_annotations.h"
-#include "y_absl/time/clock.h"
-#include "y_absl/time/time.h"
#include <grpc/fork.h>
#include <grpc/grpc.h>
@@ -231,16 +229,3 @@ void grpc_maybe_wait_for_async_shutdown(void) {
g_shutting_down_cv->Wait(g_init_mu);
}
}
-
-bool grpc_wait_for_shutdown_with_timeout(y_absl::Duration timeout) {
- const auto started = y_absl::Now();
- const auto deadline = started + timeout;
- gpr_once_init(&g_basic_init, do_basic_init);
- grpc_core::MutexLock lock(g_init_mu);
- while (g_initializations != 0) {
- if (g_shutting_down_cv->WaitWithDeadline(g_init_mu, deadline)) {
- return false;
- }
- }
- return true;
-}
diff --git a/contrib/libs/grpc/src/core/lib/surface/init.h b/contrib/libs/grpc/src/core/lib/surface/init.h
index 20a2fdf3256..0d0035ae304 100644
--- a/contrib/libs/grpc/src/core/lib/surface/init.h
+++ b/contrib/libs/grpc/src/core/lib/surface/init.h
@@ -18,13 +18,8 @@
#ifndef GRPC_SRC_CORE_LIB_SURFACE_INIT_H
#define GRPC_SRC_CORE_LIB_SURFACE_INIT_H
-#include "y_absl/time/time.h"
-
#include <grpc/support/port_platform.h>
void grpc_maybe_wait_for_async_shutdown(void);
-// Returns false if the timeout expired before fully shut down.
-bool grpc_wait_for_shutdown_with_timeout(y_absl::Duration timeout);
-
#endif // GRPC_SRC_CORE_LIB_SURFACE_INIT_H
diff --git a/contrib/libs/grpc/src/core/tsi/ssl_transport_security.cc b/contrib/libs/grpc/src/core/tsi/ssl_transport_security.cc
index fcccd0c5dd5..deb3b952d4b 100644
--- a/contrib/libs/grpc/src/core/tsi/ssl_transport_security.cc
+++ b/contrib/libs/grpc/src/core/tsi/ssl_transport_security.cc
@@ -23,8 +23,6 @@
#include <limits.h>
#include <string.h>
-# include <cstdlib>
-
// TODO(jboeuf): refactor inet_ntop into a portability header.
// Note: for whomever reads this and tries to refactor this, this
// can't be in grpc, it has to be in gpr.
@@ -60,7 +58,6 @@
#include "src/core/lib/gpr/useful.h"
#include "src/core/lib/gprpp/crash.h"
-#include "src/core/lib/surface/init.h"
#include "src/core/tsi/ssl/key_logging/ssl_key_logging.h"
#include "src/core/tsi/ssl/session_cache/ssl_session_cache.h"
#include "src/core/tsi/ssl_transport_security_utils.h"
@@ -175,11 +172,6 @@ static unsigned long openssl_thread_id_cb(void) {
static void init_openssl(void) {
#if OPENSSL_VERSION_NUMBER >= 0x10100000
OPENSSL_init_ssl(0, nullptr);
- // Ensure OPENSSL global clean up happens after gRPC shutdown completes.
- // OPENSSL registers an exit handler to clean up global objects, which
- // otherwise may happen before gRPC removes all references to OPENSSL. Below
- // exit handler is guaranteed to run after OPENSSL's.
- std::atexit([]() { grpc_wait_for_shutdown_with_timeout(y_absl::Seconds(2)); });
#else
SSL_library_init();
SSL_load_error_strings();