diff --git a/ydb/core/tx/columnshard/blobs_action/abstract/blob_set.h b/ydb/core/tx/columnshard/blobs_action/abstract/blob_set.h index ea5844f5ddb7..ee1cf91bb419 100644 --- a/ydb/core/tx/columnshard/blobs_action/abstract/blob_set.h +++ b/ydb/core/tx/columnshard/blobs_action/abstract/blob_set.h @@ -573,11 +573,11 @@ class TBlobsCategories { void AddSharing(const TTabletId tabletId, const TUnifiedBlobId& id) { AFL_VERIFY(Sharing.Add(tabletId, id)); } - void RemoveSharing(const TTabletId tabletId, const TUnifiedBlobId& id) { - Y_UNUSED(Sharing.Remove(tabletId, id)); + [[nodiscard]] bool RemoveSharing(const TTabletId tabletId, const TUnifiedBlobId& id) { + return Sharing.Remove(tabletId, id); } - void RemoveBorrowed(const TTabletId tabletId, const TUnifiedBlobId& id) { - Y_UNUSED(Borrowed.Remove(tabletId, id)); + [[nodiscard]] bool RemoveBorrowed(const TTabletId tabletId, const TUnifiedBlobId& id) { + return Borrowed.Remove(tabletId, id); } TBlobsCategories(const TTabletId selfTabletId) : SelfTabletId(selfTabletId) diff --git a/ydb/core/tx/columnshard/blobs_action/abstract/gc.h b/ydb/core/tx/columnshard/blobs_action/abstract/gc.h index 19e2da1b39b6..3c7279e7b3f1 100644 --- a/ydb/core/tx/columnshard/blobs_action/abstract/gc.h +++ b/ydb/core/tx/columnshard/blobs_action/abstract/gc.h @@ -33,7 +33,7 @@ class IBlobsGCAction: public ICommonBlobsAction { virtual bool DoIsEmpty() const = 0; public: void AddSharedBlobToNextIteration(const TUnifiedBlobId& blobId, const TTabletId ownerTabletId) { - BlobsToRemove.RemoveSharing(ownerTabletId, blobId); + AFL_VERIFY(BlobsToRemove.RemoveBorrowed(ownerTabletId, blobId)); } void OnExecuteTxAfterCleaning(NColumnShard::TColumnShard& self, TBlobManagerDb& dbBlobs); diff --git a/ydb/core/tx/columnshard/blobs_action/transaction/tx_remove_blobs.h b/ydb/core/tx/columnshard/blobs_action/transaction/tx_remove_blobs.h index 937174875fb2..437a16874bce 100644 --- a/ydb/core/tx/columnshard/blobs_action/transaction/tx_remove_blobs.h +++ b/ydb/core/tx/columnshard/blobs_action/transaction/tx_remove_blobs.h @@ -36,8 +36,12 @@ class TTxRemoveSharedBlobs: public TTransactionBase { for (auto it = categories.GetDirect().GetIterator(); it.IsValid(); ++it) { RemoveAction->DeclareRemove(it.GetTabletId(), it.GetBlobId()); } + for (auto it = categories.GetBorrowed().GetIterator(); it.IsValid(); ++it) { + AFL_ERROR(NKikimrServices::TX_COLUMNSHARD_BLOBS)("problem", "borrowed_to_remove")("blob_id", it.GetBlobId())("tablet_id", it.GetTabletId()); + } AFL_VERIFY(categories.GetBorrowed().IsEmpty()); - AFL_VERIFY(categories.GetSharing().GetSize() == SharingBlobIds.GetSize()); + AFL_VERIFY(categories.GetSharing().GetSize() == SharingBlobIds.GetSize())("sharing_category", categories.GetSharing().GetSize())( + "sharing", SharingBlobIds.GetSize()); } bool Execute(TTransactionContext& txc, const TActorContext& ctx) override; diff --git a/ydb/core/tx/columnshard/columnshard_impl.cpp b/ydb/core/tx/columnshard/columnshard_impl.cpp index 2e090c9dbfd1..92a2b8a057ef 100644 --- a/ydb/core/tx/columnshard/columnshard_impl.cpp +++ b/ydb/core/tx/columnshard/columnshard_impl.cpp @@ -1072,9 +1072,13 @@ void TColumnShard::Handle(TAutoPtrIsSharingInProgress()) { ctx.Send(NActors::ActorIdFromProto(ev->Get()->Record.GetSourceActorId()), - new NOlap::NBlobOperations::NEvents::TEvDeleteSharedBlobsFinished((NOlap::TTabletId)TabletID(), - NKikimrColumnShardBlobOperationsProto::TEvDeleteSharedBlobsFinished::DestinationCurrenlyLocked)); - AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "sharing_in_progress"); + new NOlap::NBlobOperations::NEvents::TEvDeleteSharedBlobsFinished( + (NOlap::TTabletId)TabletID(), NKikimrColumnShardBlobOperationsProto::TEvDeleteSharedBlobsFinished::DestinationCurrenlyLocked)); + for (auto&& i : ev->Get()->Record.GetBlobIds()) { + AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_BLOBS)("event", "sharing_in_progress")("blob_id", i)( + "from_tablet", ev->Get()->Record.GetSourceTabletId()); + } + return; } diff --git a/ydb/core/tx/columnshard/hooks/testing/controller.cpp b/ydb/core/tx/columnshard/hooks/testing/controller.cpp index 80221a369724..9cf3a7e7e9b5 100644 --- a/ydb/core/tx/columnshard/hooks/testing/controller.cpp +++ b/ydb/core/tx/columnshard/hooks/testing/controller.cpp @@ -52,11 +52,11 @@ void TController::CheckInvariants(const ::NKikimr::NColumnShard::TColumnShard& s const NOlap::TTabletsByBlob blobs = manager->GetBlobsToDelete(); for (auto b = blobs.GetIterator(); b.IsValid(); ++b) { Cerr << shard.TabletID() << " SHARING_REMOVE_LOCAL:" << b.GetBlobId().ToStringNew() << " FROM " << b.GetTabletId() << Endl; - i.second.RemoveSharing(b.GetTabletId(), b.GetBlobId()); + Y_UNUSED(i.second.RemoveSharing(b.GetTabletId(), b.GetBlobId())); } for (auto b = blobs.GetIterator(); b.IsValid(); ++b) { Cerr << shard.TabletID() << " BORROWED_REMOVE_LOCAL:" << b.GetBlobId().ToStringNew() << " FROM " << b.GetTabletId() << Endl; - i.second.RemoveBorrowed(b.GetTabletId(), b.GetBlobId()); + Y_UNUSED(i.second.RemoveBorrowed(b.GetTabletId(), b.GetBlobId())); } } context.AddCategories(shard.TabletID(), std::move(shardBlobsCategories));