Skip to content

Commit e63dc37

Browse files
additional info on abort (ydb-platform#3815)
1 parent e6b85fb commit e63dc37

File tree

9 files changed

+22
-19
lines changed

9 files changed

+22
-19
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class TTxWriteDraft: public TTransactionBase<TColumnShard> {
1212
public:
1313
~TTxWriteDraft() {
1414
if (!Completed) {
15-
WriteController->Abort();
15+
WriteController->Abort("TTxWriteDraft aborted before complete");
1616
}
1717
}
1818

ydb/core/tx/columnshard/blobs_action/transaction/tx_write_index.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ bool TTxWriteIndex::Execute(TTransactionContext& txc, const TActorContext& ctx)
4040
LOG_S_WARN(TxPrefix() << "(" << changes->TypeString() << ":" << portion.RestoreBlobRange(i.BlobRange) << ") blob cannot apply changes: " << TxSuffix());
4141
}
4242
}
43-
NOlap::TChangesFinishContext context("cannot write index blobs");
43+
NOlap::TChangesFinishContext context("cannot write index blobs: " + ::ToString(Ev->Get()->GetPutStatus()));
4444
changes->Abort(*Self, context);
4545
LOG_S_ERROR(TxPrefix() << " (" << changes->TypeString() << ") cannot write index blobs" << TxSuffix());
4646
}
@@ -73,7 +73,7 @@ TTxWriteIndex::~TTxWriteIndex() {
7373
if (Ev) {
7474
auto changes = Ev->Get()->IndexChanges;
7575
if (!CompleteReady && changes) {
76-
changes->AbortEmergency();
76+
changes->AbortEmergency("TTxWriteIndex destructor withno CompleteReady flag");
7777
}
7878
}
7979
}

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ TColumnEngineChanges::~TColumnEngineChanges() {
6868
}
6969

7070
void TColumnEngineChanges::Abort(NColumnShard::TColumnShard& self, TChangesFinishContext& context) {
71-
Y_ABORT_UNLESS(Stage != EStage::Finished && Stage != EStage::Created && Stage != EStage::Aborted);
71+
AFL_VERIFY(Stage != EStage::Finished && Stage != EStage::Created && Stage != EStage::Aborted)("stage", Stage)("reason", context.ErrorMessage);
7272
Stage = EStage::Aborted;
7373
OnFinish(self, context);
7474
}
@@ -93,8 +93,8 @@ void TColumnEngineChanges::StartEmergency() {
9393
}
9494
}
9595

96-
void TColumnEngineChanges::AbortEmergency() {
97-
AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "AbortEmergency");
96+
void TColumnEngineChanges::AbortEmergency(const TString& reason) {
97+
AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "AbortEmergency")("reason", reason);
9898
Stage = EStage::Aborted;
9999
OnAbortEmergency();
100100
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,7 @@ class TColumnEngineChanges {
264264
}
265265

266266
void StartEmergency();
267-
void AbortEmergency();
267+
void AbortEmergency(const TString& reason);
268268

269269
void Abort(NColumnShard::TColumnShard& self, TChangesFinishContext& context);
270270
void Start(NColumnShard::TColumnShard& self);

ydb/core/tx/columnshard/engines/ut/ut_logs_engine.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,7 @@ bool Insert(TColumnEngineForLogs& engine, TTestDbWrapper& db, TSnapshot snap,
299299
changes->WriteIndexOnExecute(nullptr, contextExecute);
300300
NOlap::TWriteIndexCompleteContext contextComplete(NActors::TActivationContext::AsActorContext(), 0, 0, TDuration::Zero(), engine);
301301
changes->WriteIndexOnComplete(nullptr, contextComplete);
302-
changes->AbortEmergency();
302+
changes->AbortEmergency("testing");
303303
return result;
304304
}
305305

@@ -336,7 +336,7 @@ bool Compact(TColumnEngineForLogs& engine, TTestDbWrapper& db, TSnapshot snap, N
336336
}
337337
}
338338
}
339-
changes->AbortEmergency();
339+
changes->AbortEmergency("testing");
340340
return result;
341341
}
342342

