Skip to content

Commit 38a7ef2

Browse files
fix resharding tests on race gc with sharing (#6654)
1 parent c63da82 commit 38a7ef2

File tree

5 files changed

+19
-11
lines changed

5 files changed

+19
-11
lines changed

ydb/core/tx/columnshard/blobs_action/abstract/blob_set.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -573,11 +573,11 @@ class TBlobsCategories {
573573
void AddSharing(const TTabletId tabletId, const TUnifiedBlobId& id) {
574574
AFL_VERIFY(Sharing.Add(tabletId, id));
575575
}
576-
void RemoveSharing(const TTabletId tabletId, const TUnifiedBlobId& id) {
577-
Y_UNUSED(Sharing.Remove(tabletId, id));
576+
[[nodiscard]] bool RemoveSharing(const TTabletId tabletId, const TUnifiedBlobId& id) {
577+
return Sharing.Remove(tabletId, id);
578578
}
579-
void RemoveBorrowed(const TTabletId tabletId, const TUnifiedBlobId& id) {
580-
Y_UNUSED(Borrowed.Remove(tabletId, id));
579+
[[nodiscard]] bool RemoveBorrowed(const TTabletId tabletId, const TUnifiedBlobId& id) {
580+
return Borrowed.Remove(tabletId, id);
581581
}
582582
TBlobsCategories(const TTabletId selfTabletId)
583583
: SelfTabletId(selfTabletId)

ydb/core/tx/columnshard/blobs_action/abstract/gc.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ class IBlobsGCAction: public ICommonBlobsAction {
3333
virtual bool DoIsEmpty() const = 0;
3434
public:
3535
void AddSharedBlobToNextIteration(const TUnifiedBlobId& blobId, const TTabletId ownerTabletId) {
36-
BlobsToRemove.RemoveSharing(ownerTabletId, blobId);
36+
AFL_VERIFY(BlobsToRemove.RemoveBorrowed(ownerTabletId, blobId));
3737
}
3838

3939
void OnExecuteTxAfterCleaning(NColumnShard::TColumnShard& self, TBlobManagerDb& dbBlobs);

ydb/core/tx/columnshard/blobs_action/transaction/tx_remove_blobs.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,12 @@ class TTxRemoveSharedBlobs: public TTransactionBase<TColumnShard> {
3636
for (auto it = categories.GetDirect().GetIterator(); it.IsValid(); ++it) {
3737
RemoveAction->DeclareRemove(it.GetTabletId(), it.GetBlobId());
3838
}
39+
for (auto it = categories.GetBorrowed().GetIterator(); it.IsValid(); ++it) {
40+
AFL_ERROR(NKikimrServices::TX_COLUMNSHARD_BLOBS)("problem", "borrowed_to_remove")("blob_id", it.GetBlobId())("tablet_id", it.GetTabletId());
41+
}
3942
AFL_VERIFY(categories.GetBorrowed().IsEmpty());
40-
AFL_VERIFY(categories.GetSharing().GetSize() == SharingBlobIds.GetSize());
43+
AFL_VERIFY(categories.GetSharing().GetSize() == SharingBlobIds.GetSize())("sharing_category", categories.GetSharing().GetSize())(
44+
"sharing", SharingBlobIds.GetSize());
4145
}
4246

4347
bool Execute(TTransactionContext& txc, const TActorContext& ctx) override;

ydb/core/tx/columnshard/columnshard_impl.cpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1072,9 +1072,13 @@ void TColumnShard::Handle(TAutoPtr<TEventHandle<NOlap::NBackground::TEvExecuteGe
10721072
void TColumnShard::Handle(NOlap::NBlobOperations::NEvents::TEvDeleteSharedBlobs::TPtr& ev, const TActorContext& ctx) {
10731073
if (SharingSessionsManager->IsSharingInProgress()) {
10741074
ctx.Send(NActors::ActorIdFromProto(ev->Get()->Record.GetSourceActorId()),
1075-
new NOlap::NBlobOperations::NEvents::TEvDeleteSharedBlobsFinished((NOlap::TTabletId)TabletID(),
1076-
NKikimrColumnShardBlobOperationsProto::TEvDeleteSharedBlobsFinished::DestinationCurrenlyLocked));
1077-
AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "sharing_in_progress");
1075+
new NOlap::NBlobOperations::NEvents::TEvDeleteSharedBlobsFinished(
1076+
(NOlap::TTabletId)TabletID(), NKikimrColumnShardBlobOperationsProto::TEvDeleteSharedBlobsFinished::DestinationCurrenlyLocked));
1077+
for (auto&& i : ev->Get()->Record.GetBlobIds()) {
1078+
AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_BLOBS)("event", "sharing_in_progress")("blob_id", i)(
1079+
"from_tablet", ev->Get()->Record.GetSourceTabletId());
1080+
}
1081+
10781082
return;
10791083
}
10801084

ydb/core/tx/columnshard/hooks/testing/controller.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,11 +52,11 @@ void TController::CheckInvariants(const ::NKikimr::NColumnShard::TColumnShard& s
5252
const NOlap::TTabletsByBlob blobs = manager->GetBlobsToDelete();
5353
for (auto b = blobs.GetIterator(); b.IsValid(); ++b) {
5454
Cerr << shard.TabletID() << " SHARING_REMOVE_LOCAL:" << b.GetBlobId().ToStringNew() << " FROM " << b.GetTabletId() << Endl;
55-
i.second.RemoveSharing(b.GetTabletId(), b.GetBlobId());
55+
Y_UNUSED(i.second.RemoveSharing(b.GetTabletId(), b.GetBlobId()));
5656
}
5757
for (auto b = blobs.GetIterator(); b.IsValid(); ++b) {
5858
Cerr << shard.TabletID() << " BORROWED_REMOVE_LOCAL:" << b.GetBlobId().ToStringNew() << " FROM " << b.GetTabletId() << Endl;
59-
i.second.RemoveBorrowed(b.GetTabletId(), b.GetBlobId());
59+
Y_UNUSED(i.second.RemoveBorrowed(b.GetTabletId(), b.GetBlobId()));
6060
}
6161
}
6262
context.AddCategories(shard.TabletID(), std::move(shardBlobsCategories));

0 commit comments

Comments
 (0)