Repository: ydb-platform/ydb
Pull request #17618: Limit SelfHeal reassign requests in-flight
Author: login: serbel324
Labels: name: improvement
name: changelog/f25-3
description: PR участвует в списке изменений
Created: 2025-04-23T13:28:20Z | Merged: 2025-04-25T13:57:18Z

### Changelog entry <!-- a user-readable short description of the changes that goes to CHANGELOG.md and Release Notes -->

Don't allow SelfHeal actor to create more than 1 active ReassignerActor. This change will prevent SelfHeal from overloading BSC with ReassignItem requests thus causing DoS.

### Changelog category <!-- remove all except one -->

* Improvement



Diff:
diff --git a/ydb/core/blobstorage/ut_blobstorage/self_heal.cpp b/ydb/core/blobstorage/ut_blobstorage/self_heal.cpp
new file mode 100644
index 000000000000..ffad5c1b45f9
--- /dev/null
+++ b/ydb/core/blobstorage/ut_blobstorage/self_heal.cpp
@@ -0,0 +1,67 @@
+#include <ydb/core/blobstorage/ut_blobstorage/lib/env.h>
+
+Y_UNIT_TEST_SUITE(SelfHeal) {
+    void TestReassignThrottling() {
+        const TBlobStorageGroupType erasure = TBlobStorageGroupType::ErasureMirror3dc;
+        const ui32 groupsCount = 32;
+
+        TEnvironmentSetup env({
+            .NodeCount = erasure.BlobSubgroupSize(),
+            .Erasure = erasure,
+        });
+
+        // create 2 pdisks per node to allow self-healings and 
+        // allocate groups
+        env.CreateBoxAndPool(2, groupsCount);
+        env.Sim(TDuration::Minutes(1));
+
+        auto base = env.FetchBaseConfig();
+        UNIT_ASSERT_VALUES_EQUAL(base.GroupSize(), groupsCount);
+
+        ui32 maxReassignsInFlight = 0;
+
+        std::set<TActorId> reassignersInFlight;
+
+        auto catchReassigns = [&](ui32 /*nodeId*/, std::unique_ptr<IEventHandle>& ev) { 
+            if (ev->GetTypeRewrite() == TEvBlobStorage::TEvControllerConfigRequest::EventType) {
+                const auto& request = ev->Get<TEvBlobStorage::TEvControllerConfigRequest>()->Record.GetRequest();
+                for (const auto& command : request.GetCommand()) {
+                    if (command.GetCommandCase() == NKikimrBlobStorage::TConfigRequest::TCommand::kReassignGroupDisk) {
+                        UNIT_ASSERT(!reassignersInFlight.contains(ev->Sender));
+                        reassignersInFlight.insert(ev->Sender);
+                        maxReassignsInFlight = std::max(maxReassignsInFlight, (ui32)reassignersInFlight.size());
+                    }
+                }
+            } else if (ev->GetTypeRewrite() == TEvBlobStorage::TEvControllerConfigResponse::EventType) {
+                auto it = reassignersInFlight.find(ev->Recipient);
+                if (it != reassignersInFlight.end()) {
+                    reassignersInFlight.erase(it);
+                }
+            }
+            return true;
+        };
+
+        env.Runtime->FilterFunction = catchReassigns;
+
+        auto pdisk = base.GetPDisk(0);
+        // set FAULTY status on the chosen PDisk
+        {
+            NKikimrBlobStorage::TConfigRequest request;
+            auto* cmd = request.AddCommand()->MutableUpdateDriveStatus();
+            cmd->MutableHostKey()->SetNodeId(pdisk.GetNodeId());
+            cmd->SetPDiskId(pdisk.GetPDiskId());
+            cmd->SetStatus(NKikimrBlobStorage::FAULTY);
+            auto res = env.Invoke(request);
+            UNIT_ASSERT_C(res.GetSuccess(), res.GetErrorDescription());
+            UNIT_ASSERT_C(res.GetStatus(0).GetSuccess(), res.GetStatus(0).GetErrorDescription());
+        }
+
+        env.Sim(TDuration::Minutes(15));
+
+        UNIT_ASSERT_C(maxReassignsInFlight == 1, "maxReassignsInFlight# " << maxReassignsInFlight);
+    }
+
+    Y_UNIT_TEST(ReassignThrottling) {
+        TestReassignThrottling();
+    }
+}
diff --git a/ydb/core/blobstorage/ut_blobstorage/ya.make b/ydb/core/blobstorage/ut_blobstorage/ya.make
index 8ff918025228..7451f3c12962 100644
--- a/ydb/core/blobstorage/ut_blobstorage/ya.make
+++ b/ydb/core/blobstorage/ut_blobstorage/ya.make
@@ -41,6 +41,7 @@ SRCS(
     recovery.cpp
     sanitize_groups.cpp
     scrub_fast.cpp
+    self_heal.cpp
     shred.cpp
     snapshots.cpp
     space_check.cpp
diff --git a/ydb/core/mind/bscontroller/self_heal.cpp b/ydb/core/mind/bscontroller/self_heal.cpp
index de5282bce921..e59d882c0a2e 100644
--- a/ydb/core/mind/bscontroller/self_heal.cpp
+++ b/ydb/core/mind/bscontroller/self_heal.cpp
@@ -253,13 +253,19 @@ namespace NKikimr::NBsController {
         struct TWithFaultyDisks {};
         struct TWithInvalidLayout {};
 
+        enum class EReassignStatus : ui8 {
+            NotNeeded = 0,
+            Enqueued,
+            Active,
+        };
+
         struct TGroupRecord
             : TIntrusiveListItem<TGroupRecord, TWithFaultyDisks>
             , TIntrusiveListItem<TGroupRecord, TWithInvalidLayout>
         {
             const TGroupId GroupId;
             TEvControllerUpdateSelfHealInfo::TGroupContent Content;
-            TActorId ReassignerActorId; // reassigner in flight
+            EReassignStatus ReassignStatus = EReassignStatus::NotNeeded;
             TDuration RetryTimeout = MinRetryTimeout;
             TMonotonic NextRetryTimestamp = TMonotonic::Zero();
             std::shared_ptr<TBlobStorageGroupInfo::TTopology> Topology;
@@ -278,7 +284,8 @@ namespace NKikimr::NBsController {
         THashMap<TGroupId, TGroupRecord> Groups;
         TIntrusiveList<TGroupRecord, TWithFaultyDisks> GroupsWithFaultyDisks;
         TIntrusiveList<TGroupRecord, TWithInvalidLayout> GroupsWithInvalidLayout;
-        std::shared_ptr<std::atomic_uint64_t> UnreassignableGroups;
+        std::unordered_set<TGroupId> UnreassignableGroups;
+        std::shared_ptr<std::atomic_uint64_t> UnreassignableGroupsCount;
         bool GroupLayoutSanitizerEnabled;
         bool AllowMultipleRealmsOccupation;
         bool DonorMode;
@@ -294,13 +301,17 @@ namespace NKikimr::NBsController {
         static constexpr uint32_t GroupLayoutSanitizerOperationLogSize = 128;
         TOperationLog<GroupLayoutSanitizerOperationLogSize> GroupLayoutSanitizerOperationLog;
 
+        std::deque<TGroupId> SelfHealReassignQueue;
+        std::deque<TGroupId> GroupLayoutSanitizerReassignQueue;
+        std::optional<TActorId> ActiveReassignerActorId = std::nullopt;
+
     public:
         TSelfHealActor(ui64 tabletId, std::shared_ptr<std::atomic_uint64_t> unreassignableGroups, THostRecordMap hostRecords,
                 bool groupLayoutSanitizerEnabled, bool allowMultipleRealmsOccupation, bool donorMode,
                 std::shared_ptr<TControlWrapper> enableSelfHealWithDegraded,
                 std::shared_ptr<std::atomic_uint64_t> groupsWithInvalidLayoutCounter)
             : TabletId(tabletId)
-            , UnreassignableGroups(std::move(unreassignableGroups))
+            , UnreassignableGroupsCount(std::move(unreassignableGroups))
             , GroupLayoutSanitizerEnabled(groupLayoutSanitizerEnabled)
             , AllowMultipleRealmsOccupation(allowMultipleRealmsOccupation)
             , DonorMode(donorMode)
@@ -385,8 +396,11 @@ namespace NKikimr::NBsController {
                     TGroupRecord& group = it->second;
 
                     // kill reassigner, if it is working
-                    if (group.ReassignerActorId) {
-                        Send(group.ReassignerActorId, new TEvents::TEvPoison);
+                    if (group.ReassignStatus == EReassignStatus::Active) {
+                        Y_DEBUG_ABORT_UNLESS(ActiveReassignerActorId);
+                        if (ActiveReassignerActorId) {
+                            Send(*ActiveReassignerActorId, new TEvents::TEvPoison);
+                        }
                     }
 
                     // remove the group
@@ -422,49 +436,16 @@ namespace NKikimr::NBsController {
         void CheckGroups() {
             const TMonotonic now = TActivationContext::Monotonic();
 
-            ui64 counter = 0;
-
             for (TGroupRecord& group : GroupsWithFaultyDisks) {
-                if (group.ReassignerActorId || now < group.NextRetryTimestamp) {
-                    continue; // we are already running reassigner for this group
+                if (group.ReassignStatus != EReassignStatus::NotNeeded || now < group.NextRetryTimestamp) {
+                    continue; // reassign is already enqueued
                 }
 
                 if (group.UpdateConfigTxSeqNo < group.ResponseConfigTxSeqNo) {
                     continue; // response from bsc was received before selfheal info update
                 }
-
-                // check if it is possible to move anything out
-                bool isSelfHealReasonDecommit;
-                bool ignoreDegradedGroupsChecks;
-                if (const auto v = FindVDiskToReplace(group.Content, now, group.Topology.get(), &isSelfHealReasonDecommit,
-                        &ignoreDegradedGroupsChecks)) {
-                    group.ReassignerActorId = Register(new TReassignerActor(ControllerId, group.GroupId, group.Content,
-                        *v, group.Topology, isSelfHealReasonDecommit, ignoreDegradedGroupsChecks, DonorMode));
-                } else {
-                    ++counter; // this group can't be reassigned right now
-
-                    auto log = [&]() {
-                        TStringStream ss;
-                        ss << "[";
-                        bool first = true;
-                        for (const auto& [vdiskId, vdisk] : group.Content.VDisks) {
-                            if (!std::exchange(first, false)) {
-                                ss << ",";
-                            }
-                            ss << "{";
-                            ss << vdiskId;
-                            ss << (IsReady(vdisk, now) ? " Ready" : " NotReady");
-                            ss << (vdisk.Faulty ? " Faulty" : "");
-                            ss << (vdisk.Bad ? " IsBad" : "");
-                            ss << (vdisk.Decommitted ? " Decommitted" : "");
-                            ss << "}";
-                        }
-                        ss << "]";
-                        return ss.Str();
-                    };
-        
-                    STLOG(PRI_INFO, BS_SELFHEAL, BSSH11, "group can't be reassigned right now " << log(), (GroupId, group.GroupId));
-                }
+            
+                EnqueueReassign(group, EGroupRepairOperation::SelfHeal);
             }
 
             if (GroupLayoutSanitizerEnabled) {
@@ -488,20 +469,19 @@ namespace NKikimr::NBsController {
                     }
 
                     Y_ABORT_UNLESS(!group.LayoutValid);
-                    if (group.ReassignerActorId || now < group.NextRetryTimestamp) {
+                    if (group.ReassignStatus != EReassignStatus::NotNeeded || now < group.NextRetryTimestamp) {
                         // nothing to do
                     } else {
                         ADD_RECORD_WITH_TIMESTAMP_TO_OPERATION_LOG(GroupLayoutSanitizerOperationLog,
                                 "Start sanitizing GroupId# " << group.GroupId << " GroupGeneration# " << group.Content.Generation);
-                        group.ReassignerActorId = Register(new TReassignerActor(ControllerId, group.GroupId, group.Content,
-                            std::nullopt, group.Topology, false /*isSelfHealReasonDecommit*/,
-                            false /*ignoreDegradedGroupsChecks*/, DonorMode));
+                        EnqueueReassign(group, EGroupRepairOperation::GroupLayoutSanitizer);
                     }
                 }
             }
 
+            ProcessReassignQueues();
             GroupsWithInvalidLayoutCounter->store(GroupsWithInvalidLayout.Size());
-            UnreassignableGroups->store(counter);
+            UnreassignableGroupsCount->store(UnreassignableGroups.size());
         }
 
         void UpdateGroupLayoutInformation(TGroupRecord& group) {
@@ -602,9 +582,13 @@ namespace NKikimr::NBsController {
         }
 
         void Handle(TEvReassignerDone::TPtr& ev) {
-            if (const auto it = Groups.find(ev->Get()->GroupId); it != Groups.end() && it->second.ReassignerActorId == ev->Sender) {
+            Y_ABORT_UNLESS(ActiveReassignerActorId);
+            TActorId reassigner = *std::exchange(ActiveReassignerActorId, std::nullopt);
+            Y_ABORT_UNLESS(reassigner == ev->Sender);
+
+            if (const auto it = Groups.find(ev->Get()->GroupId); it != Groups.end()) {
                 auto& group = it->second;
-                group.ReassignerActorId = {};
+                group.ReassignStatus = EReassignStatus::NotNeeded;
 
                 const TMonotonic now = TActivationContext::Monotonic();
                 if (ev->Get()->Success) {
@@ -623,9 +607,9 @@ namespace NKikimr::NBsController {
                                 "Sanitizing failed GroupId# " << group.GroupId << " ErrorReason# " << ev->Get()->ErrorReason);
                     }
                 }
-
                 CheckGroups();
             }
+            ProcessReassignQueues();
         }
 
         using TVDiskInfo = TEvControllerUpdateSelfHealInfo::TGroupContent::TVDiskInfo;
@@ -654,6 +638,101 @@ namespace NKikimr::NBsController {
             Send(ev->Sender, new NMon::TEvRemoteHttpInfoRes(str.Str()));
         }
 
+        void ProcessReassignQueues() {
+            while (!ActiveReassignerActorId && !SelfHealReassignQueue.empty()) {
+                TGroupId groupId = SelfHealReassignQueue.front();
+                SelfHealReassignQueue.pop_front();
+                CreateReassignerActorIfNeededForSelfHeal(groupId);
+            }
+
+            while (!ActiveReassignerActorId && !GroupLayoutSanitizerReassignQueue.empty()) {
+                TGroupId groupId = GroupLayoutSanitizerReassignQueue.front();
+                GroupLayoutSanitizerReassignQueue.pop_front();
+                auto it = Groups.find(groupId);
+                if (it != Groups.end()) {
+                    TGroupRecord& group = it->second;
+                    CreateReassignerActor(group, std::nullopt, false, false);
+                }
+            }
+        }
+
+        bool CreateReassignerActorIfNeededForSelfHeal(TGroupId groupId) {
+            auto it = Groups.find(groupId);
+            if (it == Groups.end()) {
+                // group is deleted
+                return false;
+            }
+
+            TGroupRecord& group = it->second;
+            if (group.ReassignStatus == EReassignStatus::NotNeeded) {
+                // Group is already fully healed
+                return false;
+            }
+
+            // check if it is possible to move anything out
+            bool isSelfHealReasonDecommit;
+            bool ignoreDegradedGroupsChecks;
+            if (const std::optional<TVDiskID> vdiskId = FindVDiskToReplace(group.Content, TActivationContext::Monotonic(),
+                    group.Topology.get(), &isSelfHealReasonDecommit, &ignoreDegradedGroupsChecks)) {
+                if (auto it = UnreassignableGroups.find(groupId); it != UnreassignableGroups.end()) {
+                    UnreassignableGroups.erase(it);
+                }
+                CreateReassignerActor(group, vdiskId, isSelfHealReasonDecommit, ignoreDegradedGroupsChecks);
+                return true;
+            } else {
+                // unable to reassign VDisk
+                UnreassignableGroups.insert(groupId);
+                group.ReassignStatus = EReassignStatus::NotNeeded;
+
+                TMonotonic now = TActivationContext::Monotonic();
+                auto log = [&]() {
+                    TStringStream ss;
+                    ss << "[";
+                    bool first = true;
+                    for (const auto& [vdiskId, vdisk] : group.Content.VDisks) {
+                        if (!std::exchange(first, false)) {
+                            ss << ",";
+                        }
+                        ss << "{";
+                        ss << vdiskId;
+                        ss << (IsReady(vdisk, now) ? " Ready" : " NotReady");
+                        ss << (vdisk.Faulty ? " Faulty" : "");
+                        ss << (vdisk.Bad ? " IsBad" : "");
+                        ss << (vdisk.Decommitted ? " Decommitted" : "");
+                        ss << "}";
+                    }
+                    ss << "]";
+                    return ss.Str();
+                };
+    
+                STLOG(PRI_INFO, BS_SELFHEAL, BSSH11, "group can't be reassigned right now " << log(), (GroupId, groupId));
+            }
+            return false;
+        }
+
+
+        void CreateReassignerActor(TGroupRecord& group, std::optional<TVDiskID> vdiskId, bool isSelfHealReasonDecommit,
+                bool ignoreDegradedGroupsChecks) {
+            group.ReassignStatus = EReassignStatus::Active;
+            Y_ABORT_UNLESS(!ActiveReassignerActorId);
+            ActiveReassignerActorId = Register(new TReassignerActor(ControllerId, group.GroupId, group.Content,
+                    vdiskId, group.Topology, isSelfHealReasonDecommit, ignoreDegradedGroupsChecks, DonorMode));
+        }
+
+        void EnqueueReassign(TGroupRecord& group, EGroupRepairOperation operation) {
+            group.ReassignStatus = EReassignStatus::Enqueued;
+            switch (operation) {
+            case EGroupRepairOperation::SelfHeal:
+                SelfHealReassignQueue.push_back(group.GroupId);
+                break;
+            case EGroupRepairOperation::GroupLayoutSanitizer:
+                GroupLayoutSanitizerReassignQueue.push_back(group.GroupId);
+                break;
+            default:
+                Y_ABORT("Unknown operation");
+            }
+        }
+
         void RenderMonPage(IOutputStream& out, bool selfHealEnabled) {
             HTML(out) {
                 TAG(TH2) {


Reviews:
user: login: alexvru
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-04-25T06:40:11Z
user: login: alexvru
state: CHANGES_REQUESTED
author_association: COLLABORATOR
submitted_at: 2025-04-25T06:40:44Z
user: login: alexvru
state: APPROVED
author_association: COLLABORATOR
submitted_at: 2025-04-25T13:29:41Z

Review comments:
diff_hunk: @@ -602,9 +622,12 @@ namespace NKikimr::NBsController {
         }
 
         void Handle(TEvReassignerDone::TPtr& ev) {
-            if (const auto it = Groups.find(ev->Get()->GroupId); it != Groups.end() && it->second.ReassignerActorId == ev->Sender) {
+            ActiveReassignerActorId = std::nullopt;
path: ydb/core/mind/bscontroller/self_heal.cpp
user: login: alexvru
body: I'd check that ev->Sender is the same as this.
created_at: 2025-04-25T06:40:11Z
author_association: COLLABORATOR
diff_hunk: @@ -654,6 +679,54 @@ namespace NKikimr::NBsController {
             Send(ev->Sender, new NMon::TEvRemoteHttpInfoRes(str.Str()));
         }
 
+        void ProcessReassignQueues() {
+            while (!ActiveReassignerActorId && !SelfHealReassignQueue.empty()) {
+                TGroupId groupId = SelfHealReassignQueue.front();
+                SelfHealReassignQueue.pop_front();
+                CreateReassignerActorIfNeeded(groupId);
+            }
+
+            while (!ActiveReassignerActorId && !GroupLayoutSanitizerReassignQueue.empty()) {
+                TGroupId groupId = GroupLayoutSanitizerReassignQueue.front();
+                GroupLayoutSanitizerReassignQueue.pop_front();
+                auto it = Groups.find(groupId);
+                if (it != Groups.end()) {
+                    TGroupRecord& group = it->second;
+                    CreateReassignerActor(group, std::nullopt, false, false);
+                }
+            }
+        }
+
+        bool CreateReassignerActorIfNeeded(TGroupId groupId) {
+            auto it = Groups.find(groupId);
+            if (it == Groups.end()) {
+                // group is deleted
+                return false;
+            }
+
+            TGroupRecord& group = it->second;
+            if (group.ReassignStatus == EReassignStatus::NotNeeded) {
+                return false;
+            }
+
+            bool isSelfHealReasonDecommit;
+            bool ignoreDegradedGroupsChecks;
+            if (const std::optional<TVDiskID> vdiskId = FindVDiskToReplace(group.Content, TActivationContext::Monotonic(),
path: ydb/core/mind/bscontroller/self_heal.cpp
user: login: alexvru
body: I see some copypaste :)
created_at: 2025-04-25T06:40:29Z
author_association: COLLABORATOR

PR comments:
user: login: github-actions[bot]
created_at: 2025-04-23T13:31:11Z
body: <!-- status pr=17618, preset=release-asan, run=41276 -->
:white_circle: `2025-04-23 13:31:10 UTC` Pre-commit [check](https://github.com/ydb-platform/ydb/actions/runs/14619394982/job/41015205288) **linux-x86_64-release-asan** for 6c46a8383048265f897dc37b3b2d1ed980dd8871 has started.
:white_circle: `2025-04-23 13:31:36 UTC` Artifacts will be uploaded [here](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14619394982/ya-x86-64-asan/index.html)
:white_circle: `2025-04-23 13:35:08 UTC` ya make is running...
:black_circle: `2025-04-23 14:06:50 UTC` Check cancelled
author_association: NONE
user: login: github-actions[bot]
created_at: 2025-04-23T13:35:55Z
body: <!-- status pr=17618, validate PR description status -->
:green_circle: `2025-04-23 13:41:53 UTC` The validation of the Pull Request description is successful.
author_association: NONE
user: login: github-actions[bot]
created_at: 2025-04-23T13:39:27Z
body: <!-- status pr=17618, preset=relwithdebinfo, run=41276 -->
:white_circle: `2025-04-23 13:39:27 UTC` Pre-commit [check](https://github.com/ydb-platform/ydb/actions/runs/14619394982/job/41015205244) **linux-x86_64-relwithdebinfo** for 6c46a8383048265f897dc37b3b2d1ed980dd8871 has started.
:white_circle: `2025-04-23 13:39:30 UTC` Artifacts will be uploaded [here](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14619394982/ya-x86-64/index.html)
:white_circle: `2025-04-23 13:42:18 UTC` ya make is running...
:black_circle: `2025-04-23 14:06:49 UTC` Check cancelled
author_association: NONE
user: login: github-actions[bot]
created_at: 2025-04-23T14:08:45Z
body: <!-- status pr=17618, preset=relwithdebinfo, run=41282 -->
:white_circle: `2025-04-23 14:08:44 UTC` Pre-commit [check](https://github.com/ydb-platform/ydb/actions/runs/14620231530/job/41018154844) **linux-x86_64-relwithdebinfo** for 13cbede536314422cd163d54b5aca67e462be7e1 has started.
:white_circle: `2025-04-23 14:08:57 UTC` Artifacts will be uploaded [here](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620231530/ya-x86-64/index.html)
:white_circle: `2025-04-23 14:11:39 UTC` ya make is running...
:black_circle: `2025-04-23 14:39:29 UTC` Check cancelled
author_association: NONE
user: login: github-actions[bot]
created_at: 2025-04-23T14:10:46Z
body: <!-- status pr=17618, preset=release-asan, run=41282 -->
:white_circle: `2025-04-23 14:10:45 UTC` Pre-commit [check](https://github.com/ydb-platform/ydb/actions/runs/14620231530/job/41018154822) **linux-x86_64-release-asan** for 13cbede536314422cd163d54b5aca67e462be7e1 has started.
:white_circle: `2025-04-23 14:11:01 UTC` Artifacts will be uploaded [here](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620231530/ya-x86-64-asan/index.html)
:white_circle: `2025-04-23 14:13:57 UTC` ya make is running...
:black_circle: `2025-04-23 14:39:30 UTC` Check cancelled
author_association: NONE
user: login: github-actions[bot]
created_at: 2025-04-23T14:40:09Z
body: <!-- status pr=17618, preset=relwithdebinfo, run=41294 -->
:white_circle: `2025-04-23 14:40:09 UTC` Pre-commit [check](https://github.com/ydb-platform/ydb/actions/runs/14620967706/job/41020668584) **linux-x86_64-relwithdebinfo** for 3e35e429f6d89b681cb6a7243e0aa5ea197307a3 has started.
:black_circle: `2025-04-23 14:40:31 UTC` Check cancelled
author_association: NONE
user: login: github-actions[bot]
created_at: 2025-04-23T14:42:22Z
body: <!-- status pr=17618, preset=release-asan, run=41295 -->
:white_circle: `2025-04-23 14:42:21 UTC` Pre-commit [check](https://github.com/ydb-platform/ydb/actions/runs/14620993832/job/41020749412) **linux-x86_64-release-asan** for 78fce3c167e6d8713be5cfd0ff2d006cc1cf010b has started.
:white_circle: `2025-04-23 14:42:37 UTC` Artifacts will be uploaded [here](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/ya-x86-64-asan/index.html)
:white_circle: `2025-04-23 14:45:30 UTC` ya make is running...
:yellow_circle: `2025-04-23 16:11:19 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/148103) | [Ya make output](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/ya-x86-64-asan/ya_make_output.txt) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/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> |
| ---: | ---: | ---: | ---: | ---: | ---: |
| [12659](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/ya-x86-64-asan/try_1/ya-test.html) | [12507](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/ya-x86-64-asan/try_1/ya-test.html#PASS) | 0 | [80](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/ya-x86-64-asan/try_1/ya-test.html#FAIL) | [49](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/ya-x86-64-asan/try_1/ya-test.html#SKIP) | [23](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/ya-x86-64-asan/try_1/ya-test.html#MUTE) |

</details>

:white_circle: `2025-04-23 16:12:29 UTC` ya make is running... (failed tests rerun, try 2)
:yellow_circle: `2025-04-23 16:26:12 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/148187) | [Ya make output](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/ya-x86-64-asan/ya_make_output.txt) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/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/14620993832/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> |
| ---: | ---: | ---: | ---: | ---: | ---: |
| [195 (only retried tests)](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/ya-x86-64-asan/try_2/ya-test.html) | [113](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/ya-x86-64-asan/try_2/ya-test.html#PASS) | 0 | [42](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/ya-x86-64-asan/try_2/ya-test.html#FAIL) | [18](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/ya-x86-64-asan/try_2/ya-test.html#SKIP) | [22](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/ya-x86-64-asan/try_2/ya-test.html#MUTE) |

</details>

:white_circle: `2025-04-23 16:26:21 UTC` ya make is running... (failed tests rerun, try 3)
:yellow_circle: `2025-04-23 16:39:07 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/148203) | [Ya make output](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/ya-x86-64-asan/ya_make_output.txt) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/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/14620993832/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/14620993832/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> |
| ---: | ---: | ---: | ---: | ---: | ---: |
| [109 (only retried tests)](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/ya-x86-64-asan/try_3/ya-test.html) | [44](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/ya-x86-64-asan/try_3/ya-test.html#PASS) | 0 | [38](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/ya-x86-64-asan/try_3/ya-test.html#FAIL) | [4](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/ya-x86-64-asan/try_3/ya-test.html#SKIP) | [23](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/ya-x86-64-asan/try_3/ya-test.html#MUTE) |

:green_circle: `2025-04-23 16:39:14 UTC` Build successful.
:green_circle: `2025-04-23 16:39:49 UTC` ydbd size **3.8 GiB** changed* by **+65.5 KiB**, which is < 100.0 KiB vs main: **OK**
|[ydbd size dash](https://datalens.yandex/cu6hzmpaki700)|main: f1d45a21704af583d8f061338aa97b9fbb579d0f |merge: 78fce3c167e6d8713be5cfd0ff2d006cc1cf010b |diff | diff %|
|:--- | ---: | ---: | ---: | ---: |
|ydbd size|**4 133 776 496** Bytes |**4 133 843 592** Bytes|**+65.5 KiB**|**+0.002%**|
|ydbd stripped size|**1 431 224 632** Bytes|**1 431 242 296** Bytes|**+17.2 KiB**|**+0.001%**|

<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/f1d45a21704af583d8f061338aa97b9fbb579d0f..78fce3c167e6d8713be5cfd0ff2d006cc1cf010b)</sup>
author_association: NONE
user: login: github-actions[bot]
created_at: 2025-04-23T14:44:26Z
body: <!-- status pr=17618, preset=relwithdebinfo, run=41295 -->
:white_circle: `2025-04-23 14:44:25 UTC` Pre-commit [check](https://github.com/ydb-platform/ydb/actions/runs/14620993832/job/41020749404) **linux-x86_64-relwithdebinfo** for 78fce3c167e6d8713be5cfd0ff2d006cc1cf010b has started.
:white_circle: `2025-04-23 14:44:34 UTC` Artifacts will be uploaded [here](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/ya-x86-64/index.html)
:white_circle: `2025-04-23 14:47:22 UTC` ya make is running...
:yellow_circle: `2025-04-23 16:02:04 UTC` Some tests failed, follow the links below. Going to retry failed tests...

<details>


[Test history](https://nebius.testmo.net/automation/runs/view/148105) | [Ya make output](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/ya-x86-64/ya_make_output.txt) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/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> |
| ---: | ---: | ---: | ---: | ---: | ---: |
| [20405](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/ya-x86-64/try_1/ya-test.html) | [19001](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/ya-x86-64/try_1/ya-test.html#PASS) | 0 | [14](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/ya-x86-64/try_1/ya-test.html#FAIL) | [1284](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/ya-x86-64/try_1/ya-test.html#SKIP) | [106](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/ya-x86-64/try_1/ya-test.html#MUTE) |

</details>

:white_circle: `2025-04-23 16:03:49 UTC` ya make is running... (failed tests rerun, try 2)
:yellow_circle: `2025-04-23 16:17:24 UTC` Some tests failed, follow the links below. Going to retry failed tests...

<details>


[Test history](https://nebius.testmo.net/automation/runs/view/148178) | [Ya make output](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/ya-x86-64/ya_make_output.txt) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/ya-x86-64/try_1/test_bloat/tree_map.html) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/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> |
| ---: | ---: | ---: | ---: | ---: | ---: |
| [194 (only retried tests)](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/ya-x86-64/try_2/ya-test.html) | [94](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/ya-x86-64/try_2/ya-test.html#PASS) | 0 | [8](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/ya-x86-64/try_2/ya-test.html#FAIL) | 0 | [92](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/ya-x86-64/try_2/ya-test.html#MUTE) |

</details>

:white_circle: `2025-04-23 16:17:33 UTC` ya make is running... (failed tests rerun, try 3)
:red_circle: `2025-04-23 16:28:16 UTC` Some tests failed, follow the links below.

[Test history](https://nebius.testmo.net/automation/runs/view/148188) | [Ya make output](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/ya-x86-64/ya_make_output.txt) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/ya-x86-64/try_1/test_bloat/tree_map.html) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/ya-x86-64/try_2/test_bloat/tree_map.html) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/ya-x86-64/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> |
| ---: | ---: | ---: | ---: | ---: | ---: |
| [136 (only retried tests)](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/ya-x86-64/try_3/ya-test.html) | [37](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/ya-x86-64/try_3/ya-test.html#PASS) | 0 | [8](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/ya-x86-64/try_3/ya-test.html#FAIL) | 0 | [91](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14620993832/ya-x86-64/try_3/ya-test.html#MUTE) |

:green_circle: `2025-04-23 16:28:26 UTC` Build successful.
:green_circle: `2025-04-23 16:28:49 UTC` ydbd size **2.2 GiB** changed* by **+38.4 KiB**, which is < 100.0 KiB vs main: **OK**
|[ydbd size dash](https://datalens.yandex/cu6hzmpaki700)|main: f1d45a21704af583d8f061338aa97b9fbb579d0f |merge: 78fce3c167e6d8713be5cfd0ff2d006cc1cf010b |diff | diff %|
|:--- | ---: | ---: | ---: | ---: |
|ydbd size|**2 353 148 824** Bytes |**2 353 188 176** Bytes|**+38.4 KiB**|**+0.002%**|
|ydbd stripped size|**493 969 824** Bytes|**493 979 488** Bytes|**+9.4 KiB**|**+0.002%**|

<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/f1d45a21704af583d8f061338aa97b9fbb579d0f..78fce3c167e6d8713be5cfd0ff2d006cc1cf010b)</sup>
author_association: NONE
user: login: github-actions[bot]
created_at: 2025-04-24T09:50:35Z
body: <!-- status pr=17618, preset=release-asan, run=41367 -->
:white_circle: `2025-04-24 09:50:35 UTC` Pre-commit [check](https://github.com/ydb-platform/ydb/actions/runs/14638548263/job/41075259138) **linux-x86_64-release-asan** for a95a318a5c0bb09dc02b2496a1404148cdee409e has started.
:white_circle: `2025-04-24 09:50:50 UTC` Artifacts will be uploaded [here](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14638548263/ya-x86-64-asan/index.html)
:white_circle: `2025-04-24 09:53:35 UTC` ya make is running...
:yellow_circle: `2025-04-24 11:09:17 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/148665) | [Ya make output](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14638548263/ya-x86-64-asan/ya_make_output.txt) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14638548263/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> |
| ---: | ---: | ---: | ---: | ---: | ---: |
| [12670](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14638548263/ya-x86-64-asan/try_1/ya-test.html) | [12525](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14638548263/ya-x86-64-asan/try_1/ya-test.html#PASS) | 0 | [74](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14638548263/ya-x86-64-asan/try_1/ya-test.html#FAIL) | [48](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14638548263/ya-x86-64-asan/try_1/ya-test.html#SKIP) | [23](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14638548263/ya-x86-64-asan/try_1/ya-test.html#MUTE) |

</details>

:white_circle: `2025-04-24 11:10:22 UTC` ya make is running... (failed tests rerun, try 2)
:yellow_circle: `2025-04-24 11:23:53 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/148720) | [Ya make output](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14638548263/ya-x86-64-asan/ya_make_output.txt) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14638548263/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/14638548263/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> |
| ---: | ---: | ---: | ---: | ---: | ---: |
| [183 (only retried tests)](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14638548263/ya-x86-64-asan/try_2/ya-test.html) | [123](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14638548263/ya-x86-64-asan/try_2/ya-test.html#PASS) | 0 | [34](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14638548263/ya-x86-64-asan/try_2/ya-test.html#FAIL) | [4](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14638548263/ya-x86-64-asan/try_2/ya-test.html#SKIP) | [22](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14638548263/ya-x86-64-asan/try_2/ya-test.html#MUTE) |

</details>

:white_circle: `2025-04-24 11:24:01 UTC` ya make is running... (failed tests rerun, try 3)
:yellow_circle: `2025-04-24 11:36:02 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/148734) | [Ya make output](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14638548263/ya-x86-64-asan/ya_make_output.txt) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14638548263/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/14638548263/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/14638548263/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> |
| ---: | ---: | ---: | ---: | ---: | ---: |
| [82 (only retried tests)](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14638548263/ya-x86-64-asan/try_3/ya-test.html) | [25](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14638548263/ya-x86-64-asan/try_3/ya-test.html#PASS) | 0 | [35](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14638548263/ya-x86-64-asan/try_3/ya-test.html#FAIL) | [1](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14638548263/ya-x86-64-asan/try_3/ya-test.html#SKIP) | [21](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14638548263/ya-x86-64-asan/try_3/ya-test.html#MUTE) |

:green_circle: `2025-04-24 11:36:08 UTC` Build successful.
:yellow_circle: `2025-04-24 11:36:41 UTC` ydbd size **3.9 GiB** changed* by **+285.3 KiB**, which is >= 100.0 KiB vs main: **Warning**
|[ydbd size dash](https://datalens.yandex/cu6hzmpaki700)|main: 0ddb5fd0f317eb1b835bdcf4d73e4ba05029d8db |merge: a95a318a5c0bb09dc02b2496a1404148cdee409e |diff | diff %|
|:--- | ---: | ---: | ---: | ---: |
|ydbd size|**4 135 474 216** Bytes |**4 135 766 400** Bytes|**+285.3 KiB**|**+0.007%**|
|ydbd stripped size|**1 431 777 912** Bytes|**1 431 880 632** Bytes|**+100.3 KiB**|**+0.007%**|

<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..a95a318a5c0bb09dc02b2496a1404148cdee409e)</sup>
author_association: NONE
user: login: github-actions[bot]
created_at: 2025-04-24T11:16:01Z
body: <!-- status pr=17618, preset=relwithdebinfo, run=41367 -->
:white_circle: `2025-04-24 11:16:00 UTC` Pre-commit [check](https://github.com/ydb-platform/ydb/actions/runs/14638548263/job/41075259086) **linux-x86_64-relwithdebinfo** for a95a318a5c0bb09dc02b2496a1404148cdee409e has started.
:white_circle: `2025-04-24 11:16:50 UTC` Artifacts will be uploaded [here](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14638548263/ya-x86-64/index.html)
:white_circle: `2025-04-24 11:20:04 UTC` ya make is running...
:yellow_circle: `2025-04-24 12:35:28 UTC` Some tests failed, follow the links below. Going to retry failed tests...

<details>


[Test history](https://nebius.testmo.net/automation/runs/view/148730) | [Ya make output](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14638548263/ya-x86-64/ya_make_output.txt) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14638548263/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> |
| ---: | ---: | ---: | ---: | ---: | ---: |
| [20419](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14638548263/ya-x86-64/try_1/ya-test.html) | [19027](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14638548263/ya-x86-64/try_1/ya-test.html#PASS) | 0 | [2](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14638548263/ya-x86-64/try_1/ya-test.html#FAIL) | [1286](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14638548263/ya-x86-64/try_1/ya-test.html#SKIP) | [104](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14638548263/ya-x86-64/try_1/ya-test.html#MUTE) |

</details>

:white_circle: `2025-04-24 12:37:09 UTC` ya make is running... (failed tests rerun, try 2)
:green_circle: `2025-04-24 12:49:34 UTC` Tests successful.

[Test history](https://nebius.testmo.net/automation/runs/view/148801) | [Ya make output](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14638548263/ya-x86-64/ya_make_output.txt) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14638548263/ya-x86-64/try_1/test_bloat/tree_map.html) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14638548263/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> |
| ---: | ---: | ---: | ---: | ---: | ---: |
| [171 (only retried tests)](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14638548263/ya-x86-64/try_2/ya-test.html) | [76](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14638548263/ya-x86-64/try_2/ya-test.html#PASS) | 0 | 0 | 0 | [95](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14638548263/ya-x86-64/try_2/ya-test.html#MUTE) |

:green_circle: `2025-04-24 12:49:43 UTC` Build successful.
:yellow_circle: `2025-04-24 12:50:03 UTC` ydbd size **2.2 GiB** changed* by **+204.1 KiB**, which is >= 100.0 KiB vs main: **Warning**
|[ydbd size dash](https://datalens.yandex/cu6hzmpaki700)|main: 305b5cdccc9c2f43a8621aacdf120d1ded1b793c |merge: a95a318a5c0bb09dc02b2496a1404148cdee409e |diff | diff %|
|:--- | ---: | ---: | ---: | ---: |
|ydbd size|**2 354 063 736** Bytes |**2 354 272 720** Bytes|**+204.1 KiB**|**+0.009%**|
|ydbd stripped size|**494 146 784** Bytes|**494 181 824** Bytes|**+34.2 KiB**|**+0.007%**|

<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..a95a318a5c0bb09dc02b2496a1404148cdee409e)</sup>
author_association: NONE
user: login: github-actions[bot]
created_at: 2025-04-25T08:53:16Z
body: <!-- status pr=17618, preset=relwithdebinfo, run=41467 -->
:white_circle: `2025-04-25 08:53:16 UTC` Pre-commit [check](https://github.com/ydb-platform/ydb/actions/runs/14660712379/job/41144358971) **linux-x86_64-relwithdebinfo** for 167f1731bce6c13bef97534fa9f63a3fedd16b51 has started.
:white_circle: `2025-04-25 08:53:31 UTC` Artifacts will be uploaded [here](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14660712379/ya-x86-64/index.html)
:white_circle: `2025-04-25 08:56:27 UTC` ya make is running...
:yellow_circle: `2025-04-25 10:00:25 UTC` Some tests failed, follow the links below. Going to retry failed tests...

<details>


[Test history](https://nebius.testmo.net/automation/runs/view/149440) | [Ya make output](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14660712379/ya-x86-64/ya_make_output.txt) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14660712379/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> |
| ---: | ---: | ---: | ---: | ---: | ---: |
| [20421](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14660712379/ya-x86-64/try_1/ya-test.html) | [19017](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14660712379/ya-x86-64/try_1/ya-test.html#PASS) | 0 | [5](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14660712379/ya-x86-64/try_1/ya-test.html#FAIL) | [1354](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14660712379/ya-x86-64/try_1/ya-test.html#SKIP) | [45](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14660712379/ya-x86-64/try_1/ya-test.html#MUTE) |

</details>

:white_circle: `2025-04-25 10:02:06 UTC` ya make is running... (failed tests rerun, try 2)
:green_circle: `2025-04-25 10:03:31 UTC` ydbd size **2.2 GiB** changed* by **+16.7 KiB**, which is < 100.0 KiB vs main: **OK**
|[ydbd size dash](https://datalens.yandex/cu6hzmpaki700)|main: d5ac20e67b93e089a163a14ebfb04995a9bea532 |merge: 167f1731bce6c13bef97534fa9f63a3fedd16b51 |diff | diff %|
|:--- | ---: | ---: | ---: | ---: |
|ydbd size|**2 354 788 952** Bytes |**2 354 806 088** Bytes|**+16.7 KiB**|**+0.001%**|
|ydbd stripped size|**494 254 080** Bytes|**494 257 792** Bytes|**+3.6 KiB**|**+0.001%**|

<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/d5ac20e67b93e089a163a14ebfb04995a9bea532..167f1731bce6c13bef97534fa9f63a3fedd16b51)</sup>
:black_circle: `2025-04-25 10:03:33 UTC` Check cancelled
author_association: NONE
user: login: github-actions[bot]
created_at: 2025-04-25T08:53:18Z
body: <!-- status pr=17618, preset=release-asan, run=41467 -->
:white_circle: `2025-04-25 08:53:17 UTC` Pre-commit [check](https://github.com/ydb-platform/ydb/actions/runs/14660712379/job/41144358954) **linux-x86_64-release-asan** for 167f1731bce6c13bef97534fa9f63a3fedd16b51 has started.
:white_circle: `2025-04-25 08:53:34 UTC` Artifacts will be uploaded [here](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14660712379/ya-x86-64-asan/index.html)
:white_circle: `2025-04-25 08:56:30 UTC` ya make is running...
:black_circle: `2025-04-25 10:03:15 UTC` Check cancelled
author_association: NONE
user: login: github-actions[bot]
created_at: 2025-04-25T10:11:31Z
body: <!-- status pr=17618, preset=relwithdebinfo, run=41484 -->
:white_circle: `2025-04-25 10:11:31 UTC` Pre-commit [check](https://github.com/ydb-platform/ydb/actions/runs/14662044470/job/41148533550) **linux-x86_64-relwithdebinfo** for 5b6208e36a66412579cf67b0bd255df0e1961e68 has started.
:white_circle: `2025-04-25 10:11:45 UTC` Artifacts will be uploaded [here](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14662044470/ya-x86-64/index.html)
:white_circle: `2025-04-25 10:14:33 UTC` ya make is running...
:black_circle: `2025-04-25 11:05:02 UTC` Check cancelled
author_association: NONE
user: login: github-actions[bot]
created_at: 2025-04-25T10:20:41Z
body: <!-- status pr=17618, preset=release-asan, run=41484 -->
:white_circle: `2025-04-25 10:20:41 UTC` Pre-commit [check](https://github.com/ydb-platform/ydb/actions/runs/14662044470/job/41148533542) **linux-x86_64-release-asan** for 5b6208e36a66412579cf67b0bd255df0e1961e68 has started.
:white_circle: `2025-04-25 10:20:56 UTC` Artifacts will be uploaded [here](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14662044470/ya-x86-64-asan/index.html)
:white_circle: `2025-04-25 10:23:49 UTC` ya make is running...
:black_circle: `2025-04-25 11:05:03 UTC` Check cancelled
author_association: NONE
user: login: github-actions[bot]
created_at: 2025-04-25T11:06:26Z
body: <!-- status pr=17618, preset=relwithdebinfo, run=41500 -->
:white_circle: `2025-04-25 11:06:25 UTC` Pre-commit [check](https://github.com/ydb-platform/ydb/actions/runs/14663127779/job/41151833357) **linux-x86_64-relwithdebinfo** for d28c43be0f70ead1c1631d7805ebaf0b7ccc940f has started.
:white_circle: `2025-04-25 11:06:41 UTC` Artifacts will be uploaded [here](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14663127779/ya-x86-64/index.html)
:white_circle: `2025-04-25 11:09:29 UTC` ya make is running...
:yellow_circle: `2025-04-25 12:56:23 UTC` Some tests failed, follow the links below. Going to retry failed tests...

<details>


[Test history](https://nebius.testmo.net/automation/runs/view/149541) | [Ya make output](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14663127779/ya-x86-64/ya_make_output.txt) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14663127779/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> |
| ---: | ---: | ---: | ---: | ---: | ---: |
| [20439](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14663127779/ya-x86-64/try_1/ya-test.html) | [19054](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14663127779/ya-x86-64/try_1/ya-test.html#PASS) | 0 | [3](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14663127779/ya-x86-64/try_1/ya-test.html#FAIL) | [1342](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14663127779/ya-x86-64/try_1/ya-test.html#SKIP) | [40](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14663127779/ya-x86-64/try_1/ya-test.html#MUTE) |

</details>

:white_circle: `2025-04-25 12:58:04 UTC` ya make is running... (failed tests rerun, try 2)
:green_circle: `2025-04-25 13:11:32 UTC` Tests successful.

[Test history](https://nebius.testmo.net/automation/runs/view/149621) | [Ya make output](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14663127779/ya-x86-64/ya_make_output.txt) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14663127779/ya-x86-64/try_1/test_bloat/tree_map.html) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14663127779/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> |
| ---: | ---: | ---: | ---: | ---: | ---: |
| [95 (only retried tests)](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14663127779/ya-x86-64/try_2/ya-test.html) | [64](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14663127779/ya-x86-64/try_2/ya-test.html#PASS) | 0 | 0 | 0 | [31](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14663127779/ya-x86-64/try_2/ya-test.html#MUTE) |

:green_circle: `2025-04-25 13:11:42 UTC` Build successful.
:green_circle: `2025-04-25 13:12:02 UTC` ydbd size **2.2 GiB** changed* by **-12.1 MiB**, which is <= 0 Bytes vs main: **OK**
|[ydbd size dash](https://datalens.yandex/cu6hzmpaki700)|main: db1cfac434cb2d25ae9170117617e4958569750a |merge: d28c43be0f70ead1c1631d7805ebaf0b7ccc940f |diff | diff %|
|:--- | ---: | ---: | ---: | ---: |
|ydbd size|**2 354 820 496** Bytes |**2 342 117 016** Bytes|**-12.1 MiB**|**-0.539%**|
|ydbd stripped size|**494 258 752** Bytes|**492 576 448** Bytes|**-1.6 MiB**|**-0.340%**|

<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/db1cfac434cb2d25ae9170117617e4958569750a..d28c43be0f70ead1c1631d7805ebaf0b7ccc940f)</sup>
author_association: NONE
user: login: github-actions[bot]
created_at: 2025-04-25T11:11:20Z
body: <!-- status pr=17618, preset=release-asan, run=41500 -->
:white_circle: `2025-04-25 11:11:19 UTC` Pre-commit [check](https://github.com/ydb-platform/ydb/actions/runs/14663127779/job/41151833345) **linux-x86_64-release-asan** for d28c43be0f70ead1c1631d7805ebaf0b7ccc940f has started.
:white_circle: `2025-04-25 11:11:34 UTC` Artifacts will be uploaded [here](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14663127779/ya-x86-64-asan/index.html)
:white_circle: `2025-04-25 11:14:17 UTC` ya make is running...
:yellow_circle: `2025-04-25 13:13:19 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/149545) | [Ya make output](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14663127779/ya-x86-64-asan/ya_make_output.txt) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14663127779/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> |
| ---: | ---: | ---: | ---: | ---: | ---: |
| [12685](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14663127779/ya-x86-64-asan/try_1/ya-test.html) | [12474](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14663127779/ya-x86-64-asan/try_1/ya-test.html#PASS) | 0 | [137](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14663127779/ya-x86-64-asan/try_1/ya-test.html#FAIL) | [49](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14663127779/ya-x86-64-asan/try_1/ya-test.html#SKIP) | [25](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14663127779/ya-x86-64-asan/try_1/ya-test.html#MUTE) |

</details>

:white_circle: `2025-04-25 13:14:23 UTC` ya make is running... (failed tests rerun, try 2)
:yellow_circle: `2025-04-25 13:28:09 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/149637) | [Ya make output](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14663127779/ya-x86-64-asan/ya_make_output.txt) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14663127779/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/14663127779/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> |
| ---: | ---: | ---: | ---: | ---: | ---: |
| [253 (only retried tests)](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14663127779/ya-x86-64-asan/try_2/ya-test.html) | [171](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14663127779/ya-x86-64-asan/try_2/ya-test.html#PASS) | 0 | [42](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14663127779/ya-x86-64-asan/try_2/ya-test.html#FAIL) | [19](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14663127779/ya-x86-64-asan/try_2/ya-test.html#SKIP) | [21](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14663127779/ya-x86-64-asan/try_2/ya-test.html#MUTE) |

</details>

:white_circle: `2025-04-25 13:28:21 UTC` ya make is running... (failed tests rerun, try 3)
:yellow_circle: `2025-04-25 13:42:12 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/149652) | [Ya make output](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14663127779/ya-x86-64-asan/ya_make_output.txt) | [Test bloat](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14663127779/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/14663127779/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/14663127779/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> |
| ---: | ---: | ---: | ---: | ---: | ---: |
| [104 (only retried tests)](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14663127779/ya-x86-64-asan/try_3/ya-test.html) | [44](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14663127779/ya-x86-64-asan/try_3/ya-test.html#PASS) | 0 | [36](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14663127779/ya-x86-64-asan/try_3/ya-test.html#FAIL) | [3](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14663127779/ya-x86-64-asan/try_3/ya-test.html#SKIP) | [21](https://storage.yandexcloud.net/ydb-gh-logs/ydb-platform/ydb/PR-check/14663127779/ya-x86-64-asan/try_3/ya-test.html#MUTE) |

:green_circle: `2025-04-25 13:42:20 UTC` Build successful.
:green_circle: `2025-04-25 13:43:00 UTC` ydbd size **3.8 GiB** changed* by **-15.8 MiB**, which is <= 0 Bytes vs main: **OK**
|[ydbd size dash](https://datalens.yandex/cu6hzmpaki700)|main: d7c098621752b75e0a9d44efa0de8519bc0fb8fc |merge: d28c43be0f70ead1c1631d7805ebaf0b7ccc940f |diff | diff %|
|:--- | ---: | ---: | ---: | ---: |
|ydbd size|**4 136 732 624** Bytes |**4 120 166 736** Bytes|**-15.8 MiB**|**-0.400%**|
|ydbd stripped size|**1 432 102 872** Bytes|**1 428 488 504** Bytes|**-3.4 MiB**|**-0.252%**|

<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/d7c098621752b75e0a9d44efa0de8519bc0fb8fc..d28c43be0f70ead1c1631d7805ebaf0b7ccc940f)</sup>
author_association: NONE
user: login: antonkovalenko
created_at: 2025-07-01T13:49:25Z
body: KIKIMR-23558
author_association: MEMBER