Repository: ydb-platform/ydb
Pull request #17668: Kafka proxy refactoring: remove kafka from actors names
Author: login: a-serebryanskiy
Labels: name: not-for-changelog
Created: 2025-04-24T10:11:44Z | Merged: 2025-05-07T08:19:35Z

### Changelog entry <!-- a user-readable short description of the changes that goes to CHANGELOG.md and Release Notes -->

Remove "kafka" from actors names to simplify naming. Debt from previous PR.

### Changelog category <!-- remove all except one -->

* Not for changelog (changelog entry is not required)

### Description for reviewers <!-- (optional) description for those who read this PR -->

...



Diff:
diff --git a/ydb/core/driver_lib/run/kikimr_services_initializers.cpp b/ydb/core/driver_lib/run/kikimr_services_initializers.cpp
index ed8320d1c8ee..f7f1dfc1e180 100644
--- a/ydb/core/driver_lib/run/kikimr_services_initializers.cpp
+++ b/ydb/core/driver_lib/run/kikimr_services_initializers.cpp
@@ -2780,8 +2780,8 @@ void TKafkaProxyServiceInitializer::InitializeServices(NActors::TActorSystemSetu
         );
         
         setup->LocalServices.emplace_back(
-            NKafka::MakeKafkaTransactionsServiceID(),
-            TActorSetupCmd(NKafka::CreateKafkaTransactionsCoordinator(),
+            NKafka::MakeTransactionsServiceID(),
+            TActorSetupCmd(NKafka::CreateTransactionsCoordinator(),
                 TMailboxType::HTSwap, appData->UserPoolId
             )
         );
diff --git a/ydb/core/kafka_proxy/actors/kafka_init_producer_id_actor.cpp b/ydb/core/kafka_proxy/actors/kafka_init_producer_id_actor.cpp
index 72c46ff3a18f..42530a8442d9 100644
--- a/ydb/core/kafka_proxy/actors/kafka_init_producer_id_actor.cpp
+++ b/ydb/core/kafka_proxy/actors/kafka_init_producer_id_actor.cpp
@@ -151,7 +151,7 @@ namespace NKafka {
     }
 
     void TKafkaInitProducerIdActor::HandleQueryResponseFromKqp(NKqp::TEvKqp::TEvQueryResponse::TPtr ev, const TActorContext& ctx) {
-        KAFKA_LOG_D(TStringBuilder() << "Handle kqp response for " << GetAsStr(LastSentToKqpRequest) << " request");
+        KAFKA_LOG_D("Handle kqp response for " << GetAsStr(LastSentToKqpRequest) << " request");
 
         try {
             switch (LastSentToKqpRequest) {
@@ -282,7 +282,7 @@ namespace NKafka {
     void TKafkaInitProducerIdActor::SendSaveTxnProducerStateRequest(const TProducerState& producerState) {
         KAFKA_LOG_D("Sending save txn producer state request");
 
-        Send(NKafka::MakeKafkaTransactionsServiceID(), new TEvKafka::TEvSaveTxnProducerRequest(
+        Send(NKafka::MakeTransactionsServiceID(), new TEvKafka::TEvSaveTxnProducerRequest(
             producerState.TransactionalId,
             {
                 producerState.ProducerId, 
diff --git a/ydb/core/kafka_proxy/actors/kafka_transaction_actor.cpp b/ydb/core/kafka_proxy/actors/kafka_transaction_actor.cpp
index 758874c63d97..28a09fefa2c7 100644
--- a/ydb/core/kafka_proxy/actors/kafka_transaction_actor.cpp
+++ b/ydb/core/kafka_proxy/actors/kafka_transaction_actor.cpp
@@ -21,8 +21,8 @@ if (!ProducerInRequestIsValid(ev->Get()->Request)) { \
 
 namespace NKafka {
 
-    void TKafkaTransactionActor::Handle(TEvKafka::TEvAddPartitionsToTxnRequest::TPtr& ev, const TActorContext&){
-        KAFKA_LOG_D("Receieved ADD_PARTITIONS_TO_TXN request");
+    void TTransactionActor::Handle(TEvKafka::TEvAddPartitionsToTxnRequest::TPtr& ev, const TActorContext&){
+        KAFKA_LOG_D("Received ADD_PARTITIONS_TO_TXN request");
         VALIDATE_PRODUCER_IN_REQUEST(TAddPartitionsToTxnResponseData);
 
         for (auto& topicInRequest : ev->Get()->Request->Topics) {
@@ -36,14 +36,14 @@ namespace NKafka {
     // Method does nothing. In Kafka it will add __consumer_offsets topic to transaction, but 
     // in YDB Topics we store offsets in table and do not need this extra action.
     // Thus we can just ignore this request.
-    void TKafkaTransactionActor::Handle(TEvKafka::TEvAddOffsetsToTxnRequest::TPtr& ev, const TActorContext&) {
-        KAFKA_LOG_D("Receieved ADD_OFFSETS_TO_TXN request");
+    void TTransactionActor::Handle(TEvKafka::TEvAddOffsetsToTxnRequest::TPtr& ev, const TActorContext&) {
+        KAFKA_LOG_D("Received ADD_OFFSETS_TO_TXN request");
         VALIDATE_PRODUCER_IN_REQUEST(TAddOffsetsToTxnResponseData);
         SendOkResponse<TAddOffsetsToTxnResponseData>(ev);
     }
 
-    void TKafkaTransactionActor::Handle(TEvKafka::TEvTxnOffsetCommitRequest::TPtr& ev, const TActorContext&) {
-        KAFKA_LOG_D("Receieved TXN_OFFSET_COMMIT request");
+    void TTransactionActor::Handle(TEvKafka::TEvTxnOffsetCommitRequest::TPtr& ev, const TActorContext&) {
+        KAFKA_LOG_D("Received TXN_OFFSET_COMMIT request");
         VALIDATE_PRODUCER_IN_REQUEST(TTxnOffsetCommitResponseData);
 
         // save offsets for future use
@@ -78,8 +78,8 @@ namespace NKafka {
     6. Handle(NKqp::TEvKqp::TEvQueryResponse): If everything committed successfully, return OK to the client
     7. Close KQP session, send to coordinator TEvTransactionActorDied, die.
     */
-    void TKafkaTransactionActor::Handle(TEvKafka::TEvEndTxnRequest::TPtr& ev, const TActorContext& ctx) {
-        KAFKA_LOG_D("Receieved END_TXN request");
+    void TTransactionActor::Handle(TEvKafka::TEvEndTxnRequest::TPtr& ev, const TActorContext& ctx) {
+        KAFKA_LOG_D("Received END_TXN request");
         VALIDATE_PRODUCER_IN_REQUEST(TEndTxnResponseData);
 
         bool txnAborted = !ev->Get()->Request->Committed;
@@ -94,12 +94,12 @@ namespace NKafka {
         }
     }
 
-    void TKafkaTransactionActor::Handle(TEvents::TEvPoison::TPtr&, const TActorContext& ctx) {
+    void TTransactionActor::Handle(TEvents::TEvPoison::TPtr&, const TActorContext& ctx) {
         Die(ctx);
     }
 
-    void TKafkaTransactionActor::Handle(NKqp::TEvKqp::TEvCreateSessionResponse::TPtr& ev, const TActorContext& ctx) {
-        KAFKA_LOG_D(TStringBuilder() << "KQP session created");
+    void TTransactionActor::Handle(NKqp::TEvKqp::TEvCreateSessionResponse::TPtr& ev, const TActorContext& ctx) {
+        KAFKA_LOG_D("KQP session created");
         if (!Kqp->HandleCreateSessionResponse(ev, ctx)) {
             SendFailResponse<TEndTxnResponseData>(EndTxnRequestPtr, EKafkaErrors::BROKER_NOT_AVAILABLE, "Failed to create KQP session");
             Die(ctx);
@@ -109,8 +109,8 @@ namespace NKafka {
         SendToKqpValidationRequests(ctx);
     }
 
-    void TKafkaTransactionActor::Handle(NKqp::TEvKqp::TEvQueryResponse::TPtr& ev, const TActorContext& ctx) {
-        KAFKA_LOG_D(TStringBuilder() << "Receieved query response from KQP for " << GetAsStr(LastSentToKqpRequest) << " request");
+    void TTransactionActor::Handle(NKqp::TEvKqp::TEvQueryResponse::TPtr& ev, const TActorContext& ctx) {
+        KAFKA_LOG_D("Received query response from KQP for " << GetAsStr(LastSentToKqpRequest) << " request");
         if (auto error = GetErrorFromYdbResponse(ev)) {
             KAFKA_LOG_W(error);
             SendFailResponse<TEndTxnResponseData>(EndTxnRequestPtr, EKafkaErrors::BROKER_NOT_AVAILABLE, error->data());
@@ -130,14 +130,14 @@ namespace NKafka {
         }
     }
 
-    void TKafkaTransactionActor::StartKqpSession(const TActorContext& ctx) {
+    void TTransactionActor::StartKqpSession(const TActorContext& ctx) {
         Kqp = std::make_unique<TKqpTxHelper>(DatabasePath);
-        KAFKA_LOG_D(TStringBuilder() << "Sending create session request to KQP for database " << DatabasePath);
+        KAFKA_LOG_D("Sending create session request to KQP for database " << DatabasePath);
         Kqp->SendCreateSessionRequest(ctx, KqpActorId);
     }
 
-    void TKafkaTransactionActor::SendToKqpValidationRequests(const TActorContext& ctx) {
-        KAFKA_LOG_D(TStringBuilder() << "Sending select request to KQP for database " << DatabasePath);
+    void TTransactionActor::SendToKqpValidationRequests(const TActorContext& ctx) {
+        KAFKA_LOG_D("Sending select request to KQP for database " << DatabasePath);
         Kqp->SendYqlRequest(
             GetYqlWithTablesNames(NKafkaTransactionSql::SELECT_FOR_VALIDATION), 
             BuildSelectParams(), 
@@ -150,7 +150,7 @@ namespace NKafka {
         LastSentToKqpRequest = EKafkaTxnKqpRequests::SELECT;
     }
 
-    void TKafkaTransactionActor::SendCommitTxnRequest(const TString& kqpTransactionId) {
+    void TTransactionActor::SendCommitTxnRequest(const TString& kqpTransactionId) {
         auto request = BuildCommitTxnRequestToKqp(kqpTransactionId);
 
         Send(KqpActorId, request.Release(), 0, ++KqpCookie);
@@ -160,11 +160,11 @@ namespace NKafka {
     
     // Response senders
     template<class ErrorResponseType, class EventType>
-    void TKafkaTransactionActor::SendFailResponse(TAutoPtr<TEventHandle<EventType>>& evHandle, EKafkaErrors errorCode, const TString& errorMessage) {
+    void TTransactionActor::SendFailResponse(TAutoPtr<TEventHandle<EventType>>& evHandle, EKafkaErrors errorCode, const TString& errorMessage) {
         if (errorMessage) {
-            KAFKA_LOG_W(TStringBuilder() << "Sending fail response with error code: " << errorCode << ". Reason:  " << errorMessage);
+            KAFKA_LOG_W("Sending fail response with error code: " << errorCode << ". Reason:  " << errorMessage);
         } else {
-            KAFKA_LOG_W(TStringBuilder() << "Sending fail response with error code: " << errorCode);
+            KAFKA_LOG_W("Sending fail response with error code: " << errorCode);
         }
 
         auto response = NKafkaTransactions::BuildResponse<ErrorResponseType>(evHandle->Get()->Request, errorCode);
@@ -172,15 +172,15 @@ namespace NKafka {
     }
 
     template<class ResponseType, class EventType>
-    void TKafkaTransactionActor::SendOkResponse(TAutoPtr<TEventHandle<EventType>>& evHandle) {
+    void TTransactionActor::SendOkResponse(TAutoPtr<TEventHandle<EventType>>& evHandle) {
         auto& kafkaRequest = evHandle->Get()->Request;
-        KAFKA_LOG_D(TStringBuilder() << "Sending OK response to " << evHandle->Get()->ConnectionId << " with correlationId " << evHandle->Get()->CorrelationId << " and transactionalId " << TransactionalId);
+        KAFKA_LOG_D("Sending OK response to " << evHandle->Get()->ConnectionId << " with correlationId " << evHandle->Get()->CorrelationId << " and transactionalId " << TransactionalId);
         std::shared_ptr<ResponseType> response = NKafkaTransactions::BuildResponse<ResponseType>(kafkaRequest, EKafkaErrors::NONE_ERROR);
         Send(evHandle->Get()->ConnectionId, new TEvKafka::TEvResponse(evHandle->Get()->CorrelationId, response, EKafkaErrors::NONE_ERROR));
     }
 
     // helper methods
-    void TKafkaTransactionActor::Die(const TActorContext &ctx) {
+    void TTransactionActor::Die(const TActorContext &ctx) {
         KAFKA_LOG_D("Dying.");
         if (Kqp) {
             Kqp->CloseKqpSession(ctx);
@@ -190,17 +190,17 @@ namespace NKafka {
     }
 
     template<class EventType>
-    bool TKafkaTransactionActor::ProducerInRequestIsValid(TMessagePtr<EventType> kafkaRequest) {
+    bool TTransactionActor::ProducerInRequestIsValid(TMessagePtr<EventType> kafkaRequest) {
         return kafkaRequest->TransactionalId->c_str() == TransactionalId 
             && kafkaRequest->ProducerId == ProducerInstanceId.Id 
             && kafkaRequest->ProducerEpoch == ProducerInstanceId.Epoch;
     }
 
-    TString TKafkaTransactionActor::GetFullTopicPath(const TString& topicName) {
+    TString TTransactionActor::GetFullTopicPath(const TString& topicName) {
         return NPersQueue::GetFullTopicPath(DatabasePath, topicName);
     }
 
-    TString TKafkaTransactionActor::GetYqlWithTablesNames(const TString& templateStr) {
+    TString TTransactionActor::GetYqlWithTablesNames(const TString& templateStr) {
         TString templateWithProducerStateTable = std::regex_replace(
             templateStr.c_str(),
             std::regex("<producer_state_table_name>"), 
@@ -215,7 +215,7 @@ namespace NKafka {
         return templateWithConsumerStateTable;
     }
 
-    NYdb::TParams TKafkaTransactionActor::BuildSelectParams() {
+    NYdb::TParams TTransactionActor::BuildSelectParams() {
         NYdb::TParamsBuilder params;
         params.AddParam("$Database").Utf8(DatabasePath).Build();
         params.AddParam("$TransactionalId").Utf8(TransactionalId).Build();
@@ -236,7 +236,7 @@ namespace NKafka {
         return params.Build();
     }
 
-    THolder<NKikimr::NKqp::TEvKqp::TEvQueryRequest> TKafkaTransactionActor::BuildCommitTxnRequestToKqp(const TString& kqpTransactionId) {
+    THolder<NKikimr::NKqp::TEvKqp::TEvQueryRequest> TTransactionActor::BuildCommitTxnRequestToKqp(const TString& kqpTransactionId) {
         auto ev = MakeHolder<TEvKqp::TEvQueryRequest>();
 
         ev->Record.MutableRequest()->SetType(NKikimrKqp::QUERY_TYPE_UNDEFINED);
@@ -272,7 +272,7 @@ namespace NKafka {
         return ev;
     }
 
-    void TKafkaTransactionActor::HandleSelectResponse(const NKqp::TEvKqp::TEvQueryResponse& response, const TActorContext& ctx) {
+    void TTransactionActor::HandleSelectResponse(const NKqp::TEvKqp::TEvQueryResponse& response, const TActorContext& ctx) {
         // YDB should return exactly two result sets for two queries: to producer and consumer state tables
         if (response.Record.GetResponse().GetYdbResults().size() != 2) {
             TString error = TStringBuilder() << "KQP returned wrong number of result sets on SELECT query. Expected 2, got " << response.Record.GetResponse().GetYdbResults().size() << ".";
@@ -309,19 +309,19 @@ namespace NKafka {
             return;
         }
 
-        KAFKA_LOG_D(TStringBuilder() << "Validated producer and consumers states. Everything is alright, sending commit");
+        KAFKA_LOG_D("Validated producer and consumers states. Everything is alright, sending commit");
         auto kqpTxnId = response.Record.GetResponse().GetTxMeta().id();
         // finally everything is valid and we can attempt to commit
         SendCommitTxnRequest(kqpTxnId);
     }
 
-    void TKafkaTransactionActor::HandleCommitResponse(const TActorContext& ctx) {
+    void TTransactionActor::HandleCommitResponse(const TActorContext& ctx) {
         KAFKA_LOG_D("Successfully committed transaction. Sending ok and dying.");
         SendOkResponse<TEndTxnResponseData>(EndTxnRequestPtr);
         Die(ctx);
     }
 
-    TMaybe<TString> TKafkaTransactionActor::GetErrorFromYdbResponse(NKqp::TEvKqp::TEvQueryResponse::TPtr& ev) {
+    TMaybe<TString> TTransactionActor::GetErrorFromYdbResponse(NKqp::TEvKqp::TEvQueryResponse::TPtr& ev) {
         TStringBuilder builder = TStringBuilder() << "Recieved error on request to KQP. Last sent request: " << GetAsStr(LastSentToKqpRequest) << ". Reason: ";
         if (ev->Cookie != KqpCookie) {
             return builder << "Unexpected cookie in TEvQueryResponse. Expected KQP Cookie: " << KqpCookie << ", Actual: " << ev->Cookie << ".";
@@ -332,7 +332,7 @@ namespace NKafka {
         }
     }
 
-    TMaybe<TProducerState> TKafkaTransactionActor::ParseProducerState(const NKqp::TEvKqp::TEvQueryResponse& response) {
+    TMaybe<TProducerState> TTransactionActor::ParseProducerState(const NKqp::TEvKqp::TEvQueryResponse& response) {
         auto& resp = response.Record.GetResponse();
 
         NYdb::TResultSetParser parser(resp.GetYdbResults(NKafkaTransactionSql::PRODUCER_STATE_REQUEST_INDEX));
@@ -357,7 +357,7 @@ namespace NKafka {
         }
     }
 
-    TMaybe<TString> TKafkaTransactionActor::GetErrorInProducerState(const TMaybe<TProducerState>& producerState) {
+    TMaybe<TString> TTransactionActor::GetErrorInProducerState(const TMaybe<TProducerState>& producerState) {
         if (!producerState) {
             return "No producer state found. May be it has expired";
         } else if (producerState->TransactionalId != TransactionalId || producerState->ProducerId != ProducerInstanceId.Id || producerState->ProducerEpoch != ProducerInstanceId.Epoch) {
@@ -376,7 +376,7 @@ namespace NKafka {
         * @param response The response object containing the result set from the YDB query.
         * @return A map where keys are consumer group names and values are their corresponding generations.
         */
-    std::unordered_map<TString, i32> TKafkaTransactionActor::ParseConsumersGenerations(const NKqp::TEvKqp::TEvQueryResponse& response) {
+    std::unordered_map<TString, i32> TTransactionActor::ParseConsumersGenerations(const NKqp::TEvKqp::TEvQueryResponse& response) {
         std::unordered_map<TString, i32> generationByConsumerName;
     
         NYdb::TResultSetParser parser(response.Record.GetResponse().GetYdbResults(NKafkaTransactionSql::CONSUMER_STATES_REQUEST_INDEX));
@@ -389,7 +389,7 @@ namespace NKafka {
         return generationByConsumerName;
     }
 
-    TMaybe<TString> TKafkaTransactionActor::GetErrorInConsumersStates(const std::unordered_map<TString, i32>& consumerGenerationByName) {
+    TMaybe<TString> TTransactionActor::GetErrorInConsumersStates(const std::unordered_map<TString, i32>& consumerGenerationByName) {
         TStringBuilder builder;
         bool foundError = false;
         for (auto& [topicPartition, offsetCommit] : OffsetsToCommit) {
@@ -421,7 +421,7 @@ namespace NKafka {
         }
     }
 
-    TString TKafkaTransactionActor::GetAsStr(EKafkaTxnKqpRequests request) {
+    TString TTransactionActor::GetAsStr(EKafkaTxnKqpRequests request) {
         switch (request) {
         case SELECT:
             return "SELECT";
diff --git a/ydb/core/kafka_proxy/actors/kafka_transaction_actor.h b/ydb/core/kafka_proxy/actors/kafka_transaction_actor.h
index 1a53d83c1410..81d5a3a104af 100644
--- a/ydb/core/kafka_proxy/actors/kafka_transaction_actor.h
+++ b/ydb/core/kafka_proxy/actors/kafka_transaction_actor.h
@@ -11,9 +11,9 @@ namespace NKafka {
 
     It accumulates transaction state (partitions in tx, offsets) and on commit submits transaction to KQP
     */
-    class TKafkaTransactionActor : public NActors::TActor<TKafkaTransactionActor> {
+    class TTransactionActor : public NActors::TActor<TTransactionActor> {
 
-        using TBase = NActors::TActor<TKafkaTransactionActor>;
+        using TBase = NActors::TActor<TTransactionActor>;
         
         public:
             struct TTopicPartition {
@@ -48,8 +48,8 @@ namespace NKafka {
             };
 
             // we need to exlplicitly specify kqpActorId and txnCoordinatorActorId for unit tests
-            TKafkaTransactionActor(const TString& transactionalId, i64 producerId, i16 producerEpoch, const TString& DatabasePath, const TActorId& kqpActorId, const TActorId& txnCoordinatorActorId) : 
-                TActor<TKafkaTransactionActor>(&TKafkaTransactionActor::StateFunc),
+            TTransactionActor(const TString& transactionalId, i64 producerId, i16 producerEpoch, const TString& DatabasePath, const TActorId& kqpActorId, const TActorId& txnCoordinatorActorId) : 
+                TBase(&TTransactionActor::StateFunc),
                 TransactionalId(transactionalId),
                 ProducerInstanceId({producerId, producerEpoch}),
                 DatabasePath(DatabasePath),
diff --git a/ydb/core/kafka_proxy/kafka_connection.cpp b/ydb/core/kafka_proxy/kafka_connection.cpp
index c98f2086e48b..391d2678a6c5 100644
--- a/ydb/core/kafka_proxy/kafka_connection.cpp
+++ b/ydb/core/kafka_proxy/kafka_connection.cpp
@@ -51,7 +51,7 @@ class TKafkaConnection: public TActorBootstrapped<TKafkaConnection>, public TNet
     TEvPollerReady* InactivityEvent = nullptr;
 
     const TActorId ListenerActorId;
-    const TActorId KafkaTxnCoordinatorActorId = NKafka::MakeKafkaTransactionsServiceID();
+    const TActorId KafkaTxnCoordinatorActorId = NKafka::MakeTransactionsServiceID();
 
     TIntrusivePtr<TSocketDescriptor> Socket;
     TSocketAddressType Address;
diff --git a/ydb/core/kafka_proxy/kafka_transactions_coordinator.cpp b/ydb/core/kafka_proxy/kafka_transactions_coordinator.cpp
index 03783e6f5dad..466f6c524356 100644
--- a/ydb/core/kafka_proxy/kafka_transactions_coordinator.cpp
+++ b/ydb/core/kafka_proxy/kafka_transactions_coordinator.cpp
@@ -7,7 +7,7 @@ namespace NKafka {
     // Handles new transactional_id+producer_id+producer_epoch: 
     // 1. validates that producer is not a zombie (in case of parallel init_producer_requests)
     // 2. saves transactional_id+producer_id+producer_epoch for validation of future transactional requests
-    void TKafkaTransactionsCoordinator::Handle(TEvKafka::TEvSaveTxnProducerRequest::TPtr& ev, const TActorContext& ctx){
+    void TTransactionsCoordinator::Handle(TEvKafka::TEvSaveTxnProducerRequest::TPtr& ev, const TActorContext& ctx){
         TEvKafka::TEvSaveTxnProducerRequest* request = ev->Get();
 
         auto it = ProducersByTransactionalId.find(request->TransactionalId);
@@ -29,31 +29,31 @@ namespace NKafka {
         ctx.Send(ev->Sender, new TEvKafka::TEvSaveTxnProducerResponse(TEvKafka::TEvSaveTxnProducerResponse::EStatus::OK, ""));
     };
 
-    void TKafkaTransactionsCoordinator::Handle(TEvKafka::TEvAddPartitionsToTxnRequest::TPtr& ev, const TActorContext& ctx){
+    void TTransactionsCoordinator::Handle(TEvKafka::TEvAddPartitionsToTxnRequest::TPtr& ev, const TActorContext& ctx){
         HandleTransactionalRequest<TAddPartitionsToTxnResponseData>(ev, ctx);
     };
 
-    void TKafkaTransactionsCoordinator::Handle(TEvKafka::TEvAddOffsetsToTxnRequest::TPtr& ev, const TActorContext& ctx){
+    void TTransactionsCoordinator::Handle(TEvKafka::TEvAddOffsetsToTxnRequest::TPtr& ev, const TActorContext& ctx){
         HandleTransactionalRequest<TAddOffsetsToTxnResponseData>(ev, ctx);
     };
 
-    void TKafkaTransactionsCoordinator::Handle(TEvKafka::TEvTxnOffsetCommitRequest::TPtr& ev, const TActorContext& ctx) {
+    void TTransactionsCoordinator::Handle(TEvKafka::TEvTxnOffsetCommitRequest::TPtr& ev, const TActorContext& ctx) {
         HandleTransactionalRequest<TTxnOffsetCommitResponseData>(ev, ctx);
     };
 
-    void TKafkaTransactionsCoordinator::Handle(TEvKafka::TEvEndTxnRequest::TPtr& ev, const TActorContext& ctx) {
+    void TTransactionsCoordinator::Handle(TEvKafka::TEvEndTxnRequest::TPtr& ev, const TActorContext& ctx) {
         HandleTransactionalRequest<TEndTxnResponseData>(ev, ctx);
     };
 
-    void TKafkaTransactionsCoordinator::Handle(TEvKafka::TEvTransactionActorDied::TPtr& ev, const TActorContext&) {
+    void TTransactionsCoordinator::Handle(TEvKafka::TEvTransactionActorDied::TPtr& ev, const TActorContext&) {
         auto it = ProducersByTransactionalId.find(ev->Get()->TransactionalId);
         const TEvKafka::TProducerInstanceId& deadActorProducerState = ev->Get()->ProducerState;
 
         if (it == ProducersByTransactionalId.end() || it->second != deadActorProducerState) {
             // new actor was already registered, we can just ignore this event
-            KAFKA_LOG_D(TStringBuilder() << "Received TEvTransactionActorDied for transactionalId " << ev->Get()->TransactionalId << " but producer has already been reinitialized with new epoch or deleted. Ignoring this event");
+            KAFKA_LOG_D("Received TEvTransactionActorDied for transactionalId " << ev->Get()->TransactionalId << " but producer has already been reinitialized with new epoch or deleted. Ignoring this event");
         } else {
-            KAFKA_LOG_D(TStringBuilder() << "Received TEvTransactionActorDied for transactionalId " << ev->Get()->TransactionalId 
+            KAFKA_LOG_D("Received TEvTransactionActorDied for transactionalId " << ev->Get()->TransactionalId 
                 << " and producerId " << ev->Get()->ProducerState.Id 
                 << " and producerEpoch " << ev->Get()->ProducerState.Epoch
                 << ". Erasing info about this actor.");
@@ -62,27 +62,27 @@ namespace NKafka {
         }
     };
 
-    void TKafkaTransactionsCoordinator::Handle(TEvents::TEvPoison::TPtr&, const TActorContext& ctx) {
+    void TTransactionsCoordinator::Handle(TEvents::TEvPoison::TPtr&, const TActorContext& ctx) {
         KAFKA_LOG_D("Got poison pill, killing all transaction actors");
         for (auto& [transactionalId, txnActorId]: TxnActorByTransactionalId) {
             ctx.Send(txnActorId, new TEvents::TEvPoison());
-            KAFKA_LOG_D(TStringBuilder() << "Sent poison pill to transaction actor for transactionalId " << transactionalId);
+            KAFKA_LOG_D("Sent poison pill to transaction actor for transactionalId " << transactionalId);
         }
         PassAway();
     };
 
-    void TKafkaTransactionsCoordinator::PassAway() {
+    void TTransactionsCoordinator::PassAway() {
         KAFKA_LOG_D("Killing myself");
         TBase::PassAway();
     };
 
     // Validates producer's id and epoch
-    // If valid: proxies requests to the relevant TKafkaTransactionActor
+    // If valid: proxies requests to the relevant TTransactionActor
     // If outdated or not initialized: returns PRODUCER_FENCED error
     template<class ErrorResponseType, class EventType>
-    void TKafkaTransactionsCoordinator::HandleTransactionalRequest(TAutoPtr<TEventHandle<EventType>>& evHandle, const TActorContext& ctx) {
+    void TTransactionsCoordinator::HandleTransactionalRequest(TAutoPtr<TEventHandle<EventType>>& evHandle, const TActorContext& ctx) {
         EventType* ev = evHandle->Get();
-        KAFKA_LOG_D(TStringBuilder() << "Receieved message for transactionalId " << ev->Request->TransactionalId->c_str() << " and ApiKey " << ev->Request->ApiKey());
+        KAFKA_LOG_D("Received message for transactionalId " << ev->Request->TransactionalId->c_str() << " and ApiKey " << ev->Request->ApiKey());
         
         // create helper struct to simplify methods interaction
         auto txnRequest = TTransactionalRequest(
@@ -99,34 +99,34 @@ namespace NKafka {
     };
 
     template<class ErrorResponseType, class RequestType>
-    void TKafkaTransactionsCoordinator::SendProducerFencedResponse(TMessagePtr<RequestType> kafkaRequest, const TString& error, const TTransactionalRequest& txnRequestDetails) {
+    void TTransactionsCoordinator::SendProducerFencedResponse(TMessagePtr<RequestType> kafkaRequest, const TString& error, const TTransactionalRequest& txnRequestDetails) {
         KAFKA_LOG_W(error);
         std::shared_ptr<ErrorResponseType> response = NKafkaTransactions::BuildResponse<ErrorResponseType>(kafkaRequest, EKafkaErrors::PRODUCER_FENCED);
         Send(txnRequestDetails.ConnectionId, new TEvKafka::TEvResponse(txnRequestDetails.CorrelationId, response, EKafkaErrors::PRODUCER_FENCED));
     };
 
     template<class EventType> 
-    void TKafkaTransactionsCoordinator::ForwardToTransactionActor(TAutoPtr<TEventHandle<EventType>>& evHandle, const TActorContext& ctx) {
+    void TTransactionsCoordinator::ForwardToTransactionActor(TAutoPtr<TEventHandle<EventType>>& evHandle, const TActorContext& ctx) {
         EventType* ev = evHandle->Get();
         
         TActorId txnActorId;
         if (TxnActorByTransactionalId.contains(ev->Request->TransactionalId->c_str())) {
             txnActorId = TxnActorByTransactionalId[ev->Request->TransactionalId->c_str()];
         } else {
-            txnActorId = ctx.Register(new TKafkaTransactionActor(ev->Request->TransactionalId->c_str(), ev->Request->ProducerId, ev->Request->ProducerEpoch, ev->DatabasePath, NKikimr::NKqp::MakeKqpProxyID(ctx.SelfID.NodeId()), ctx.SelfID));
+            txnActorId = ctx.Register(new TTransactionActor(ev->Request->TransactionalId->c_str(), ev->Request->ProducerId, ev->Request->ProducerEpoch, ev->DatabasePath, NKikimr::NKqp::MakeKqpProxyID(ctx.SelfID.NodeId()), ctx.SelfID));
             TxnActorByTransactionalId[ev->Request->TransactionalId->c_str()] = txnActorId;
-            KAFKA_LOG_D(TStringBuilder() << "Registered TKafkaTransactionActor with id " << txnActorId << " for transactionalId " << ev->Request->TransactionalId->c_str() << " and ApiKey " << ev->Request->ApiKey());
+            KAFKA_LOG_D("Registered TTransactionActor with id " << txnActorId << " for transactionalId " << ev->Request->TransactionalId->c_str() << " and ApiKey " << ev->Request->ApiKey());
         }
         TAutoPtr<IEventHandle> tmpPtr = evHandle.Release();
         ctx.Forward(tmpPtr, txnActorId);
-        KAFKA_LOG_D(TStringBuilder() << "Forwarded message to TKafkaTransactionActor with id " << txnActorId << " for transactionalId " << ev->Request->TransactionalId->c_str() << " and ApiKey " << ev->Request->ApiKey());
+        KAFKA_LOG_D("Forwarded message to TTransactionActor with id " << txnActorId << " for transactionalId " << ev->Request->TransactionalId->c_str() << " and ApiKey " << ev->Request->ApiKey());
     };
 
-    bool TKafkaTransactionsCoordinator::NewProducerStateIsOutdated(const TEvKafka::TProducerInstanceId& currentProducerState, const TEvKafka::TProducerInstanceId& newProducerState) {
+    bool TTransactionsCoordinator::NewProducerStateIsOutdated(const TEvKafka::TProducerInstanceId& currentProducerState, const TEvKafka::TProducerInstanceId& newProducerState) {
         return currentProducerState > newProducerState;
     };
 
-    TMaybe<TString> TKafkaTransactionsCoordinator::GetTxnRequestError(const TTransactionalRequest& request) {
+    TMaybe<TString> TTransactionsCoordinator::GetTxnRequestError(const TTransactionalRequest& request) {
         auto it = ProducersByTransactionalId.find(request.TransactionalId);
 
         if (it == ProducersByTransactionalId.end()) {
@@ -138,7 +138,7 @@ namespace NKafka {
         }
     };
 
-    TString TKafkaTransactionsCoordinator::GetProducerIsOutdatedError(const TString& transactionalId, const TEvKafka::TProducerInstanceId& currentProducerState, const TEvKafka::TProducerInstanceId& newProducerState) {
+    TString TTransactionsCoordinator::GetProducerIsOutdatedError(const TString& transactionalId, const TEvKafka::TProducerInstanceId& currentProducerState, const TEvKafka::TProducerInstanceId& newProducerState) {
         return TStringBuilder() << "Producer with transactional id " << transactionalId <<
                     "is outdated. Current producer id is " << currentProducerState.Id << 
                     " and producer epoch is " << currentProducerState.Epoch << ". Requested producer id is " << newProducerState.Id << 
diff --git a/ydb/core/kafka_proxy/kafka_transactions_coordinator.h b/ydb/core/kafka_proxy/kafka_transactions_coordinator.h
index 532a123556e1..24dbdcd4f085 100644
--- a/ydb/core/kafka_proxy/kafka_transactions_coordinator.h
+++ b/ydb/core/kafka_proxy/kafka_transactions_coordinator.h
@@ -7,15 +7,15 @@
 
 namespace NKafka {
     /* 
-    This class serves as a proxy between Kafka SDK and TKafkaTransactionActor
+    This class serves as a proxy between Kafka SDK and TTransactionActor
 
     It validates that requester is not a zombie (by checking request's tranasactional_id+producer_id+producer_epoch)
     It does so by maintaining a set of the most relevant for this node tranasactional_id+producer_id+producer_epoch. 
     Recieves updates from init_producer_id_actors. 
     */
-    class TKafkaTransactionsCoordinator : public NActors::TActorBootstrapped<TKafkaTransactionsCoordinator> {
+    class TTransactionsCoordinator : public NActors::TActorBootstrapped<TTransactionsCoordinator> {
 
-        using TBase = NActors::TActorBootstrapped<TKafkaTransactionsCoordinator>;
+        using TBase = NActors::TActorBootstrapped<TTransactionsCoordinator>;
 
         struct TTransactionalRequest {
             TString TransactionalId;
@@ -26,7 +26,7 @@ namespace NKafka {
 
         public:
             void Bootstrap(const TActorContext&) {
-                TBase::Become(&TKafkaTransactionsCoordinator::StateWork);
+                TBase::Become(&TTransactionsCoordinator::StateWork);
             }
 
             TStringBuilder LogPrefix() const {
@@ -50,7 +50,7 @@ namespace NKafka {
             // Handles new transactional_id+producer_id+producer_epoch: saves for validation of future requests
             void Handle(TEvKafka::TEvSaveTxnProducerRequest::TPtr& ev, const TActorContext& ctx);
             
-            // Proxies requests to the relevant TKafkaTransactionActor
+            // Proxies requests to the relevant TTransactionActor
             void Handle(TEvKafka::TEvAddPartitionsToTxnRequest::TPtr& ev, const TActorContext& ctx);
             void Handle(TEvKafka::TEvAddOffsetsToTxnRequest::TPtr& ev, const TActorContext& ctx);
             void Handle(TEvKafka::TEvTxnOffsetCommitRequest::TPtr& ev, const TActorContext& ctx);
@@ -76,11 +76,11 @@ namespace NKafka {
             std::unordered_map<TString, TActorId> TxnActorByTransactionalId;
     };
 
-    inline NActors::IActor* CreateKafkaTransactionsCoordinator() {
-        return new TKafkaTransactionsCoordinator();
+    inline NActors::IActor* CreateTransactionsCoordinator() {
+        return new TTransactionsCoordinator();
     };
 
-    inline TActorId MakeKafkaTransactionsServiceID() {
+    inline TActorId MakeTransactionsServiceID() {
         static const char x[12] = "kafka_txns";
         return TActorId(0, TStringBuf(x, 12));
     };
diff --git a/ydb/core/kafka_proxy/ut/ut_transaction_actor.cpp b/ydb/core/kafka_proxy/ut/ut_transaction_actor.cpp
index 64666a3af73a..33d0387b6f28 100644
--- a/ydb/core/kafka_proxy/ut/ut_transaction_actor.cpp
+++ b/ydb/core/kafka_proxy/ut/ut_transaction_actor.cpp
@@ -210,7 +210,7 @@ namespace {
                 Ctx->Runtime->SetLogPriority(NKikimrServices::KAFKA_PROXY, NLog::PRI_DEBUG);
                 DummyKqpActor = new TDummyKqpActor();
                 KqpActorId = Ctx->Runtime->Register(DummyKqpActor);
-                ActorId = Ctx->Runtime->Register(new TKafkaTransactionActor(
+                ActorId = Ctx->Runtime->Register(new TTransactionActor(
                     TransactionalId,
                     ProducerId,
                     ProducerEpoch,
@@ -325,7 +325,7 @@ namespace {
         private:
             void MatchPartitionsInTxn(const NKikimr::NKqp::TEvKqp::TEvQueryRequest* request, const TQueryRequestMatcher& matcher) {
                 auto& partitionsInRequest = request->Record.GetRequest().GetKafkaApiOperations().GetPartitionsInTxn();
-                std::unordered_set<TKafkaTransactionActor::TTopicPartition, TKafkaTransactionActor::TopicPartitionHashFn> paritionsInRequestSet;
+                std::unordered_set<TTransactionActor::TTopicPartition, TTransactionActor::TopicPartitionHashFn> paritionsInRequestSet;
                 paritionsInRequestSet.reserve(partitionsInRequest.size());
                 for (auto& partition : partitionsInRequest) {
                     paritionsInRequestSet.emplace(partition.GetTopicPath(), partition.GetPartitionId());
@@ -374,7 +374,7 @@ namespace {
             }
     };
 
-    Y_UNIT_TEST_SUITE_F(KafkaTransactionActor, TTransactionActorFixture) {
+    Y_UNIT_TEST_SUITE_F(TransactionActor, TTransactionActorFixture) {
         Y_UNIT_TEST(OnAddPartitionsAndEndTxn_shouldSendTxnToKqpWithSpecifiedPartitions) {
             TVector<TTopicPartitions> topics = {{"topic1", {0, 1}}, {"topic2", {0}}};
             bool seenEvent = false;
diff --git a/ydb/core/kafka_proxy/ut/ut_transaction_coordinator.cpp b/ydb/core/kafka_proxy/ut/ut_transaction_coordinator.cpp
index 5262312e3c15..2bfc656d82db 100644
--- a/ydb/core/kafka_proxy/ut/ut_transaction_coordinator.cpp
+++ b/ydb/core/kafka_proxy/ut/ut_transaction_coordinator.cpp
@@ -23,7 +23,7 @@ namespace {
                 Ctx->Prepare();
                 Ctx->Runtime->SetScheduledLimit(5'000);
                 Ctx->Runtime->SetLogPriority(NKikimrServices::KAFKA_PROXY, NLog::PRI_DEBUG);
-                ActorId = Ctx->Runtime->Register(new NKafka::TKafkaTransactionsCoordinator());
+                ActorId = Ctx->Runtime->Register(new NKafka::TTransactionsCoordinator());
             }
 
             void TearDown(NUnitTest::TTestContext&) override  {
@@ -84,7 +84,7 @@ namespace {
             }
     };
 
-    Y_UNIT_TEST_SUITE_F(KafkaTransactionCoordinatorActor, TFixture) {
+    Y_UNIT_TEST_SUITE_F(TransactionCoordinatorActor, TFixture) {
         Y_UNIT_TEST(OnProducerInitializedEvent_ShouldRespondOkIfTxnProducerWasNotFound) {
             auto response = SaveTxnProducer("my-tn-producer-1", 123, 0);
 
@@ -171,7 +171,7 @@ namespace {
                 if (auto* event = input->CastAsLocal<NKafka::TEvKafka::TEvEndTxnRequest>()) {
                     // there will be two events TEvEndTxnRequest:
                     // first: the one we dispatch in this test
-                    // second: event forwarded by TKafkaTransactionCoordinatorActor
+                    // second: event forwarded by TTransactionCoordinatorActor
                     if (eventCounter == 1) {
                         UNIT_ASSERT_VALUES_EQUAL(event->Request->TransactionalId, txnId);
                         UNIT_ASSERT_VALUES_EQUAL(event->Request->ProducerId, producerId);
@@ -210,8 +210,8 @@ namespace {
             auto observer = [&](TAutoPtr<IEventHandle>& input) {
                 if (auto* event = input->CastAsLocal<NKafka::TEvKafka::TEvEndTxnRequest>()) {
                     // There will be four events TEvEndTxnRequest. We need only two of them 
-                    // with recipient not equal to our TKafkaTransactionCoordinatorActor id. 
-                    // Those are event sent from TKafkaTransactionCoordinatorActor to TKafkaTransactionActor
+                    // with recipient not equal to our TTransactionCoordinatorActor id. 
+                    // Those are event sent from TTransactionCoordinatorActor to TTransactionActor
                     if (input->Recipient != ActorId) {
                         if (eventCounter == 0) {
                             txnActorId = input->Recipient;
diff --git a/ydb/core/testlib/test_client.cpp b/ydb/core/testlib/test_client.cpp
index bcdda46fa9c1..168bd903353d 100644
--- a/ydb/core/testlib/test_client.cpp
+++ b/ydb/core/testlib/test_client.cpp
@@ -1450,8 +1450,8 @@ namespace Tests {
             TActorId discoveryCacheId = Runtime->Register(discoveryCache, nodeIdx, userPoolId);
             Runtime->RegisterService(NKafka::MakeKafkaDiscoveryCacheID(), discoveryCacheId, nodeIdx);
             
-            TActorId kafkaTxnCoordinatorActorId = Runtime->Register(NKafka::CreateKafkaTransactionsCoordinator(), nodeIdx, userPoolId);
-            Runtime->RegisterService(NKafka::MakeKafkaTransactionsServiceID(), kafkaTxnCoordinatorActorId, nodeIdx);
+            TActorId kafkaTxnCoordinatorActorId = Runtime->Register(NKafka::CreateTransactionsCoordinator(), nodeIdx, userPoolId);
+            Runtime->RegisterService(NKafka::MakeTransactionsServiceID(), kafkaTxnCoordinatorActorId, nodeIdx);
 
             NKafka::TListenerSettings settings;
             settings.Port = Settings->AppConfig->GetKafkaProxyConfig().GetListeningPort();


Reviews:
user: login: Alek5andr-Kotov
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-04-28T08:25:01Z
user: login: Alek5andr-Kotov
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-04-28T08:29:18Z
user: login: Alek5andr-Kotov
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-05-06T15:26:46Z
user: login: Alek5andr-Kotov
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-05-06T15:28:04Z
user: login: Alek5andr-Kotov
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-05-06T15:33:49Z
user: login: Alek5andr-Kotov
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-05-06T15:34:14Z
user: login: Alek5andr-Kotov
state: APPROVED
author_association: COLLABORATOR
submitted_at: 2025-05-07T07:32:19Z

Review comments:
diff_hunk: @@ -48,8 +48,8 @@ namespace NKafka {
             };
 
             // we need to exlplicitly specify kqpActorId and txnCoordinatorActorId for unit tests
-            TKafkaTransactionActor(const TString& transactionalId, i64 producerId, i16 producerEpoch, const TString& DatabasePath, const TActorId& kqpActorId, const TActorId& txnCoordinatorActorId) : 
-                TActor<TKafkaTransactionActor>(&TKafkaTransactionActor::StateFunc),
+            TTransactionActor(const TString& transactionalId, i64 producerId, i16 producerEpoch, const TString& DatabasePath, const TActorId& kqpActorId, const TActorId& txnCoordinatorActorId) : 
+                TActor<TTransactionActor>(&TTransactionActor::StateFunc),
path: ydb/core/kafka_proxy/actors/kafka_transaction_actor.h
user: login: Alek5andr-Kotov
body: Здесь можно использовать `TBase(&TTransactionActor::StateFunc)`?
created_at: 2025-04-28T08:25:01Z
author_association: COLLABORATOR
diff_hunk: @@ -99,34 +99,34 @@ namespace NKafka {
     };
 
     template<class ErrorResponseType, class RequestType>
-    void TKafkaTransactionsCoordinator::SendProducerFencedResponse(TMessagePtr<RequestType> kafkaRequest, const TString& error, const TTransactionalRequest& txnRequestDetails) {
+    void TTransactionsCoordinator::SendProducerFencedResponse(TMessagePtr<RequestType> kafkaRequest, const TString& error, const TTransactionalRequest& txnRequestDetails) {
         KAFKA_LOG_W(error);
         std::shared_ptr<ErrorResponseType> response = NKafkaTransactions::BuildResponse<ErrorResponseType>(kafkaRequest, EKafkaErrors::PRODUCER_FENCED);
         Send(txnRequestDetails.ConnectionId, new TEvKafka::TEvResponse(txnRequestDetails.CorrelationId, response, EKafkaErrors::PRODUCER_FENCED));
     };
 
     template<class EventType> 
-    void TKafkaTransactionsCoordinator::ForwardToTransactionActor(TAutoPtr<TEventHandle<EventType>>& evHandle, const TActorContext& ctx) {
+    void TTransactionsCoordinator::ForwardToTransactionActor(TAutoPtr<TEventHandle<EventType>>& evHandle, const TActorContext& ctx) {
         EventType* ev = evHandle->Get();
         
         TActorId txnActorId;
         if (TxnActorByTransactionalId.contains(ev->Request->TransactionalId->c_str())) {
             txnActorId = TxnActorByTransactionalId[ev->Request->TransactionalId->c_str()];
         } else {
-            txnActorId = ctx.Register(new TKafkaTransactionActor(ev->Request->TransactionalId->c_str(), ev->Request->ProducerId, ev->Request->ProducerEpoch, ev->DatabasePath, NKikimr::NKqp::MakeKqpProxyID(ctx.SelfID.NodeId()), ctx.SelfID));
+            txnActorId = ctx.Register(new TTransactionActor(ev->Request->TransactionalId->c_str(), ev->Request->ProducerId, ev->Request->ProducerEpoch, ev->DatabasePath, NKikimr::NKqp::MakeKqpProxyID(ctx.SelfID.NodeId()), ctx.SelfID));
             TxnActorByTransactionalId[ev->Request->TransactionalId->c_str()] = txnActorId;
-            KAFKA_LOG_D(TStringBuilder() << "Registered TKafkaTransactionActor with id " << txnActorId << " for transactionalId " << ev->Request->TransactionalId->c_str() << " and ApiKey " << ev->Request->ApiKey());
+            KAFKA_LOG_D(TStringBuilder() << "Registered TTransactionActor with id " << txnActorId << " for transactionalId " << ev->Request->TransactionalId->c_str() << " and ApiKey " << ev->Request->ApiKey());
path: ydb/core/kafka_proxy/kafka_transactions_coordinator.cpp
user: login: Alek5andr-Kotov
body: В опредении `KAFKA_LOG_D` используется потоковый вывод. Можно не использовать `TStringBuilder()`
created_at: 2025-04-28T08:29:17Z
author_association: COLLABORATOR
diff_hunk: @@ -109,8 +109,8 @@ namespace NKafka {
         SendToKqpValidationRequests(ctx);
     }
 
-    void TKafkaTransactionActor::Handle(NKqp::TEvKqp::TEvQueryResponse::TPtr& ev, const TActorContext& ctx) {
-        KAFKA_LOG_D(TStringBuilder() << "Receieved query response from KQP for " << GetAsStr(LastSentToKqpRequest) << " request");
+    void TTransactionActor::Handle(NKqp::TEvKqp::TEvQueryResponse::TPtr& ev, const TActorContext& ctx) {
+        KAFKA_LOG_D("Receieved query response from KQP for " << GetAsStr(LastSentToKqpRequest) << " request");
path: ydb/core/kafka_proxy/actors/kafka_transaction_actor.cpp
user: login: Alek5andr-Kotov
body: Received
created_at: 2025-05-06T15:26:46Z
author_association: COLLABORATOR
diff_hunk: @@ -160,7 +160,7 @@ namespace NKafka {
     
     // Response senders
     template<class ErrorResponseType, class EventType>
-    void TKafkaTransactionActor::SendFailResponse(TAutoPtr<TEventHandle<EventType>>& evHandle, EKafkaErrors errorCode, const TString& errorMessage) {
+    void TTransactionActor::SendFailResponse(TAutoPtr<TEventHandle<EventType>>& evHandle, EKafkaErrors errorCode, const TString& errorMessage) {
         if (errorMessage) {
             KAFKA_LOG_W(TStringBuilder() << "Sending fail response with error code: " << errorCode << ". Reason:  " << errorMessage);
path: ydb/core/kafka_proxy/actors/kafka_transaction_actor.cpp
user: login: Alek5andr-Kotov
body: Лишний `TStringBuilder`?
created_at: 2025-05-06T15:28:03Z
author_association: COLLABORATOR
diff_hunk: @@ -77,7 +77,7 @@ namespace NKafka {
     };
 
     inline NActors::IActor* CreateKafkaTransactionsCoordinator() {
path: ydb/core/kafka_proxy/kafka_transactions_coordinator.h
user: login: Alek5andr-Kotov
body: NKafka::CreateKafkaTransactionsCoordinator
created_at: 2025-05-06T15:33:49Z
author_association: COLLABORATOR
diff_hunk: @@ -77,7 +77,7 @@ namespace NKafka {
     };
 
     inline NActors::IActor* CreateKafkaTransactionsCoordinator() {
-        return new TKafkaTransactionsCoordinator();
+        return new TTransactionsCoordinator();
     };
 
     inline TActorId MakeKafkaTransactionsServiceID() {
path: ydb/core/kafka_proxy/kafka_transactions_coordinator.h
user: login: Alek5andr-Kotov
body: NKafka::MakeKafkaTransactionsServiceID
created_at: 2025-05-06T15:34:14Z
author_association: COLLABORATOR

PR comments:
user: login: github-actions[bot]
created_at: 2025-04-24T10:32:22Z
body: <!-- status pr=17668, validate PR description status -->
:green_circle: `2025-04-24 10:32:22 UTC` The validation of the Pull Request description is successful.
author_association: NONE
user: login: github-actions[bot]
created_at: 2025-04-24T10:41:02Z
body: <!-- status pr=17668, preset=release-asan, run=41371 -->
:white_circle: `2025-04-24 10:41:02 UTC` Pre-commit [check](https://github.com/ydb-platform/ydb/actions/runs/14639073279/job/41076957692) **linux-x86_64-release-asan** for 85ea5f027b3d88da6fc95adbbeb98e1d29862c4f has started.
:white_circle: `2025-04-24 10:41:29 UTC` Artifacts will be uploaded [here](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14639073279/ya-x86-64-asan/index.html)
:white_circle: `2025-04-24 10:44:48 UTC` ya make is running...
:yellow_circle: `2025-04-24 12:02:44 UTC` Some tests failed, follow the links below. This fail is not in blocking policy yet Going to retry failed tests...

<details>


[Test history](https://nebius.testmo.net/automation/runs/view/148704) | [Ya make output](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14639073279/ya-x86-64-asan/ya_make_output.txt) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14639073279/ya-x86-64-asan/try_1/test_bloat/tree_map.html)
| TESTS | PASSED | ERRORS | FAILED | SKIPPED | MUTED<sup>[?](https://github.com/ydb-platform/ydb/tree/main/.github/config/muted_ya.txt "All mute rules are defined here")</sup> |
| ---: | ---: | ---: | ---: | ---: | ---: |
| [14326](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14639073279/ya-x86-64-asan/try_1/ya-test.html) | [14190](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14639073279/ya-x86-64-asan/try_1/ya-test.html#PASS) | 0 | [75](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14639073279/ya-x86-64-asan/try_1/ya-test.html#FAIL) | [38](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14639073279/ya-x86-64-asan/try_1/ya-test.html#SKIP) | [23](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14639073279/ya-x86-64-asan/try_1/ya-test.html#MUTE) |

</details>

:white_circle: `2025-04-24 12:03:57 UTC` ya make is running... (failed tests rerun, try 2)
:yellow_circle: `2025-04-24 12:17:02 UTC` Some tests failed, follow the links below. This fail is not in blocking policy yet Going to retry failed tests...

<details>


[Test history](https://nebius.testmo.net/automation/runs/view/148765) | [Ya make output](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14639073279/ya-x86-64-asan/ya_make_output.txt) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14639073279/ya-x86-64-asan/try_1/test_bloat/tree_map.html) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14639073279/ya-x86-64-asan/try_2/test_bloat/tree_map.html)
| TESTS | PASSED | ERRORS | FAILED | SKIPPED | MUTED<sup>[?](https://github.com/ydb-platform/ydb/tree/main/.github/config/muted_ya.txt "All mute rules are defined here")</sup> |
| ---: | ---: | ---: | ---: | ---: | ---: |
| [175 (only retried tests)](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14639073279/ya-x86-64-asan/try_2/ya-test.html) | [105](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14639073279/ya-x86-64-asan/try_2/ya-test.html#PASS) | 0 | [36](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14639073279/ya-x86-64-asan/try_2/ya-test.html#FAIL) | [13](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14639073279/ya-x86-64-asan/try_2/ya-test.html#SKIP) | [21](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14639073279/ya-x86-64-asan/try_2/ya-test.html#MUTE) |

</details>

:white_circle: `2025-04-24 12:17:11 UTC` ya make is running... (failed tests rerun, try 3)
:yellow_circle: `2025-04-24 12:29:55 UTC` Some tests failed, follow the links below. This fail is not in blocking policy yet

[Test history](https://nebius.testmo.net/automation/runs/view/148783) | [Ya make output](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14639073279/ya-x86-64-asan/ya_make_output.txt) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14639073279/ya-x86-64-asan/try_1/test_bloat/tree_map.html) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14639073279/ya-x86-64-asan/try_2/test_bloat/tree_map.html) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14639073279/ya-x86-64-asan/try_3/test_bloat/tree_map.html)
| TESTS | PASSED | ERRORS | FAILED | SKIPPED | MUTED<sup>[?](https://github.com/ydb-platform/ydb/tree/main/.github/config/muted_ya.txt "All mute rules are defined here")</sup> |
| ---: | ---: | ---: | ---: | ---: | ---: |
| [90 (only retried tests)](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14639073279/ya-x86-64-asan/try_3/ya-test.html) | [33](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14639073279/ya-x86-64-asan/try_3/ya-test.html#PASS) | 0 | [34](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14639073279/ya-x86-64-asan/try_3/ya-test.html#FAIL) | [4](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14639073279/ya-x86-64-asan/try_3/ya-test.html#SKIP) | [19](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14639073279/ya-x86-64-asan/try_3/ya-test.html#MUTE) |

:green_circle: `2025-04-24 12:30:03 UTC` Build successful.
:yellow_circle: `2025-04-24 12:30:34 UTC` ydbd size **3.9 GiB** changed* by **+254.5 KiB**, which is >= 100.0 KiB vs main: **Warning**
|[ydbd size dash](https://datalens.yandex/cu6hzmpaki700)|main: 0ddb5fd0f317eb1b835bdcf4d73e4ba05029d8db |merge: 85ea5f027b3d88da6fc95adbbeb98e1d29862c4f |diff | diff %|
|:--- | ---: | ---: | ---: | ---: |
|ydbd size|**4 135 474 216** Bytes |**4 135 734 864** Bytes|**+254.5 KiB**|**+0.006%**|
|ydbd stripped size|**1 431 777 912** Bytes|**1 431 866 936** Bytes|**+86.9 KiB**|**+0.006%**|

<sup>*please be aware that the difference is based on comparing your commit and the last completed build from the post-commit, check [comparation](https://github.com/ydb-platform/ydb/compare/0ddb5fd0f317eb1b835bdcf4d73e4ba05029d8db..85ea5f027b3d88da6fc95adbbeb98e1d29862c4f)</sup>
author_association: NONE
user: login: github-actions[bot]
created_at: 2025-04-24T11:18:17Z
body: <!-- status pr=17668, preset=relwithdebinfo, run=41371 -->
:white_circle: `2025-04-24 11:18:16 UTC` Pre-commit [check](https://github.com/ydb-platform/ydb/actions/runs/14639073279/job/41076957654) **linux-x86_64-relwithdebinfo** for 85ea5f027b3d88da6fc95adbbeb98e1d29862c4f has started.
:white_circle: `2025-04-24 11:18:31 UTC` Artifacts will be uploaded [here](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14639073279/ya-x86-64/index.html)
:white_circle: `2025-04-24 11:21:18 UTC` ya make is running...
:yellow_circle: `2025-04-24 12:28:39 UTC` Some tests failed, follow the links below. Going to retry failed tests...

<details>


[Test history](https://nebius.testmo.net/automation/runs/view/148731) | [Ya make output](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14639073279/ya-x86-64/ya_make_output.txt) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14639073279/ya-x86-64/try_1/test_bloat/tree_map.html)
| TESTS | PASSED | ERRORS | FAILED | SKIPPED | MUTED<sup>[?](https://github.com/ydb-platform/ydb/tree/main/.github/config/muted_ya.txt "All mute rules are defined here")</sup> |
| ---: | ---: | ---: | ---: | ---: | ---: |
| [22082](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14639073279/ya-x86-64/try_1/ya-test.html) | [20683](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14639073279/ya-x86-64/try_1/ya-test.html#PASS) | 0 | [9](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14639073279/ya-x86-64/try_1/ya-test.html#FAIL) | [1284](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14639073279/ya-x86-64/try_1/ya-test.html#SKIP) | [106](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14639073279/ya-x86-64/try_1/ya-test.html#MUTE) |

</details>

:white_circle: `2025-04-24 12:30:31 UTC` ya make is running... (failed tests rerun, try 2)
:green_circle: `2025-04-24 12:42:18 UTC` Tests successful.

[Test history](https://nebius.testmo.net/automation/runs/view/148791) | [Ya make output](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14639073279/ya-x86-64/ya_make_output.txt) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14639073279/ya-x86-64/try_1/test_bloat/tree_map.html) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14639073279/ya-x86-64/try_2/test_bloat/tree_map.html)
| TESTS | PASSED | ERRORS | FAILED | SKIPPED | MUTED<sup>[?](https://github.com/ydb-platform/ydb/tree/main/.github/config/muted_ya.txt "All mute rules are defined here")</sup> |
| ---: | ---: | ---: | ---: | ---: | ---: |
| [182 (only retried tests)](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14639073279/ya-x86-64/try_2/ya-test.html) | [88](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14639073279/ya-x86-64/try_2/ya-test.html#PASS) | 0 | 0 | 0 | [94](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14639073279/ya-x86-64/try_2/ya-test.html#MUTE) |

:green_circle: `2025-04-24 12:42:25 UTC` Build successful.
:yellow_circle: `2025-04-24 12:42:44 UTC` ydbd size **2.2 GiB** changed* by **+187.0 KiB**, which is >= 100.0 KiB vs main: **Warning**
|[ydbd size dash](https://datalens.yandex/cu6hzmpaki700)|main: 305b5cdccc9c2f43a8621aacdf120d1ded1b793c |merge: 85ea5f027b3d88da6fc95adbbeb98e1d29862c4f |diff | diff %|
|:--- | ---: | ---: | ---: | ---: |
|ydbd size|**2 354 063 736** Bytes |**2 354 255 272** Bytes|**+187.0 KiB**|**+0.008%**|
|ydbd stripped size|**494 146 784** Bytes|**494 178 240** Bytes|**+30.7 KiB**|**+0.006%**|

<sup>*please be aware that the difference is based on comparing your commit and the last completed build from the post-commit, check [comparation](https://github.com/ydb-platform/ydb/compare/305b5cdccc9c2f43a8621aacdf120d1ded1b793c..85ea5f027b3d88da6fc95adbbeb98e1d29862c4f)</sup>
author_association: NONE
user: login: github-actions[bot]
created_at: 2025-04-26T14:55:05Z
body: <!-- status pr=17668, preset=release-asan, run=41579 -->
:white_circle: `2025-04-26 14:55:05 UTC` Pre-commit [check](https://github.com/ydb-platform/ydb/actions/runs/14682318136/job/41206530081) **linux-x86_64-release-asan** for 634dc188b01c59adb2a17918da38648816ff8dd3 has started.
:white_circle: `2025-04-26 14:55:20 UTC` Artifacts will be uploaded [here](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14682318136/ya-x86-64-asan/index.html)
:white_circle: `2025-04-26 14:58:01 UTC` ya make is running...
:black_circle: `2025-04-26 15:46:14 UTC` Check cancelled
author_association: NONE
user: login: github-actions[bot]
created_at: 2025-04-26T14:55:08Z
body: <!-- status pr=17668, preset=relwithdebinfo, run=41579 -->
:white_circle: `2025-04-26 14:55:07 UTC` Pre-commit [check](https://github.com/ydb-platform/ydb/actions/runs/14682318136/job/41206530086) **linux-x86_64-relwithdebinfo** for 634dc188b01c59adb2a17918da38648816ff8dd3 has started.
:white_circle: `2025-04-26 14:55:22 UTC` Artifacts will be uploaded [here](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14682318136/ya-x86-64/index.html)
:white_circle: `2025-04-26 14:58:12 UTC` ya make is running...
:black_circle: `2025-04-26 15:46:09 UTC` Check cancelled
author_association: NONE
user: login: github-actions[bot]
created_at: 2025-04-26T15:48:07Z
body: <!-- status pr=17668, preset=release-asan, run=41582 -->
:white_circle: `2025-04-26 15:48:07 UTC` Pre-commit [check](https://github.com/ydb-platform/ydb/actions/runs/14682739413/job/41207440971) **linux-x86_64-release-asan** for c36ea2977a45f6a8c4b1cd1ce44b9c15ad5ed47e has started.
:white_circle: `2025-04-26 15:48:23 UTC` Artifacts will be uploaded [here](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14682739413/ya-x86-64-asan/index.html)
:white_circle: `2025-04-26 15:51:15 UTC` ya make is running...
:yellow_circle: `2025-04-26 17:13:18 UTC` Some tests failed, follow the links below. This fail is not in blocking policy yet Going to retry failed tests...

<details>


[Test history](https://nebius.testmo.net/automation/runs/view/150230) | [Ya make output](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14682739413/ya-x86-64-asan/ya_make_output.txt) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14682739413/ya-x86-64-asan/try_1/test_bloat/tree_map.html)
| TESTS | PASSED | ERRORS | FAILED | SKIPPED | MUTED<sup>[?](https://github.com/ydb-platform/ydb/tree/main/.github/config/muted_ya.txt "All mute rules are defined here")</sup> |
| ---: | ---: | ---: | ---: | ---: | ---: |
| [14347](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14682739413/ya-x86-64-asan/try_1/ya-test.html) | [14198](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14682739413/ya-x86-64-asan/try_1/ya-test.html#PASS) | 0 | [85](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14682739413/ya-x86-64-asan/try_1/ya-test.html#FAIL) | [40](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14682739413/ya-x86-64-asan/try_1/ya-test.html#SKIP) | [24](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14682739413/ya-x86-64-asan/try_1/ya-test.html#MUTE) |

</details>

:white_circle: `2025-04-26 17:14:33 UTC` ya make is running... (failed tests rerun, try 2)
:yellow_circle: `2025-04-26 17:42:32 UTC` Some tests failed, follow the links below. This fail is not in blocking policy yet Going to retry failed tests...

<details>


[Test history](https://nebius.testmo.net/automation/runs/view/150254) | [Ya make output](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14682739413/ya-x86-64-asan/ya_make_output.txt) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14682739413/ya-x86-64-asan/try_1/test_bloat/tree_map.html) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14682739413/ya-x86-64-asan/try_2/test_bloat/tree_map.html)
| TESTS | PASSED | ERRORS | FAILED | SKIPPED | MUTED<sup>[?](https://github.com/ydb-platform/ydb/tree/main/.github/config/muted_ya.txt "All mute rules are defined here")</sup> |
| ---: | ---: | ---: | ---: | ---: | ---: |
| [1189 (only retried tests)](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14682739413/ya-x86-64-asan/try_2/ya-test.html) | [1080](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14682739413/ya-x86-64-asan/try_2/ya-test.html#PASS) | 0 | [51](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14682739413/ya-x86-64-asan/try_2/ya-test.html#FAIL) | [33](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14682739413/ya-x86-64-asan/try_2/ya-test.html#SKIP) | [25](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14682739413/ya-x86-64-asan/try_2/ya-test.html#MUTE) |

</details>

:white_circle: `2025-04-26 17:42:50 UTC` ya make is running... (failed tests rerun, try 3)
:yellow_circle: `2025-04-26 18:13:38 UTC` Some tests failed, follow the links below. This fail is not in blocking policy yet

[Test history](https://nebius.testmo.net/automation/runs/view/150260) | [Ya make output](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14682739413/ya-x86-64-asan/ya_make_output.txt) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14682739413/ya-x86-64-asan/try_1/test_bloat/tree_map.html) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14682739413/ya-x86-64-asan/try_2/test_bloat/tree_map.html) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14682739413/ya-x86-64-asan/try_3/test_bloat/tree_map.html)
| TESTS | PASSED | ERRORS | FAILED | SKIPPED | MUTED<sup>[?](https://github.com/ydb-platform/ydb/tree/main/.github/config/muted_ya.txt "All mute rules are defined here")</sup> |
| ---: | ---: | ---: | ---: | ---: | ---: |
| [839 (only retried tests)](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14682739413/ya-x86-64-asan/try_3/ya-test.html) | [722](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14682739413/ya-x86-64-asan/try_3/ya-test.html#PASS) | 0 | [64](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14682739413/ya-x86-64-asan/try_3/ya-test.html#FAIL) | [30](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14682739413/ya-x86-64-asan/try_3/ya-test.html#SKIP) | [23](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14682739413/ya-x86-64-asan/try_3/ya-test.html#MUTE) |

:green_circle: `2025-04-26 18:13:49 UTC` Build successful.
:green_circle: `2025-04-26 18:14:18 UTC` ydbd size **3.8 GiB** changed* by **-936 Bytes**, which is <= 0 Bytes vs main: **OK**
|[ydbd size dash](https://datalens.yandex/cu6hzmpaki700)|main: 290386cb0f1392f0619a1452963743fcf194ced2 |merge: c36ea2977a45f6a8c4b1cd1ce44b9c15ad5ed47e |diff | diff %|
|:--- | ---: | ---: | ---: | ---: |
|ydbd size|**4 120 274 248** Bytes |**4 120 273 312** Bytes|**-936 Bytes**|**-0.000%**|
|ydbd stripped size|**1 428 517 272** Bytes|**1 428 517 208** Bytes|**-64 Bytes**|**-0.000%**|

<sup>*please be aware that the difference is based on comparing your commit and the last completed build from the post-commit, check [comparation](https://github.com/ydb-platform/ydb/compare/290386cb0f1392f0619a1452963743fcf194ced2..c36ea2977a45f6a8c4b1cd1ce44b9c15ad5ed47e)</sup>
author_association: NONE
user: login: github-actions[bot]
created_at: 2025-04-26T15:50:19Z
body: <!-- status pr=17668, preset=relwithdebinfo, run=41582 -->
:white_circle: `2025-04-26 15:50:19 UTC` Pre-commit [check](https://github.com/ydb-platform/ydb/actions/runs/14682739413/job/41207440973) **linux-x86_64-relwithdebinfo** for c36ea2977a45f6a8c4b1cd1ce44b9c15ad5ed47e has started.
:white_circle: `2025-04-26 15:50:34 UTC` Artifacts will be uploaded [here](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14682739413/ya-x86-64/index.html)
:white_circle: `2025-04-26 15:53:16 UTC` ya make is running...
:yellow_circle: `2025-04-26 16:57:42 UTC` Some tests failed, follow the links below. Going to retry failed tests...

<details>


[Test history](https://nebius.testmo.net/automation/runs/view/150231) | [Ya make output](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14682739413/ya-x86-64/ya_make_output.txt) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14682739413/ya-x86-64/try_1/test_bloat/tree_map.html)
| TESTS | PASSED | ERRORS | FAILED | SKIPPED | MUTED<sup>[?](https://github.com/ydb-platform/ydb/tree/main/.github/config/muted_ya.txt "All mute rules are defined here")</sup> |
| ---: | ---: | ---: | ---: | ---: | ---: |
| [22106](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14682739413/ya-x86-64/try_1/ya-test.html) | [20740](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14682739413/ya-x86-64/try_1/ya-test.html#PASS) | 0 | [5](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14682739413/ya-x86-64/try_1/ya-test.html#FAIL) | [1323](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14682739413/ya-x86-64/try_1/ya-test.html#SKIP) | [38](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14682739413/ya-x86-64/try_1/ya-test.html#MUTE) |

</details>

:white_circle: `2025-04-26 16:59:28 UTC` ya make is running... (failed tests rerun, try 2)
:green_circle: `2025-04-26 17:42:12 UTC` Tests successful.

[Test history](https://nebius.testmo.net/automation/runs/view/150241) | [Ya make output](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14682739413/ya-x86-64/ya_make_output.txt) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14682739413/ya-x86-64/try_1/test_bloat/tree_map.html) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14682739413/ya-x86-64/try_2/test_bloat/tree_map.html)
| TESTS | PASSED | ERRORS | FAILED | SKIPPED | MUTED<sup>[?](https://github.com/ydb-platform/ydb/tree/main/.github/config/muted_ya.txt "All mute rules are defined here")</sup> |
| ---: | ---: | ---: | ---: | ---: | ---: |
| [303 (only retried tests)](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14682739413/ya-x86-64/try_2/ya-test.html) | [255](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14682739413/ya-x86-64/try_2/ya-test.html#PASS) | 0 | 0 | [15](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14682739413/ya-x86-64/try_2/ya-test.html#SKIP) | [33](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14682739413/ya-x86-64/try_2/ya-test.html#MUTE) |

:green_circle: `2025-04-26 17:42:20 UTC` Build successful.
:green_circle: `2025-04-26 17:42:39 UTC` ydbd size **2.2 GiB** changed* by **-752 Bytes**, which is <= 0 Bytes vs main: **OK**
|[ydbd size dash](https://datalens.yandex/cu6hzmpaki700)|main: 290386cb0f1392f0619a1452963743fcf194ced2 |merge: c36ea2977a45f6a8c4b1cd1ce44b9c15ad5ed47e |diff | diff %|
|:--- | ---: | ---: | ---: | ---: |
|ydbd size|**2 342 188 048** Bytes |**2 342 187 296** Bytes|**-752 Bytes**|**-0.000%**|
|ydbd stripped size|**492 592 192** Bytes|**492 592 192** Bytes|**0 Bytes**|**0.000%**|

<sup>*please be aware that the difference is based on comparing your commit and the last completed build from the post-commit, check [comparation](https://github.com/ydb-platform/ydb/compare/290386cb0f1392f0619a1452963743fcf194ced2..c36ea2977a45f6a8c4b1cd1ce44b9c15ad5ed47e)</sup>
author_association: NONE
user: login: github-actions[bot]
created_at: 2025-05-06T15:24:34Z
body: <!-- status pr=17668, preset=release-asan, run=42313 -->
:white_circle: `2025-05-06 15:24:34 UTC` Pre-commit [check](https://github.com/ydb-platform/ydb/actions/runs/14863473975/job/41734240326) **linux-x86_64-release-asan** for 5a23f97bcb7e1e874d89871c0133ae65922e2040 has started.
:white_circle: `2025-05-06 15:25:25 UTC` Artifacts will be uploaded [here](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14863473975/ya-x86-64-asan/index.html)
:black_circle: `2025-05-06 15:28:19 UTC` Check cancelled
author_association: NONE
user: login: github-actions[bot]
created_at: 2025-05-06T15:34:02Z
body: <!-- status pr=17668, preset=release-asan, run=42316 -->
:white_circle: `2025-05-06 15:34:02 UTC` Pre-commit [check](https://github.com/ydb-platform/ydb/actions/runs/14863638457/job/41734802516) **linux-x86_64-release-asan** for 55e05cd374fd4d1b1ebf582685033ecc2a64fd00 has started.
:white_circle: `2025-05-06 15:34:13 UTC` Artifacts will be uploaded [here](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14863638457/ya-x86-64-asan/index.html)
:white_circle: `2025-05-06 15:36:55 UTC` ya make is running...
:black_circle: `2025-05-06 16:14:07 UTC` Check cancelled
author_association: NONE
user: login: github-actions[bot]
created_at: 2025-05-06T15:37:46Z
body: <!-- status pr=17668, preset=relwithdebinfo, run=42316 -->
:white_circle: `2025-05-06 15:37:46 UTC` Pre-commit [check](https://github.com/ydb-platform/ydb/actions/runs/14863638457/job/41734802520) **linux-x86_64-relwithdebinfo** for 55e05cd374fd4d1b1ebf582685033ecc2a64fd00 has started.
:white_circle: `2025-05-06 15:38:05 UTC` Artifacts will be uploaded [here](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14863638457/ya-x86-64/index.html)
:white_circle: `2025-05-06 15:41:34 UTC` ya make is running...
:black_circle: `2025-05-06 16:14:10 UTC` Check cancelled
author_association: NONE
user: login: github-actions[bot]
created_at: 2025-05-06T16:20:44Z
body: <!-- status pr=17668, preset=release-asan, run=42325 -->
:white_circle: `2025-05-06 16:20:44 UTC` Pre-commit [check](https://github.com/ydb-platform/ydb/actions/runs/14864545595/job/41737982617) **linux-x86_64-release-asan** for 7773a314fd19bf176a601b44a7784c1ff71bece0 has started.
:white_circle: `2025-05-06 16:20:55 UTC` Artifacts will be uploaded [here](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14864545595/ya-x86-64-asan/index.html)
:white_circle: `2025-05-06 16:23:39 UTC` ya make is running...
:yellow_circle: `2025-05-06 18:09:28 UTC` Some tests failed, follow the links below. This fail is not in blocking policy yet Going to retry failed tests...

<details>


[Test history](https://nebius.testmo.net/automation/runs/view/155714) | [Ya make output](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14864545595/ya-x86-64-asan/ya_make_output.txt) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14864545595/ya-x86-64-asan/try_1/test_bloat/tree_map.html)
| TESTS | PASSED | ERRORS | FAILED | SKIPPED | MUTED<sup>[?](https://github.com/ydb-platform/ydb/tree/main/.github/config/muted_ya.txt "All mute rules are defined here")</sup> |
| ---: | ---: | ---: | ---: | ---: | ---: |
| [14520](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14864545595/ya-x86-64-asan/try_1/ya-test.html) | [14367](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14864545595/ya-x86-64-asan/try_1/ya-test.html#PASS) | 0 | [84](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14864545595/ya-x86-64-asan/try_1/ya-test.html#FAIL) | [43](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14864545595/ya-x86-64-asan/try_1/ya-test.html#SKIP) | [26](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14864545595/ya-x86-64-asan/try_1/ya-test.html#MUTE) |

</details>

:white_circle: `2025-05-06 18:10:43 UTC` ya make is running... (failed tests rerun, try 2)
:yellow_circle: `2025-05-06 18:44:21 UTC` Some tests failed, follow the links below. This fail is not in blocking policy yet Going to retry failed tests...

<details>


[Test history](https://nebius.testmo.net/automation/runs/view/155823) | [Ya make output](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14864545595/ya-x86-64-asan/ya_make_output.txt) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14864545595/ya-x86-64-asan/try_1/test_bloat/tree_map.html) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14864545595/ya-x86-64-asan/try_2/test_bloat/tree_map.html)
| TESTS | PASSED | ERRORS | FAILED | SKIPPED | MUTED<sup>[?](https://github.com/ydb-platform/ydb/tree/main/.github/config/muted_ya.txt "All mute rules are defined here")</sup> |
| ---: | ---: | ---: | ---: | ---: | ---: |
| [1280 (only retried tests)](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14864545595/ya-x86-64-asan/try_2/ya-test.html) | [1182](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14864545595/ya-x86-64-asan/try_2/ya-test.html#PASS) | 0 | [48](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14864545595/ya-x86-64-asan/try_2/ya-test.html#FAIL) | [26](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14864545595/ya-x86-64-asan/try_2/ya-test.html#SKIP) | [24](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14864545595/ya-x86-64-asan/try_2/ya-test.html#MUTE) |

</details>

:white_circle: `2025-05-06 18:44:37 UTC` ya make is running... (failed tests rerun, try 3)
:yellow_circle: `2025-05-06 19:17:21 UTC` Some tests failed, follow the links below. This fail is not in blocking policy yet

[Test history](https://nebius.testmo.net/automation/runs/view/155849) | [Ya make output](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14864545595/ya-x86-64-asan/ya_make_output.txt) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14864545595/ya-x86-64-asan/try_1/test_bloat/tree_map.html) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14864545595/ya-x86-64-asan/try_2/test_bloat/tree_map.html) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14864545595/ya-x86-64-asan/try_3/test_bloat/tree_map.html)
| TESTS | PASSED | ERRORS | FAILED | SKIPPED | MUTED<sup>[?](https://github.com/ydb-platform/ydb/tree/main/.github/config/muted_ya.txt "All mute rules are defined here")</sup> |
| ---: | ---: | ---: | ---: | ---: | ---: |
| [1220 (only retried tests)](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14864545595/ya-x86-64-asan/try_3/ya-test.html) | [1120](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14864545595/ya-x86-64-asan/try_3/ya-test.html#PASS) | 0 | [45](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14864545595/ya-x86-64-asan/try_3/ya-test.html#FAIL) | [30](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14864545595/ya-x86-64-asan/try_3/ya-test.html#SKIP) | [25](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14864545595/ya-x86-64-asan/try_3/ya-test.html#MUTE) |

:green_circle: `2025-05-06 19:17:35 UTC` Build successful.
:green_circle: `2025-05-06 19:18:08 UTC` ydbd size **3.8 GiB** changed* by **-1.2 MiB**, which is <= 0 Bytes vs main: **OK**
|[ydbd size dash](https://datalens.yandex/cu6hzmpaki700)|main: 97ed61ad488b27ad5cf1c5cf66172a8c8adfc714 |merge: 7773a314fd19bf176a601b44a7784c1ff71bece0 |diff | diff %|
|:--- | ---: | ---: | ---: | ---: |
|ydbd size|**4 127 606 216** Bytes |**4 126 295 896** Bytes|**-1.2 MiB**|**-0.032%**|
|ydbd stripped size|**1 433 427 832** Bytes|**1 432 957 976** Bytes|**-458.8 KiB**|**-0.033%**|

<sup>*please be aware that the difference is based on comparing your commit and the last completed build from the post-commit, check [comparation](https://github.com/ydb-platform/ydb/compare/97ed61ad488b27ad5cf1c5cf66172a8c8adfc714..7773a314fd19bf176a601b44a7784c1ff71bece0)</sup>
author_association: NONE
user: login: github-actions[bot]
created_at: 2025-05-06T16:27:13Z
body: <!-- status pr=17668, preset=relwithdebinfo, run=42325 -->
:white_circle: `2025-05-06 16:27:13 UTC` Pre-commit [check](https://github.com/ydb-platform/ydb/actions/runs/14864545595/job/41737982609) **linux-x86_64-relwithdebinfo** for 7773a314fd19bf176a601b44a7784c1ff71bece0 has started.
:white_circle: `2025-05-06 16:27:41 UTC` Artifacts will be uploaded [here](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14864545595/ya-x86-64/index.html)
:white_circle: `2025-05-06 16:31:12 UTC` ya make is running...
:yellow_circle: `2025-05-06 17:51:36 UTC` Some tests failed, follow the links below. Going to retry failed tests...

<details>


[Test history](https://nebius.testmo.net/automation/runs/view/155723) | [Ya make output](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14864545595/ya-x86-64/ya_make_output.txt) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14864545595/ya-x86-64/try_1/test_bloat/tree_map.html)
| TESTS | PASSED | ERRORS | FAILED | SKIPPED | MUTED<sup>[?](https://github.com/ydb-platform/ydb/tree/main/.github/config/muted_ya.txt "All mute rules are defined here")</sup> |
| ---: | ---: | ---: | ---: | ---: | ---: |
| [22330](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14864545595/ya-x86-64/try_1/ya-test.html) | [20965](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14864545595/ya-x86-64/try_1/ya-test.html#PASS) | 0 | [5](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14864545595/ya-x86-64/try_1/ya-test.html#FAIL) | [1324](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14864545595/ya-x86-64/try_1/ya-test.html#SKIP) | [36](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14864545595/ya-x86-64/try_1/ya-test.html#MUTE) |

</details>

:white_circle: `2025-05-06 17:53:23 UTC` ya make is running... (failed tests rerun, try 2)
:green_circle: `2025-05-06 18:15:58 UTC` Tests successful.

[Test history](https://nebius.testmo.net/automation/runs/view/155809) | [Ya make output](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14864545595/ya-x86-64/ya_make_output.txt) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14864545595/ya-x86-64/try_1/test_bloat/tree_map.html) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14864545595/ya-x86-64/try_2/test_bloat/tree_map.html)
| TESTS | PASSED | ERRORS | FAILED | SKIPPED | MUTED<sup>[?](https://github.com/ydb-platform/ydb/tree/main/.github/config/muted_ya.txt "All mute rules are defined here")</sup> |
| ---: | ---: | ---: | ---: | ---: | ---: |
| [141 (only retried tests)](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14864545595/ya-x86-64/try_2/ya-test.html) | [99](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14864545595/ya-x86-64/try_2/ya-test.html#PASS) | 0 | 0 | [10](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14864545595/ya-x86-64/try_2/ya-test.html#SKIP) | [32](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14864545595/ya-x86-64/try_2/ya-test.html#MUTE) |

:green_circle: `2025-05-06 18:16:05 UTC` Build successful.
:green_circle: `2025-05-06 18:16:27 UTC` ydbd size **2.2 GiB** changed* by **-510.5 KiB**, which is <= 0 Bytes vs main: **OK**
|[ydbd size dash](https://datalens.yandex/cu6hzmpaki700)|main: 97ed61ad488b27ad5cf1c5cf66172a8c8adfc714 |merge: 7773a314fd19bf176a601b44a7784c1ff71bece0 |diff | diff %|
|:--- | ---: | ---: | ---: | ---: |
|ydbd size|**2 344 087 568** Bytes |**2 343 564 848** Bytes|**-510.5 KiB**|**-0.022%**|
|ydbd stripped size|**493 122 176** Bytes|**493 013 888** Bytes|**-105.8 KiB**|**-0.022%**|

<sup>*please be aware that the difference is based on comparing your commit and the last completed build from the post-commit, check [comparation](https://github.com/ydb-platform/ydb/compare/97ed61ad488b27ad5cf1c5cf66172a8c8adfc714..7773a314fd19bf176a601b44a7784c1ff71bece0)</sup>
author_association: NONE