From e22848a4f7255f21ca4df68018c5c389c0051a4e Mon Sep 17 00:00:00 2001 From: Mikhail Lutsenko Date: Tue, 22 Apr 2025 11:28:02 +0000 Subject: [PATCH 01/41] Corrections for packages versions, added missing header --- conanfile.py | 6 ++-- .../utils/statistics/system_statistics.hpp | 29 +++++++++++++++++++ .../system_statistics_collector.hpp | 2 +- 3 files changed, 33 insertions(+), 4 deletions(-) create mode 100644 core/include/userver/utils/statistics/system_statistics.hpp diff --git a/conanfile.py b/conanfile.py index 29cd1a533821..d5b8600c972c 100644 --- a/conanfile.py +++ b/conanfile.py @@ -100,7 +100,7 @@ def layout(self): cmake_layout(self) def requirements(self): - self.requires('boost/1.86.0', transitive_headers=True) + self.requires('boost/1.85.0', transitive_headers=True) self.requires('c-ares/1.33.1') self.requires('cctz/2.4', transitive_headers=True) self.requires('concurrentqueue/1.0.3', transitive_headers=True) @@ -108,7 +108,7 @@ def requirements(self): self.requires('fmt/8.1.1', transitive_headers=True) self.requires('libiconv/1.17') self.requires('libnghttp2/1.61.0') - self.requires('libcurl/7.86.0') + self.requires('libcurl/8.12.1') self.requires('libev/4.33') self.requires('openssl/3.3.2') self.requires('rapidjson/cci.20220822', transitive_headers=True) @@ -121,7 +121,7 @@ def requirements(self): if self.options.with_jemalloc: self.requires('jemalloc/5.3.0') if self.options.with_grpc or self.options.with_clickhouse: - self.requires('abseil/20240116.2', force=True) + self.requires('abseil/20240116.2', transitive_headers=True, transitive_libs=True, force=True) if self.options.with_grpc: self.requires( 'grpc/1.65.0', diff --git a/core/include/userver/utils/statistics/system_statistics.hpp b/core/include/userver/utils/statistics/system_statistics.hpp new file mode 100644 index 000000000000..b91dd41a22af --- /dev/null +++ b/core/include/userver/utils/statistics/system_statistics.hpp @@ -0,0 +1,29 @@ +#pragma once + +#include +#include +#include + +#include + +USERVER_NAMESPACE_BEGIN + +namespace utils::statistics::impl { + +struct SystemStats { + std::optional cpu_time_sec; + std::optional rss_kb; + std::optional open_files; + std::optional major_pagefaults; + std::optional io_read_bytes; + std::optional io_write_bytes; +}; + +void DumpMetric(Writer& writer, const SystemStats& stats); + +SystemStats GetSelfSystemStatistics(); +SystemStats GetSystemStatisticsByExeName(std::string_view name); + +} // namespace utils::statistics::impl + +USERVER_NAMESPACE_END diff --git a/core/include/userver/utils/statistics/system_statistics_collector.hpp b/core/include/userver/utils/statistics/system_statistics_collector.hpp index 2bd8bee80841..aa2768532366 100644 --- a/core/include/userver/utils/statistics/system_statistics_collector.hpp +++ b/core/include/userver/utils/statistics/system_statistics_collector.hpp @@ -9,7 +9,7 @@ #include #include #include -#include +#include USERVER_NAMESPACE_BEGIN From 456198631d291cb3806b1593f350aba5b50e1b87 Mon Sep 17 00:00:00 2001 From: Mikhail Lutsenko Date: Fri, 9 May 2025 14:05:57 +0300 Subject: [PATCH 02/41] INFO->DEBUG, changed some utils logs severity --- core/src/server/net/connection.cpp | 2 +- core/src/utils/periodic_task.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/src/server/net/connection.cpp b/core/src/server/net/connection.cpp index b815ac116c2c..2db36458c0e8 100644 --- a/core/src/server/net/connection.cpp +++ b/core/src/server/net/connection.cpp @@ -139,7 +139,7 @@ void Connection::ListenForRequests() noexcept { } catch (const engine::io::IoSystemError& ex) { // working with raw values because std::errc compares error_category // default_error_category() fixed only in GCC 9.1 (PR libstdc++/60555) - auto log_level = ex.Code().value() == static_cast(std::errc::connection_reset) ? logging::Level::kInfo + auto log_level = ex.Code().value() == static_cast(std::errc::connection_reset) ? logging::Level::kDebug : logging::Level::kError; LOG(log_level) << "I/O error while receiving from peer " << Getpeername() << " on fd " << Fd() << ": " << ex; } catch (const std::exception& ex) { diff --git a/core/src/utils/periodic_task.cpp b/core/src/utils/periodic_task.cpp index da947d48e3f8..0f3ac89ce850 100644 --- a/core/src/utils/periodic_task.cpp +++ b/core/src/utils/periodic_task.cpp @@ -83,12 +83,12 @@ void PeriodicTask::Stop() noexcept { const auto name = GetName(); try { if (IsRunning()) { - LOG_INFO() << "Stopping PeriodicTask with name=" << name; + LOG_DEBUG() << "Stopping PeriodicTask with name=" << name; task_.SyncCancel(); changed_event_.Reset(); should_force_step_ = false; task_ = engine::TaskWithResult(); - LOG_INFO() << "Stopped PeriodicTask with name=" << name; + LOG_DEBUG() << "Stopped PeriodicTask with name=" << name; } } catch (std::exception& e) { LOG_ERROR() << "Exception while stopping PeriodicTask with name=" << name << ": " << e; From dc57a03dbdb1afeed120b05d9464231d369ad59f Mon Sep 17 00:00:00 2001 From: "alexander.klyuchev" Date: Wed, 25 Jun 2025 12:45:26 +0300 Subject: [PATCH 03/41] added grpc client certs --- .../ugrpc/client/client_factory_component.cpp | 14 +++++- .../client/impl/client_factory_config.cpp | 50 +++++++++++++++---- .../client/impl/client_factory_config.hpp | 16 +++++- 3 files changed, 69 insertions(+), 11 deletions(-) diff --git a/grpc/src/ugrpc/client/client_factory_component.cpp b/grpc/src/ugrpc/client/client_factory_component.cpp index bdaccc770fc6..e288a9269c36 100644 --- a/grpc/src/ugrpc/client/client_factory_component.cpp +++ b/grpc/src/ugrpc/client/client_factory_component.cpp @@ -41,7 +41,7 @@ ClientFactoryComponent::ClientFactoryComponent( const auto* secdist = GetSecdist(context); factory_.emplace( - MakeFactorySettings(std::move(factory_config), secdist), + MakeFactorySettings(std::move(factory_config), secdist, testsuite_grpc.IsTlsEnabled()), client_common_component.blocking_task_processor_, *this, // impl::PipelineCreatorInterface& client_common_component.completion_queues_, @@ -74,6 +74,18 @@ additionalProperties: false enum: - insecure - ssl + pem-root-certs: + type: string + description: The path to containing the PEM encoding of the server root certificates + defaultDescription: absent + pem-private-key: + type: string + description: The path to containing the PEM encoding of the client's private key + defaultDescription: absent + pem-cert-chain: + type: string + description: The path to file containing the PEM encoding of the client's certificate chain + defaultDescription: absent auth-token: type: string description: auth token name from secdist diff --git a/grpc/src/ugrpc/client/impl/client_factory_config.cpp b/grpc/src/ugrpc/client/impl/client_factory_config.cpp index 6b8bc0f6db2f..121792537196 100644 --- a/grpc/src/ugrpc/client/impl/client_factory_config.cpp +++ b/grpc/src/ugrpc/client/impl/client_factory_config.cpp @@ -6,6 +6,8 @@ #include #include +#include +#include USERVER_NAMESPACE_BEGIN @@ -13,16 +15,33 @@ namespace ugrpc::client::impl { namespace { -std::shared_ptr MakeDefaultCredentials(impl::AuthType type) { - switch (type) { - case AuthType::kInsecure: - return grpc::InsecureChannelCredentials(); - case AuthType::kSsl: - return grpc::SslCredentials({}); +std::shared_ptr MakeCredentials(const ClientFactoryConfig& config, bool isTlsEnabled) +{ + if(isTlsEnabled && config.auth_type == AuthType::kSsl) { + grpc::SslCredentialsOptions options; + if(config.pem_root_certs.has_value()) + { + options.pem_root_certs = userver::fs::blocking::ReadFileContents(config.pem_root_certs.value()); + } + if(config.pem_private_key.has_value()) + { + options.pem_private_key = userver::fs::blocking::ReadFileContents(config.pem_private_key.value()); + } + if(config.pem_cert_chain.has_value()) + { + options.pem_cert_chain = userver::fs::blocking::ReadFileContents(config.pem_cert_chain.value()); + } + LOG_INFO()<) { ClientFactoryConfig config; config.auth_type = value["auth-type"].As(AuthType::kInsecure); + /// The buffer containing the PEM encoding of the server root certificates. If + /// this parameter is empty, the default roots will be used. The default + /// roots can be overridden using the \a GRPC_DEFAULT_SSL_ROOTS_FILE_PATH + /// environment variable pointing to a file on the file system containing the + /// roots. + config.pem_root_certs = value["pem-root-certs"].As>(); + /// The buffer containing the PEM encoding of the client's private key. This + /// parameter can be empty if the client does not have a private key. + config.pem_private_key = value["pem-private-key"].As>(); + /// The buffer containing the PEM encoding of the client's certificate chain. + /// This parameter can be empty if the client does not have a certificate + /// chain. + config.pem_cert_chain = value["pem-cert-chain"].As>(); config.channel_args = MakeChannelArgs(value["channel-args"]); config.default_service_config = value["default-service-config"].As>(); config.channel_count = value["channel-count"].As(config.channel_count); @@ -57,8 +89,8 @@ ClientFactoryConfig Parse(const yaml_config::YamlConfig& value, formats::parse:: } ClientFactorySettings -MakeFactorySettings(ClientFactoryConfig&& config, const storages::secdist::SecdistConfig* secdist) { - auto credentials = MakeDefaultCredentials(config.auth_type); +MakeFactorySettings(ClientFactoryConfig&& config, const storages::secdist::SecdistConfig* secdist, bool isTlsEnabled) { + std::shared_ptr credentials = MakeCredentials(config, isTlsEnabled); std::unordered_map> client_credentials; if (secdist) { diff --git a/grpc/src/ugrpc/client/impl/client_factory_config.hpp b/grpc/src/ugrpc/client/impl/client_factory_config.hpp index 52d86eb318c7..9da3c134c9fe 100644 --- a/grpc/src/ugrpc/client/impl/client_factory_config.hpp +++ b/grpc/src/ugrpc/client/impl/client_factory_config.hpp @@ -18,6 +18,20 @@ enum class AuthType { struct ClientFactoryConfig final { AuthType auth_type{AuthType::kInsecure}; + /// The path to file containing the PEM encoding of the server root certificates. If + /// this parameter is empty, the default roots will be used. The default + /// roots can be overridden using the \a GRPC_DEFAULT_SSL_ROOTS_FILE_PATH + /// environment variable pointing to a file on the file system containing the + /// roots. + std::optional pem_root_certs; + /// The path to file containing the PEM encoding of the client's private key. This + /// parameter can be empty if the client does not have a private key. + std::optional pem_private_key; + /// The path to file containing the PEM encoding of the client's certificate chain. + /// This parameter can be empty if the client does not have a certificate + /// chain. + std::optional pem_cert_chain; + /// Optional grpc-core channel args /// @see https://grpc.github.io/grpc/core/group__grpc__arg__keys.html grpc::ChannelArguments channel_args{}; @@ -34,7 +48,7 @@ struct ClientFactoryConfig final { ClientFactoryConfig Parse(const yaml_config::YamlConfig& value, formats::parse::To); ClientFactorySettings -MakeFactorySettings(impl::ClientFactoryConfig&& config, const storages::secdist::SecdistConfig* secdist); +MakeFactorySettings(impl::ClientFactoryConfig&& config, const storages::secdist::SecdistConfig* secdist, bool isTlsEnabled); } // namespace ugrpc::client::impl From bf18b8ede69f69f9730129dd09bc3b9790d5008f Mon Sep 17 00:00:00 2001 From: Fedor Nesterenko Date: Thu, 26 Jun 2025 15:50:59 +0300 Subject: [PATCH 04/41] added support for several gRPC servers in one instance --- .../ugrpc/server/service_component_base.cpp | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/grpc/src/ugrpc/server/service_component_base.cpp b/grpc/src/ugrpc/server/service_component_base.cpp index 8cece85ba3ba..efce044c8b94 100644 --- a/grpc/src/ugrpc/server/service_component_base.cpp +++ b/grpc/src/ugrpc/server/service_component_base.cpp @@ -1,3 +1,5 @@ +#include +#include #include #include @@ -16,14 +18,25 @@ USERVER_NAMESPACE_BEGIN -namespace ugrpc::server { +namespace { + +std::string GetServerName(const components::ComponentConfig& config) { + static constexpr std::string_view kServerNameKey = "server-name"; + if (config.HasMember(kServerNameKey)) { + return config[kServerNameKey].As(); + } + return "grpc-server"; +} +} // namespace + +namespace ugrpc::server { ServiceComponentBase::ServiceComponentBase( const components::ComponentConfig& config, const components::ComponentContext& context ) : impl::MiddlewareRunnerComponentBase(config, context, MiddlewarePipelineComponent::kName), - server_(context.FindComponent()), + server_(context.FindComponent(GetServerName(config))), config_(server_.ParseServiceConfig(config, context)), info_(ServiceInfo{config.Name()}) { config_.middlewares = CreateMiddlewares(*info_); @@ -52,6 +65,10 @@ additionalProperties: false type: string description: the task processor to use for responses defaultDescription: uses grpc-server.service-defaults.task-processor + server-name: + type: string + description: the name of the server to use + defaultDescription: grpc-server )"); } From 571a754282b41c21d8d803586e40efb1d81decd6 Mon Sep 17 00:00:00 2001 From: Fedor Nesterenko Date: Fri, 27 Jun 2025 15:28:02 +0300 Subject: [PATCH 05/41] fix the requirement of clang-format --- cmake/ChaoticGen.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmake/ChaoticGen.cmake b/cmake/ChaoticGen.cmake index 6094c93bcaf0..7ca5662034ac 100644 --- a/cmake/ChaoticGen.cmake +++ b/cmake/ChaoticGen.cmake @@ -37,7 +37,7 @@ function(_userver_prepare_chaotic) find_program(CLANG_FORMAT_BIN clang-format) message(STATUS "Found clang-format: ${CLANG_FORMAT_BIN}") set_property(GLOBAL PROPERTY userver_clang_format_bin "${CLANG_FORMAT_BIN}") - option(USERVER_CHAOTIC_FORMAT "Whether to format generated code" ON) + option(USERVER_CHAOTIC_FORMAT "Whether to format generated code" OFF) if(NOT USERVER_CHAOTIC_SCRIPTS_PATH) get_filename_component(USERVER_DIR "${CMAKE_CURRENT_LIST_DIR}" DIRECTORY) @@ -139,7 +139,7 @@ function(userver_target_generate_chaotic TARGET) list(APPEND CHAOTIC_ARGS "-o" "${PARSE_OUTPUT_DIR}/${PARSE_OUTPUT_PREFIX}") list(APPEND CHAOTIC_ARGS "--relative-to" "${PARSE_RELATIVE_TO}") - list(APPEND CHAOTIC_ARGS "--clang-format" "${CLANG_FORMAT}") + list(APPEND CHAOTIC_ARGS "--clang-format=${CLANG_FORMAT}") _userver_initialize_codegen_flag() add_custom_command( From 2da0dabac90c3c2cedfe6ce760f8dae7a23653d2 Mon Sep 17 00:00:00 2001 From: Fedor Nesterenko Date: Tue, 8 Jul 2025 11:55:41 +0300 Subject: [PATCH 06/41] fixed span default log level to kTrace --- core/src/tracing/span.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/tracing/span.cpp b/core/src/tracing/span.cpp index ee6d0de8b0f9..1bb813d111e5 100644 --- a/core/src/tracing/span.cpp +++ b/core/src/tracing/span.cpp @@ -121,7 +121,7 @@ Span::Impl::Impl( ) : name_(std::move(name)), is_no_log_span_(IsNoLogSpan(name_)), - log_level_(is_no_log_span_ ? logging::Level::kNone : logging::Level::kInfo), + log_level_(is_no_log_span_ ? logging::Level::kNone : logging::Level::kTrace), reference_type_(reference_type), source_location_(source_location), trace_id_(parent ? utils::SmallString(parent->GetTraceId()) : GenerateTraceId()), From 6f7aed37378a5a71122ff8779b6f0cb767fff9a6 Mon Sep 17 00:00:00 2001 From: Fedor Nesterenko Date: Tue, 8 Jul 2025 12:32:43 +0300 Subject: [PATCH 07/41] added option enable_prof for jemalloc --- conanfile.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/conanfile.py b/conanfile.py index fb6cf7e932d7..049147397b24 100644 --- a/conanfile.py +++ b/conanfile.py @@ -112,6 +112,11 @@ def set_version(self): def layout(self): cmake_layout(self) + def configure(self): + # Control dependencies of our dependencies based on current options + if self.options.with_jemalloc: + self.options['jemalloc'].enable_prof = True + def requirements(self): self.requires('boost/1.85.0', transitive_headers=True) self.requires('c-ares/1.33.1') From 875720b454218fb7d69169fbb806a95db315a069 Mon Sep 17 00:00:00 2001 From: Denis Razinkin Date: Wed, 13 Aug 2025 11:13:44 +0300 Subject: [PATCH 08/41] Fix crash on closing of websocket connection --- core/src/server/net/connection.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/core/src/server/net/connection.cpp b/core/src/server/net/connection.cpp index 6d4a1d73ed3d..d112ceea5385 100644 --- a/core/src/server/net/connection.cpp +++ b/core/src/server/net/connection.cpp @@ -148,6 +148,9 @@ void Connection::ListenForRequests() noexcept { } bool Connection::WaitOnSocket(engine::Deadline deadline) { + if (!peer_socket_) + return false; + bool is_readable = true; if (pending_data_size_ != pending_data_.size()) { if (is_http2_parser_) { @@ -213,7 +216,10 @@ void Connection::ProcessRequest(std::shared_ptr&& request_ptr auto task = HandleQueueItem(request_ptr); SendResponse(*request_ptr); - if (request_ptr->IsUpgradeWebsocket()) request_ptr->DoUpgrade(std::move(peer_socket_), std::move(remote_address_)); + if (request_ptr->IsUpgradeWebsocket()) { + request_ptr->DoUpgrade(std::move(peer_socket_), std::move(remote_address_)); + is_accepting_requests_ = false; + } } bool Connection::ReadSome() { From 830aba612acd7ebb84a0af8faaf15e57cf3b0cd3 Mon Sep 17 00:00:00 2001 From: Denis Razinkin Date: Wed, 13 Aug 2025 11:27:45 +0300 Subject: [PATCH 09/41] hotfix1 --- conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conanfile.py b/conanfile.py index 049147397b24..374e93f99bb8 100644 --- a/conanfile.py +++ b/conanfile.py @@ -107,7 +107,7 @@ def set_version(self): major_version = re.search(r'set\(USERVER_MAJOR_VERSION (.*)\)', content).group(1).strip() minor_version = re.search(r'set\(USERVER_MINOR_VERSION (.*)\)', content).group(1).strip() - self.version = f'{major_version}.{minor_version}' # pylint: disable=attribute-defined-outside-init + self.version = f'{major_version}.{minor_version}.1' # pylint: disable=attribute-defined-outside-init def layout(self): cmake_layout(self) From 4651f0e3ebd521041beb3d2018561cb1c26c57d7 Mon Sep 17 00:00:00 2001 From: Denis Razinkin Date: Wed, 13 Aug 2025 16:23:09 +0300 Subject: [PATCH 10/41] Hotfix IsWebSocketUpgradeRequest: isspace instead of space --- core/src/server/http/http_request_parser.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/server/http/http_request_parser.cpp b/core/src/server/http/http_request_parser.cpp index ecbaeb0aba4b..2bcd6b9b7177 100644 --- a/core/src/server/http/http_request_parser.cpp +++ b/core/src/server/http/http_request_parser.cpp @@ -31,7 +31,7 @@ bool IsWebSocketUpgradeRequest(std::string_view req) { if (it == req.end()) { return false; } - while (*it == ' ' && it != req.end()) { + while (it != req.end() && std::isspace(static_cast(*it))) { ++it; } const auto end = it + kWebsocketUpgradeHeaderValue.size(); From 385f4e9f574c2f64906c36f961fb8bba596a93f8 Mon Sep 17 00:00:00 2001 From: Denis Razinkin Date: Wed, 13 Aug 2025 16:34:34 +0300 Subject: [PATCH 11/41] tab or space --- core/src/server/http/http_request_parser.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/server/http/http_request_parser.cpp b/core/src/server/http/http_request_parser.cpp index 2bcd6b9b7177..98645693e463 100644 --- a/core/src/server/http/http_request_parser.cpp +++ b/core/src/server/http/http_request_parser.cpp @@ -31,7 +31,7 @@ bool IsWebSocketUpgradeRequest(std::string_view req) { if (it == req.end()) { return false; } - while (it != req.end() && std::isspace(static_cast(*it))) { + while (it != req.end() && (*it == ' ' || *it == '\t')) { ++it; } const auto end = it + kWebsocketUpgradeHeaderValue.size(); From b812b8f6ec7ed2b1dee40c1832bbe1590ace096a Mon Sep 17 00:00:00 2001 From: Denis Razinkin Date: Wed, 13 Aug 2025 16:41:34 +0300 Subject: [PATCH 12/41] hotfix2 --- conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conanfile.py b/conanfile.py index 374e93f99bb8..6f1e0fa38076 100644 --- a/conanfile.py +++ b/conanfile.py @@ -107,7 +107,7 @@ def set_version(self): major_version = re.search(r'set\(USERVER_MAJOR_VERSION (.*)\)', content).group(1).strip() minor_version = re.search(r'set\(USERVER_MINOR_VERSION (.*)\)', content).group(1).strip() - self.version = f'{major_version}.{minor_version}.1' # pylint: disable=attribute-defined-outside-init + self.version = f'{major_version}.{minor_version}.2' # pylint: disable=attribute-defined-outside-init def layout(self): cmake_layout(self) From f61c7f4f203320e8ea2ce5aa353b5af964e196c0 Mon Sep 17 00:00:00 2001 From: Andrey Alekseev Date: Wed, 3 Sep 2025 12:55:09 +0300 Subject: [PATCH 13/41] build fix --- grpc/src/ugrpc/client/client_factory_component.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grpc/src/ugrpc/client/client_factory_component.cpp b/grpc/src/ugrpc/client/client_factory_component.cpp index b5e6fe7de592..233b005ba118 100644 --- a/grpc/src/ugrpc/client/client_factory_component.cpp +++ b/grpc/src/ugrpc/client/client_factory_component.cpp @@ -44,7 +44,7 @@ ClientFactoryComponent::ClientFactoryComponent( const auto* secdist = GetSecdist(context); factory_.emplace( - MakeFactorySettings(std::move(factory_config), secdist, testsuite_grpc.IsTlsEnabled()), + MakeFactorySettings(std::move(factory_config), secdist), client_common_component.blocking_task_processor_, *this, // impl::PipelineCreatorInterface& client_common_component.completion_queues_, From be426b3bbf650e924bebed7d76fad70a7e894770 Mon Sep 17 00:00:00 2001 From: "andrey.alekseev" Date: Wed, 10 Sep 2025 15:30:54 +0300 Subject: [PATCH 14/41] client factory component schema fix --- .../ugrpc/client/client_factory_component.cpp | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/grpc/src/ugrpc/client/client_factory_component.cpp b/grpc/src/ugrpc/client/client_factory_component.cpp index 233b005ba118..8498ee6fed10 100644 --- a/grpc/src/ugrpc/client/client_factory_component.cpp +++ b/grpc/src/ugrpc/client/client_factory_component.cpp @@ -106,25 +106,6 @@ additionalProperties: false type: string description: value of channel argument, must be string or integer properties: {} - auth-type: - type: string - description: an optional authentication method - defaultDescription: insecure - enum: - - insecure - - ssl - pem-root-certs: - type: string - description: The path to containing the PEM encoding of the server root certificates - defaultDescription: absent - pem-private-key: - type: string - description: The path to containing the PEM encoding of the client's private key - defaultDescription: absent - pem-cert-chain: - type: string - description: The path to file containing the PEM encoding of the client's certificate chain - defaultDescription: absent auth-token: type: string description: auth token name from secdist From 40b4f708342e527fc9b8ff4d7c540bcf3b852606 Mon Sep 17 00:00:00 2001 From: "alexander.klyuchev" Date: Fri, 19 Sep 2025 15:44:51 +0300 Subject: [PATCH 15/41] fix max os compile --- core/src/utils/statistics/impl/histogram_view_utils.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/utils/statistics/impl/histogram_view_utils.hpp b/core/src/utils/statistics/impl/histogram_view_utils.hpp index d26418b9a006..0ae5060bba7f 100644 --- a/core/src/utils/statistics/impl/histogram_view_utils.hpp +++ b/core/src/utils/statistics/impl/histogram_view_utils.hpp @@ -54,7 +54,7 @@ inline void AddNonAtomic(std::atomic& to, std::uint64_t x) { } inline void AddAtomic(std::atomic& to, double x) { -#if __cplusplus >= 202002L +#if !defined(__APPLE__) && __cplusplus >= 202002L to += x; #else double expected = to.load(); From 6d2fa4de204ad6131a0cfe35a79668fea7287d1b Mon Sep 17 00:00:00 2001 From: Denis Razinkin Date: Thu, 6 Nov 2025 17:30:22 +0200 Subject: [PATCH 16/41] version.txt --- conanfile.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/conanfile.py b/conanfile.py index 09108f574279..35d150dfff64 100644 --- a/conanfile.py +++ b/conanfile.py @@ -105,13 +105,13 @@ def set_version(self): self, os.path.join( os.path.dirname(os.path.realpath(__file__)), - 'cmake/GetUserverVersion.cmake', + 'version.txt', ), ) major_version = re.search(r'set\(USERVER_MAJOR_VERSION (.*)\)', content).group(1).strip() minor_version = re.search(r'set\(USERVER_MINOR_VERSION (.*)\)', content).group(1).strip() - self.version = f'{major_version}.{minor_version}.2' # pylint: disable=attribute-defined-outside-init + self.version = f'{major_version}.{minor_version}' # pylint: disable=attribute-defined-outside-init def layout(self): cmake_layout(self) From ad3b99d20fddab65361b87561e337515afa41592 Mon Sep 17 00:00:00 2001 From: Denis Razinkin Date: Thu, 6 Nov 2025 17:43:34 +0200 Subject: [PATCH 17/41] buildfix --- conanfile.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/conanfile.py b/conanfile.py index 35d150dfff64..21084a2ace2b 100644 --- a/conanfile.py +++ b/conanfile.py @@ -108,10 +108,8 @@ def set_version(self): 'version.txt', ), ) - major_version = re.search(r'set\(USERVER_MAJOR_VERSION (.*)\)', content).group(1).strip() - minor_version = re.search(r'set\(USERVER_MINOR_VERSION (.*)\)', content).group(1).strip() - self.version = f'{major_version}.{minor_version}' # pylint: disable=attribute-defined-outside-init + self.version = content.strip() # pylint: disable=attribute-defined-outside-init def layout(self): cmake_layout(self) From 98ff935776a0e90a3f724828bd0802aaf6b9bab4 Mon Sep 17 00:00:00 2001 From: "alexander.klyuchev" Date: Mon, 14 Oct 2024 08:01:34 +0300 Subject: [PATCH 18/41] fix sigwait usage for mac os --- conanfile.py | 3 ++- core/src/components/run.cpp | 8 +++++++- core/src/utils/signal_catcher.cpp | 5 +++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/conanfile.py b/conanfile.py index 21084a2ace2b..83ef7bf7d58a 100644 --- a/conanfile.py +++ b/conanfile.py @@ -109,7 +109,8 @@ def set_version(self): ), ) - self.version = content.strip() # pylint: disable=attribute-defined-outside-init + hotfix_version = 1 + self.version = content.strip() + f".{hotfix_version}" # pylint: disable=attribute-defined-outside-init def layout(self): cmake_layout(self) diff --git a/core/src/components/run.cpp b/core/src/components/run.cpp index 4d9ce5bf5f7e..20940052753d 100644 --- a/core/src/components/run.cpp +++ b/core/src/components/run.cpp @@ -235,7 +235,13 @@ void DoRun( } else if (signum == SIGUSR1 || signum == SIGUSR2) { LOG_INFO() << "Signal caught: " << utils::strsignal(signum); manager->OnSignal(signum); - } else { + } +#ifdef __APPLE__ + else if(signum == -1){ + LOG_WARNING() << "sigwait false positive, ingnoring... "; + } +#endif + else { LOG_WARNING() << "Got unexpected signal: " << signum << " (" << utils::strsignal(signum) << ')'; UASSERT_MSG(false, "unexpected signal"); } diff --git a/core/src/utils/signal_catcher.cpp b/core/src/utils/signal_catcher.cpp index 2383ae02ee4f..f14344776218 100644 --- a/core/src/utils/signal_catcher.cpp +++ b/core/src/utils/signal_catcher.cpp @@ -22,7 +22,12 @@ SignalCatcher::~SignalCatcher() noexcept(false) { int SignalCatcher::Catch() { int signum = -1; utils::CheckSyscall(sigwait(&sigset_, &signum), "waiting for signal"); + //https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/sigwait.2.html + //on mac os sigwait sometime returns 0 value(success) and signum -1 + //looks like a bug +#ifndef __APPLE__ UASSERT(signum != -1); +#endif return signum; } From 1e8f207d5c8b6728a59b9baeb8350958494bdb3f Mon Sep 17 00:00:00 2001 From: "denis.razinkin" Date: Mon, 22 Dec 2025 20:28:29 +0200 Subject: [PATCH 19/41] mongo-c-driver 1.29.0 --- conanfile.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/conanfile.py b/conanfile.py index 83ef7bf7d58a..ccd8e4fb8469 100644 --- a/conanfile.py +++ b/conanfile.py @@ -109,7 +109,7 @@ def set_version(self): ), ) - hotfix_version = 1 + hotfix_version = 2 self.version = content.strip() + f".{hotfix_version}" # pylint: disable=attribute-defined-outside-init def layout(self): @@ -164,7 +164,7 @@ def requirements(self): self.requires('cyrus-sasl/2.1.28') if self.options.with_mongodb: self.requires( - 'mongo-c-driver/1.28.0', + 'mongo-c-driver/1.29.0', transitive_headers=True, transitive_libs=True, ) From 897f8b1447a0e8d1f018c2a9cd29265ab9eed565 Mon Sep 17 00:00:00 2001 From: "denis.razinkin" Date: Tue, 23 Dec 2025 12:51:44 +0200 Subject: [PATCH 20/41] boost 1.88.0 --- conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conanfile.py b/conanfile.py index ccd8e4fb8469..bb11835ddeb2 100644 --- a/conanfile.py +++ b/conanfile.py @@ -121,7 +121,7 @@ def configure(self): self.options['jemalloc'].enable_prof = True def requirements(self): - self.requires('boost/1.85.0', transitive_headers=True) + self.requires('boost/1.88.0', transitive_headers=True) self.requires('c-ares/1.33.1') self.requires('cctz/2.4', transitive_headers=True) self.requires('concurrentqueue/1.0.3', transitive_headers=True) From 115fae9ac598801b6af8df4d36ff7dcc651cf2e8 Mon Sep 17 00:00:00 2001 From: "denis.razinkin" Date: Tue, 23 Dec 2025 16:51:54 +0200 Subject: [PATCH 21/41] boost 1.90.0 --- conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conanfile.py b/conanfile.py index bb11835ddeb2..fa21920e0a16 100644 --- a/conanfile.py +++ b/conanfile.py @@ -121,7 +121,7 @@ def configure(self): self.options['jemalloc'].enable_prof = True def requirements(self): - self.requires('boost/1.88.0', transitive_headers=True) + self.requires('boost/1.90.0', transitive_headers=True) self.requires('c-ares/1.33.1') self.requires('cctz/2.4', transitive_headers=True) self.requires('concurrentqueue/1.0.3', transitive_headers=True) From 61fd55d1fb5a1928fed932ace6f0b151243aec77 Mon Sep 17 00:00:00 2001 From: "denis.razinkin" Date: Tue, 23 Dec 2025 17:39:15 +0200 Subject: [PATCH 22/41] boost 1.90.0 --- conanfile.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/conanfile.py b/conanfile.py index fa21920e0a16..5148394eb9df 100644 --- a/conanfile.py +++ b/conanfile.py @@ -121,7 +121,11 @@ def configure(self): self.options['jemalloc'].enable_prof = True def requirements(self): - self.requires('boost/1.90.0', transitive_headers=True) + self.requires('boost/1.90.0', transitive_headers=True, options={ + "with_stacktrace_backtrace": True, + "without_stacktrace": False, + "without_cobalt": True + }) self.requires('c-ares/1.33.1') self.requires('cctz/2.4', transitive_headers=True) self.requires('concurrentqueue/1.0.3', transitive_headers=True) From 17ea62fe55d931df0e31156eb77af83a4981847d Mon Sep 17 00:00:00 2001 From: "denis.razinkin" Date: Mon, 29 Dec 2025 18:06:02 +0200 Subject: [PATCH 23/41] version --- conanfile.py | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/conanfile.py b/conanfile.py index 8e832d8f57ff..20960cd6693a 100644 --- a/conanfile.py +++ b/conanfile.py @@ -12,6 +12,8 @@ from conan.tools.files import copy from conan.tools.files import export_conandata_patches from conan.tools.files import get +from conan.tools.files import load +from conan.tools.system import package_manager from conan.tools.scm import Git required_conan_version = '>=2.8.0' # pylint: disable=invalid-name @@ -84,6 +86,17 @@ class UserverConan(ConanFile): 're2/*:with_icu': True, } + def set_version(self): + content = load( + self, + os.path.join( + os.path.dirname(os.path.realpath(__file__)), + 'version.txt', + ), + ) + hotfix_version = "1-dev" + self.version = content.strip() + f".{hotfix_version}" # pylint: disable=attribute-defined-outside-init + def source(self): known_version = (self.conan_data or {}).get('sources', {}).get(self.version) if known_version: @@ -105,18 +118,6 @@ def export_sources(self): for i in tracked_sources: copy(self, f'{i}*', self.recipe_folder, self.export_sources_folder) - #def set_version(self): - # content = load( - # self, - # os.path.join( - # os.path.dirname(os.path.realpath(__file__)), - # 'version.txt', - # ), - # ) - - # hotfix_version = 1 - # self.version = content.strip() + f".{hotfix_version}" # pylint: disable=attribute-defined-outside-init - def layout(self): cmake_layout(self) From 67eb4e644120375cda14cefb38bb3061aa695205 Mon Sep 17 00:00:00 2001 From: "denis.razinkin" Date: Tue, 30 Dec 2025 15:57:19 +0200 Subject: [PATCH 24/41] wip --- grpc/src/ugrpc/server/service_component_base.cpp | 6 ------ grpc/src/ugrpc/server/service_component_base.yaml | 4 ++++ 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/grpc/src/ugrpc/server/service_component_base.cpp b/grpc/src/ugrpc/server/service_component_base.cpp index 043f6a60db44..b232f87f2244 100644 --- a/grpc/src/ugrpc/server/service_component_base.cpp +++ b/grpc/src/ugrpc/server/service_component_base.cpp @@ -61,12 +61,6 @@ void ServiceComponentBase::RegisterService(GenericServiceBase& service) { } yaml_config::Schema ServiceComponentBase::GetStaticConfigSchema() { - /* - server-name: - type: string - description: the name of the server to use - defaultDescription: grpc-server - */ return yaml_config::MergeSchemasFromResource< impl::MiddlewareRunnerComponentBase>("src/ugrpc/server/service_component_base.yaml"); } diff --git a/grpc/src/ugrpc/server/service_component_base.yaml b/grpc/src/ugrpc/server/service_component_base.yaml index a4ba003dc3df..ab7176ca307f 100644 --- a/grpc/src/ugrpc/server/service_component_base.yaml +++ b/grpc/src/ugrpc/server/service_component_base.yaml @@ -6,6 +6,10 @@ properties: type: string description: the task processor to use for responses default: uses grpc-server.service-defaults.task-processor + server-name: + type: string + description: the name of the server to use + defaultDescription: grpc-server status-codes-log-level: type: object properties: {} From 34b4603e1698d30df26f241488a88a137818bb7e Mon Sep 17 00:00:00 2001 From: "denis.razinkin" Date: Fri, 2 Jan 2026 14:30:34 +0200 Subject: [PATCH 25/41] fix version --- conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conanfile.py b/conanfile.py index 20960cd6693a..6105d397f2d7 100644 --- a/conanfile.py +++ b/conanfile.py @@ -94,7 +94,7 @@ def set_version(self): 'version.txt', ), ) - hotfix_version = "1-dev" + hotfix_version = "1" self.version = content.strip() + f".{hotfix_version}" # pylint: disable=attribute-defined-outside-init def source(self): From be99fdc110d936669ca850c81cdc05eaf67e0d5f Mon Sep 17 00:00:00 2001 From: Fedor Nesterenko Date: Thu, 15 Jan 2026 12:54:08 +0200 Subject: [PATCH 26/41] Alma10 support (#21) * updated used version of fmt library * turn off with libsystemd for grpc --- conanfile.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/conanfile.py b/conanfile.py index 6105d397f2d7..4f5e559330b6 100644 --- a/conanfile.py +++ b/conanfile.py @@ -77,6 +77,7 @@ class UserverConan(ConanFile): 'grpc/*:ruby_plugin': False, 'grpc/*:csharp_plugin': False, 'grpc/*:objective_c_plugin': False, + 'grpc/*:with_libsystemd': False, 'hiredis/*:with_ssl': True, 'librdkafka/*:ssl': True, 'librdkafka/*:curl': True, @@ -94,7 +95,7 @@ def set_version(self): 'version.txt', ), ) - hotfix_version = "1" + hotfix_version = '2' self.version = content.strip() + f".{hotfix_version}" # pylint: disable=attribute-defined-outside-init def source(self): @@ -136,7 +137,7 @@ def requirements(self): self.requires('cctz/2.4', transitive_headers=True) self.requires('concurrentqueue/1.0.3', transitive_headers=True) self.requires('cryptopp/8.9.0') - self.requires('fmt/11.0.2', transitive_headers=True) + self.requires('fmt/11.2.0', transitive_headers=True) self.requires('libiconv/1.17') self.requires('libnghttp2/1.61.0') self.requires('libcurl/8.12.1') From 04b0c822b40ae054098443b167e192a7f23c1456 Mon Sep 17 00:00:00 2001 From: "denis.razinkin" Date: Wed, 22 Apr 2026 13:54:55 +0300 Subject: [PATCH 27/41] version --- conanfile.py | 2 +- version.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/conanfile.py b/conanfile.py index 4f5e559330b6..d6a876b91564 100644 --- a/conanfile.py +++ b/conanfile.py @@ -95,7 +95,7 @@ def set_version(self): 'version.txt', ), ) - hotfix_version = '2' + hotfix_version = '0' self.version = content.strip() + f".{hotfix_version}" # pylint: disable=attribute-defined-outside-init def source(self): diff --git a/version.txt b/version.txt index 5fcdbf5d9e9d..9f55b2ccb5f2 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -2.15-rc +3.0 From 8be5b2844fcf1b2eb50fba2ff45aaa7da0e34d8a Mon Sep 17 00:00:00 2001 From: "denis.razinkin" Date: Wed, 22 Apr 2026 16:01:21 +0300 Subject: [PATCH 28/41] re2 version --- conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conanfile.py b/conanfile.py index 226e71ca1112..5506f5f84adb 100644 --- a/conanfile.py +++ b/conanfile.py @@ -142,7 +142,7 @@ def requirements(self): self.requires('zlib/[^1.3]') self.requires('zstd/[^1.5]') self.requires('icu/[>=74.1 <77]', force=True) - self.requires('re2/[>=20230301]') + self.requires('re2/[>=20251105]') if self.options.with_jemalloc: self.requires('jemalloc/[^5.3]') From 36cf7a3df3c51dbfc0c8beecdd8d08bc3297964c Mon Sep 17 00:00:00 2001 From: "denis.razinkin" Date: Tue, 19 May 2026 16:01:33 +0300 Subject: [PATCH 29/41] openssl 3.6.2 --- conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conanfile.py b/conanfile.py index 5506f5f84adb..6ba06495e429 100644 --- a/conanfile.py +++ b/conanfile.py @@ -136,7 +136,7 @@ def requirements(self): self.requires('libnghttp2/[^1.61]') self.requires('libcurl/8.12.1') # orig: self.requires('libcurl/[>=7.86.0 <7.88 || >8.1.2]') self.requires('libev/[^4.33]') - self.requires('openssl/[>=1.1 <4]') # our: self.requires('openssl/3.3.2') + self.requires('openssl/[>=3.6.2 <4]') # our: self.requires('openssl/3.3.2') self.requires('rapidjson/[>=cci.20230929 =0.8.0 <=0.9.0]') self.requires('zlib/[^1.3]') From 36aa895a34439d66991dcdf36d6b82e688061c75 Mon Sep 17 00:00:00 2001 From: "denis.razinkin" Date: Tue, 19 May 2026 17:06:19 +0300 Subject: [PATCH 30/41] libpq --- conanfile.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/conanfile.py b/conanfile.py index 6ba06495e429..f4159467c3a2 100644 --- a/conanfile.py +++ b/conanfile.py @@ -126,17 +126,17 @@ def requirements(self): "with_stacktrace_backtrace": True, "without_stacktrace": False, "without_cobalt": True - }) # orig self.requires('boost/[>=1.83 <1.88]', transitive_headers=True) + }) self.requires('c-ares/[^1.33]') self.requires('cctz/[^2.4]', transitive_headers=True) self.requires('concurrentqueue/[^1.0.5]', transitive_headers=True) self.requires('cryptopp/[^8.9]') - self.requires('fmt/11.2.0', transitive_headers=True) # orig self.requires('fmt/[>=8.1.1 <13]', transitive_headers=True) + self.requires('fmt/11.2.0', transitive_headers=True) self.requires('libiconv/[^1.17]') self.requires('libnghttp2/[^1.61]') - self.requires('libcurl/8.12.1') # orig: self.requires('libcurl/[>=7.86.0 <7.88 || >8.1.2]') + self.requires('libcurl/8.12.1') self.requires('libev/[^4.33]') - self.requires('openssl/[>=3.6.2 <4]') # our: self.requires('openssl/3.3.2') + self.requires('openssl/[>=3.6.2 <4]') self.requires('rapidjson/[>=cci.20230929 =0.8.0 <=0.9.0]') self.requires('zlib/[^1.3]') @@ -166,7 +166,7 @@ def requirements(self): # without system package. We use system package. # # `<16` is due to link errors `undefined reference to `gss_release_buffer'` - self.requires('libpq/[>=14.9 <16]') + self.requires('libpq/[>=15.17 <16]') if self.options.with_mongodb or self.options.with_kafka: self.requires('cyrus-sasl/[^2.1]') if self.options.with_mongodb: From 3d719ca316566689b4bed5423872882579c3e638 Mon Sep 17 00:00:00 2001 From: "denis.razinkin" Date: Thu, 28 May 2026 13:45:24 +0300 Subject: [PATCH 31/41] try new benchmark --- conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conanfile.py b/conanfile.py index f4159467c3a2..ae7c1f4831c4 100644 --- a/conanfile.py +++ b/conanfile.py @@ -191,7 +191,7 @@ def requirements(self): transitive_libs=True, ) self.requires( - 'benchmark/[>=1.9 <3]', + 'benchmark/[>=1.9.5 <3]', transitive_headers=True, transitive_libs=True, ) From 895b8d35811c7cbcc656ca7020aa4750c15871e1 Mon Sep 17 00:00:00 2001 From: "denis.razinkin" Date: Thu, 28 May 2026 16:38:03 +0300 Subject: [PATCH 32/41] abseil --- conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conanfile.py b/conanfile.py index ae7c1f4831c4..b18e48e479f9 100644 --- a/conanfile.py +++ b/conanfile.py @@ -147,7 +147,7 @@ def requirements(self): if self.options.with_jemalloc: self.requires('jemalloc/[^5.3]') if self.options.with_grpc or self.options.with_clickhouse: - self.requires('abseil/20240722.1', transitive_headers=True, transitive_libs=True, force=True) + self.requires('abseil/20260107.1', transitive_headers=True, transitive_libs=True, force=True) if self.options.with_grpc: self.requires( 'grpc/[^1.69.0]', From a28dc091e89dca6f5e437f8250a42aacbb86a120 Mon Sep 17 00:00:00 2001 From: "denis.razinkin" Date: Thu, 28 May 2026 16:39:15 +0300 Subject: [PATCH 33/41] abseil --- conanfile.py | 2 +- version.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/conanfile.py b/conanfile.py index b18e48e479f9..6432831b9d8d 100644 --- a/conanfile.py +++ b/conanfile.py @@ -89,7 +89,7 @@ def set_version(self): 'version.txt', ), ) - hotfix_version = '0' + hotfix_version = '1' self.version = content.strip() + f".{hotfix_version}" # pylint: disable=attribute-defined-outside-init def source(self): diff --git a/version.txt b/version.txt index 9f55b2ccb5f2..4a36342fcab7 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.0 +3.0.0 From ecd7835fe89fb0ce9a160affa89bf8e1f749930d Mon Sep 17 00:00:00 2001 From: "denis.razinkin" Date: Thu, 28 May 2026 16:46:40 +0300 Subject: [PATCH 34/41] abseil --- conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conanfile.py b/conanfile.py index 6432831b9d8d..5b77e86e6f87 100644 --- a/conanfile.py +++ b/conanfile.py @@ -155,7 +155,7 @@ def requirements(self): transitive_libs=True, ) self.requires( - 'protobuf/[^5.27]', + 'protobuf/7.35.0', transitive_headers=True, transitive_libs=True, force=True, From af578ef804e880666e3e10b5fce478c0e2350bde Mon Sep 17 00:00:00 2001 From: "denis.razinkin" Date: Thu, 28 May 2026 17:00:22 +0300 Subject: [PATCH 35/41] protobuf/6.33.5 --- conanfile.py | 2 +- version.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/conanfile.py b/conanfile.py index 5b77e86e6f87..78f1dbee221f 100644 --- a/conanfile.py +++ b/conanfile.py @@ -155,7 +155,7 @@ def requirements(self): transitive_libs=True, ) self.requires( - 'protobuf/7.35.0', + 'protobuf/6.33.5', transitive_headers=True, transitive_libs=True, force=True, diff --git a/version.txt b/version.txt index 4a36342fcab7..9f55b2ccb5f2 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3.0.0 +3.0 From fec59e77ace01d19db4780bfdd755d693d22040e Mon Sep 17 00:00:00 2001 From: "denis.razinkin" Date: Fri, 29 May 2026 13:43:17 +0300 Subject: [PATCH 36/41] mongo-c-driver/1.30.3 --- conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conanfile.py b/conanfile.py index 78f1dbee221f..7b37ffe4c4d7 100644 --- a/conanfile.py +++ b/conanfile.py @@ -171,7 +171,7 @@ def requirements(self): self.requires('cyrus-sasl/[^2.1]') if self.options.with_mongodb: self.requires( - 'mongo-c-driver/[^1.30]', + 'mongo-c-driver/1.30.3', transitive_headers=True, transitive_libs=True, ) From e41768bbc282443823a513be6cad754ebe329b63 Mon Sep 17 00:00:00 2001 From: "denis.razinkin" Date: Fri, 29 May 2026 13:43:47 +0300 Subject: [PATCH 37/41] mongo-c-driver/1.30.3 --- conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conanfile.py b/conanfile.py index 7b37ffe4c4d7..9a8110b5e236 100644 --- a/conanfile.py +++ b/conanfile.py @@ -89,7 +89,7 @@ def set_version(self): 'version.txt', ), ) - hotfix_version = '1' + hotfix_version = '2' self.version = content.strip() + f".{hotfix_version}" # pylint: disable=attribute-defined-outside-init def source(self): From 2e01c6c2522f19009f9cdf3c397e962b8a901054 Mon Sep 17 00:00:00 2001 From: "denis.razinkin" Date: Fri, 29 May 2026 17:59:43 +0300 Subject: [PATCH 38/41] builfdix --- conanfile.py | 2 +- .../userver/utils/statistics/system_statistics_collector.hpp | 2 +- core/src/utils/statistics/system_statistics.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/conanfile.py b/conanfile.py index 9a8110b5e236..0eafb3b3af94 100644 --- a/conanfile.py +++ b/conanfile.py @@ -89,7 +89,7 @@ def set_version(self): 'version.txt', ), ) - hotfix_version = '2' + hotfix_version = '3' self.version = content.strip() + f".{hotfix_version}" # pylint: disable=attribute-defined-outside-init def source(self): diff --git a/core/include/userver/utils/statistics/system_statistics_collector.hpp b/core/include/userver/utils/statistics/system_statistics_collector.hpp index 59eed687ba64..9f5d1ef70f72 100644 --- a/core/include/userver/utils/statistics/system_statistics_collector.hpp +++ b/core/include/userver/utils/statistics/system_statistics_collector.hpp @@ -8,7 +8,7 @@ #include #include #include -#include +#include USERVER_NAMESPACE_BEGIN diff --git a/core/src/utils/statistics/system_statistics.cpp b/core/src/utils/statistics/system_statistics.cpp index 0a6609b64c9a..5a4d1af367ca 100644 --- a/core/src/utils/statistics/system_statistics.cpp +++ b/core/src/utils/statistics/system_statistics.cpp @@ -1,4 +1,4 @@ -#include +#include #ifdef __APPLE__ #include From 1ff5f5e5b1f9f80756fc488b623b954c1fc024f9 Mon Sep 17 00:00:00 2001 From: "denis.razinkin" Date: Mon, 1 Jun 2026 15:47:59 +0300 Subject: [PATCH 39/41] builfdix --- conanfile.py | 2 +- universal/CMakeLists.txt | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/conanfile.py b/conanfile.py index 0eafb3b3af94..7f36f8be5a7f 100644 --- a/conanfile.py +++ b/conanfile.py @@ -89,7 +89,7 @@ def set_version(self): 'version.txt', ), ) - hotfix_version = '3' + hotfix_version = '4' self.version = content.strip() + f".{hotfix_version}" # pylint: disable=attribute-defined-outside-init def source(self): diff --git a/universal/CMakeLists.txt b/universal/CMakeLists.txt index e8b6e73a3a8f..09f97605d58a 100644 --- a/universal/CMakeLists.txt +++ b/universal/CMakeLists.txt @@ -73,6 +73,9 @@ userver_target_cxx_compile_options_if_supported( "-Wlogical-op" "-Wformat=2" "-Wno-error=deprecated-declarations" + # protobuf 6 generated code uses absl_nullable/absl_nonnull (-> _Nullable/_Nonnull), + # which are clang extensions and trip -Wpedantic -Werror in Debug builds. + "-Wno-nullability-extension" # This warning is unavoidable in generic code with templates "-Wno-useless-cast" # gcc complains: the ABI of passing union with ‘long double’ has changed in GCC 4.4 From a1e9d753dc30f00ba23b5bc3d920a1e438becf0e Mon Sep 17 00:00:00 2001 From: "denis.razinkin" Date: Tue, 2 Jun 2026 22:10:00 +0300 Subject: [PATCH 40/41] builfdix --- conanfile.py | 2 +- universal/CMakeLists.txt | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/conanfile.py b/conanfile.py index 7f36f8be5a7f..294705104886 100644 --- a/conanfile.py +++ b/conanfile.py @@ -89,7 +89,7 @@ def set_version(self): 'version.txt', ), ) - hotfix_version = '4' + hotfix_version = '5' self.version = content.strip() + f".{hotfix_version}" # pylint: disable=attribute-defined-outside-init def source(self): diff --git a/universal/CMakeLists.txt b/universal/CMakeLists.txt index 09f97605d58a..e8088c691016 100644 --- a/universal/CMakeLists.txt +++ b/universal/CMakeLists.txt @@ -76,6 +76,9 @@ userver_target_cxx_compile_options_if_supported( # protobuf 6 generated code uses absl_nullable/absl_nonnull (-> _Nullable/_Nonnull), # which are clang extensions and trip -Wpedantic -Werror in Debug builds. "-Wno-nullability-extension" + # __COUNTER__ is flagged as a C2y extension by clang under -Wpedantic; it is used + # pervasively (e.g. ASSIGN_OR_RETURN macros, google/benchmark). Suppress the noise. + "-Wno-c2y-extensions" # This warning is unavoidable in generic code with templates "-Wno-useless-cast" # gcc complains: the ABI of passing union with ‘long double’ has changed in GCC 4.4 From d6d66833c0050a50c6403724a37ed7cd4c0c1003 Mon Sep 17 00:00:00 2001 From: "denis.razinkin" Date: Wed, 3 Jun 2026 10:11:37 +0300 Subject: [PATCH 41/41] Revert "builfdix" This reverts commit a1e9d753dc30f00ba23b5bc3d920a1e438becf0e. --- conanfile.py | 2 +- universal/CMakeLists.txt | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/conanfile.py b/conanfile.py index 294705104886..7f36f8be5a7f 100644 --- a/conanfile.py +++ b/conanfile.py @@ -89,7 +89,7 @@ def set_version(self): 'version.txt', ), ) - hotfix_version = '5' + hotfix_version = '4' self.version = content.strip() + f".{hotfix_version}" # pylint: disable=attribute-defined-outside-init def source(self): diff --git a/universal/CMakeLists.txt b/universal/CMakeLists.txt index e8088c691016..09f97605d58a 100644 --- a/universal/CMakeLists.txt +++ b/universal/CMakeLists.txt @@ -76,9 +76,6 @@ userver_target_cxx_compile_options_if_supported( # protobuf 6 generated code uses absl_nullable/absl_nonnull (-> _Nullable/_Nonnull), # which are clang extensions and trip -Wpedantic -Werror in Debug builds. "-Wno-nullability-extension" - # __COUNTER__ is flagged as a C2y extension by clang under -Wpedantic; it is used - # pervasively (e.g. ASSIGN_OR_RETURN macros, google/benchmark). Suppress the noise. - "-Wno-c2y-extensions" # This warning is unavoidable in generic code with templates "-Wno-useless-cast" # gcc complains: the ABI of passing union with ‘long double’ has changed in GCC 4.4