From 88b942cf07bce15956c20bbba3d3e4edd0a24d8c Mon Sep 17 00:00:00 2001 From: itrofimow Date: Thu, 16 Nov 2023 04:25:44 +0300 Subject: [PATCH] feat all: drop phdr-cache experiment, enable it by default --- core/include/userver/utils/impl/userver_experiments.hpp | 2 -- core/src/engine/task/exception_hacks.cpp | 6 +++--- core/src/utils/impl/userver_experiments.cpp | 2 -- core/testing/src/utest/gtest_hooks.cpp | 9 +-------- 4 files changed, 4 insertions(+), 15 deletions(-) diff --git a/core/include/userver/utils/impl/userver_experiments.hpp b/core/include/userver/utils/impl/userver_experiments.hpp index ddcf66341e54..c448e49e0983 100644 --- a/core/include/userver/utils/impl/userver_experiments.hpp +++ b/core/include/userver/utils/impl/userver_experiments.hpp @@ -62,8 +62,6 @@ class UserverExperimentsScope final { // TODO move to userver/mongo once the issues with linker are resolved. extern UserverExperiment kRedisClusterAutoTopologyExperiment; -extern UserverExperiment kPhdrCacheExperiment; - } // namespace utils::impl USERVER_NAMESPACE_END diff --git a/core/src/engine/task/exception_hacks.cpp b/core/src/engine/task/exception_hacks.cpp index ae26cf51573d..afed70b5030e 100644 --- a/core/src/engine/task/exception_hacks.cpp +++ b/core/src/engine/task/exception_hacks.cpp @@ -151,11 +151,12 @@ std::atomic phdr_cache_ptr{nullptr}; class PhdrCache final { public: void Initialize() { - if (!utils::impl::kPhdrCacheExperiment.IsEnabled()) { + if (phdr_cache_ptr.load() != nullptr) { return; } LOG_INFO() << "Initializing phdr cache"; + cache_.clear(); GetOriginalDlIteratePhdr()( [](dl_phdr_info* info, size_t /* size */, void* data) { reinterpret_cast(data)->push_back(*info); @@ -163,8 +164,7 @@ class PhdrCache final { }, &cache_); - [[maybe_unused]] const auto* old_cache = phdr_cache_ptr.exchange(&cache_); - UASSERT(!old_cache); + phdr_cache_ptr.exchange(&cache_); LOG_INFO() << "Initialized phdr cache for " << cache_.size() << " objects"; } diff --git a/core/src/utils/impl/userver_experiments.cpp b/core/src/utils/impl/userver_experiments.cpp index 0f22ee9527fa..fb75b4e55a4c 100644 --- a/core/src/utils/impl/userver_experiments.cpp +++ b/core/src/utils/impl/userver_experiments.cpp @@ -99,8 +99,6 @@ void UserverExperimentsScope::EnableOnly( UserverExperiment kRedisClusterAutoTopologyExperiment{ "redis-cluster-autotopology"}; -UserverExperiment kPhdrCacheExperiment{"phdr-cache"}; - } // namespace utils::impl USERVER_NAMESPACE_END diff --git a/core/testing/src/utest/gtest_hooks.cpp b/core/testing/src/utest/gtest_hooks.cpp index 10596ff36627..ea9c3c3bfe18 100644 --- a/core/testing/src/utest/gtest_hooks.cpp +++ b/core/testing/src/utest/gtest_hooks.cpp @@ -45,14 +45,7 @@ void SetLogLevel(logging::Level log_level) { logging::SetDefaultLoggerLevel(log_level); } -void InitPhdrCache() { - static USERVER_NAMESPACE::utils::impl::UserverExperimentsScope - phdr_cache_scope{}; - phdr_cache_scope.Set(USERVER_NAMESPACE::utils::impl::kPhdrCacheExperiment, - true); - - USERVER_NAMESPACE::engine::impl::InitPhdrCache(); -} +void InitPhdrCache() { USERVER_NAMESPACE::engine::impl::InitPhdrCache(); } void TeardownPhdrCache() { USERVER_NAMESPACE::engine::impl::TeardownPhdrCacheAndEnableDynamicLoading();