Skip to content

Commit bcab1ba

Browse files
ivanmorozov333zverevgeny
authored andcommitted
correct change tasks validation (ydb-platform#13064)
1 parent c42f849 commit bcab1ba

File tree

5 files changed

+21
-3
lines changed

5 files changed

+21
-3
lines changed

ydb/core/tx/columnshard/columnshard.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,6 @@ void TColumnShard::TrySwitchToWork(const TActorContext& ctx) {
6767
AFL_INFO(NKikimrServices::TX_COLUMNSHARD)("event", "skip_switch_to_work")("reason", "db_reading_not_finished");
6868
return;
6969
}
70-
7170
ProgressTxController->OnTabletInit();
7271
{
7372
const TLogContextGuard gLogging =

ydb/core/tx/columnshard/columnshard_impl.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ TColumnShard::TColumnShard(TTabletStorageInfo* info, const TActorId& tablet)
9494
, BackgroundController(Counters.GetBackgroundControllerCounters())
9595
, NormalizerController(StoragesManager, Counters.GetSubscribeCounters())
9696
, SysLocks(this) {
97+
AFL_VERIFY(TabletActivityImpl->Inc() == 1);
9798
}
9899

99100
void TColumnShard::OnDetach(const TActorContext& ctx) {
@@ -895,6 +896,7 @@ void TColumnShard::StartCompaction(const std::shared_ptr<NPrioritiesQueue::TAllo
895896
}
896897

897898
auto compaction = dynamic_pointer_cast<NOlap::NCompaction::TGeneralCompactColumnEngineChanges>(indexChanges);
899+
compaction->SetActivityFlag(GetTabletActivity());
898900
compaction->SetQueueGuard(guard);
899901
compaction->Start(*this);
900902

@@ -1148,11 +1150,12 @@ void TColumnShard::SetupCleanupInsertTable() {
11481150
}
11491151

11501152
void TColumnShard::Die(const TActorContext& ctx) {
1153+
AFL_VERIFY(TabletActivityImpl->Dec() == 0);
11511154
CleanupActors(ctx);
11521155
NTabletPipe::CloseAndForgetClient(SelfId(), StatsReportPipe);
11531156
UnregisterMediatorTimeCast();
11541157
NYDBTest::TControllers::GetColumnShardController()->OnTabletStopped(*this);
1155-
return IActor::Die(ctx);
1158+
IActor::Die(ctx);
11561159
}
11571160

11581161
void TColumnShard::Handle(NActors::TEvents::TEvUndelivered::TPtr& ev, const TActorContext&) {

ydb/core/tx/columnshard/columnshard_impl.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -326,6 +326,8 @@ class TColumnShard: public TActor<TColumnShard>, public NTabletFlatExecutor::TTa
326326
void ActivateTiering(const ui64 pathId, const THashSet<TString>& usedTiers);
327327
void OnTieringModified(const std::optional<ui64> pathId = {});
328328

329+
std::shared_ptr<TAtomicCounter> TabletActivityImpl = std::make_shared<TAtomicCounter>(0);
330+
329331
public:
330332
ui64 BuildEphemeralTxId() {
331333
static TAtomicCounter Counter = 0;
@@ -602,6 +604,10 @@ class TColumnShard: public TActor<TColumnShard>, public NTabletFlatExecutor::TTa
602604
public:
603605
ui64 TabletTxCounter = 0;
604606

607+
std::shared_ptr<const TAtomicCounter> GetTabletActivity() const {
608+
return TabletActivityImpl;
609+
}
610+
605611
const TTablesManager& GetTablesManager() const {
606612
return TablesManager;
607613
}

ydb/core/tx/columnshard/engines/changes/abstract/abstract.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,7 @@ class TColumnEngineChanges {
214214
std::shared_ptr<NDataLocks::TManager::TGuard> LockGuard;
215215
TString AbortedReason;
216216
const TString TaskIdentifier = TGUID::CreateTimebased().AsGuidString();
217+
std::shared_ptr<const TAtomicCounter> ActivityFlag;
217218

218219
protected:
219220
std::optional<TDataAccessorsResult> FetchedDataAccessors;
@@ -246,6 +247,15 @@ class TColumnEngineChanges {
246247
virtual void OnDataAccessorsInitialized(const TDataAccessorsInitializationContext& context) = 0;
247248

248249
public:
250+
bool IsActive() const {
251+
return !ActivityFlag || ActivityFlag->Val();
252+
}
253+
254+
void SetActivityFlag(const std::shared_ptr<const TAtomicCounter>& flag) {
255+
AFL_VERIFY(!ActivityFlag);
256+
ActivityFlag = flag;
257+
}
258+
249259
std::shared_ptr<TDataAccessorsRequest> ExtractDataAccessorsRequest() const {
250260
AFL_VERIFY(!!PortionsToAccess);
251261
return std::move(PortionsToAccess);

ydb/core/tx/columnshard/engines/changes/compaction.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ TCompactColumnEngineChanges::TCompactColumnEngineChanges(
7171
}
7272

7373
TCompactColumnEngineChanges::~TCompactColumnEngineChanges() {
74-
Y_DEBUG_ABORT_UNLESS(!NActors::TlsActivationContext || !NeedGranuleStatusProvide);
74+
Y_DEBUG_ABORT_UNLESS(!NActors::TlsActivationContext || !NeedGranuleStatusProvide || !IsActive());
7575
}
7676

7777
} // namespace NKikimr::NOlap

0 commit comments

Comments
 (0)