@@ -356,7 +356,7 @@ bool Cleanup(TColumnEngineForLogs& engine, TTestDbWrapper& db, TSnapshot snap, u
356356
changes->WriteIndexOnExecute(nullptr, contextExecute);
357357
NOlap::TWriteIndexCompleteContext contextComplete(NActors::TActivationContext::AsActorContext(), 0, 0, TDuration::Zero(), engine);
358358
changes->WriteIndexOnComplete(nullptr, contextComplete);
359-
changes->AbortEmergency();
359+
changes->AbortEmergency("testing");
360360
return result;
361361
}
362362

@@ -374,7 +374,7 @@ bool Ttl(TColumnEngineForLogs& engine, TTestDbWrapper& db,
374374
changes->WriteIndexOnExecute(nullptr, contextExecute);
375375
NOlap::TWriteIndexCompleteContext contextComplete(NActors::TActivationContext::AsActorContext(), 0, 0, TDuration::Zero(), engine);
376376
changes->WriteIndexOnComplete(nullptr, contextComplete);
377-
changes->AbortEmergency();
377+
changes->AbortEmergency("testing");
378378
return result;
379379
}
380380

ydb/core/tx/columnshard/engines/writer/compacted_blob_constructor.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,16 +33,18 @@ void TCompactedWriteController::DoOnReadyResult(const NActors::TActorContext& ct
3333

3434
TCompactedWriteController::~TCompactedWriteController() {
3535
if (WriteIndexEv && WriteIndexEv->IndexChanges) {
36-
WriteIndexEv->IndexChanges->AbortEmergency();
36+
WriteIndexEv->IndexChanges->AbortEmergency("TCompactedWriteController destructed with WriteIndexEv and WriteIndexEv->IndexChanges");
3737
}
3838
}
3939

4040
const NKikimr::NOlap::TBlobsAction& TCompactedWriteController::GetBlobsAction() {
4141
return WriteIndexEv->IndexChanges->GetBlobsAction();
4242
}
4343

44-
void TCompactedWriteController::DoAbort() {
45-
WriteIndexEv->IndexChanges->AbortEmergency();
44+
void TCompactedWriteController::DoAbort(const TString& reason) {
45+
if (WriteIndexEv && WriteIndexEv->IndexChanges) {
46+
WriteIndexEv->IndexChanges->AbortEmergency("TCompactedWriteController aborted: " + reason);
47+
}
4648
}
4749

4850
}

ydb/core/tx/columnshard/engines/writer/compacted_blob_constructor.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class TCompactedWriteController : public NColumnShard::IWriteController {
1616
TActorId DstActor;
1717
protected:
1818
void DoOnReadyResult(const NActors::TActorContext& ctx, const NColumnShard::TBlobPutResult::TPtr& putResult) override;
19-
virtual void DoAbort() override;
19+
virtual void DoAbort(const TString& reason) override;
2020
public:
2121
const TBlobsAction& GetBlobsAction();
2222

ydb/core/tx/columnshard/engines/writer/write_controller.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ class IWriteController {
4141
}
4242

4343
NOlap::TBlobWriteInfo& AddWriteTask(NOlap::TBlobWriteInfo&& task);
44-
virtual void DoAbort() {
44+
virtual void DoAbort(const TString& /*reason*/) {
4545
}
4646
public:
4747
const NOlap::TWriteActionsCollection& GetBlobActions() const {
@@ -61,11 +61,12 @@ class IWriteController {
6161
return TStringBuilder() << "size=" << size << ";count=" << WriteTasks.size() << ";actions=" << sb << ";";
6262
}
6363

64-
void Abort() {
64+
void Abort(const TString& reason) {
65+
AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "IWriteController aborted")("reason", reason);
6566
for (auto&& i : WritingActions) {
6667
i.second->Abort();
6768
}
68-
DoAbort();
69+
DoAbort(reason);
6970
}
7071

7172
using TPtr = std::shared_ptr<IWriteController>;

ydb/core/tx/columnshard/write_actor.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class TWriteActor: public TActorBootstrapped<TWriteActor>, public TMonitoringObj
3636

3737
if (status != NKikimrProto::OK) {
3838
ACFL_ERROR("event", "TEvPutResult")("blob_id", msg->Id.ToString())("status", status)("error", msg->ErrorReason);
39-
WriteController->Abort();
39+
WriteController->Abort("cannot write blob " + msg->Id.ToString() + ", status: " + ::ToString(status) + ". reason: " + msg->ErrorReason);
4040
return SendResultAndDie(ctx, status);
4141
}
4242

0 commit comments

Comments
 (0)