Skip to content

Commit 79f96db

Browse files
additional info on abort (#3815)
1 parent 4dac2fa commit 79f96db

File tree

9 files changed

+24
-21
lines changed

9 files changed

+24
-21
lines changed

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

+1-1
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

+2-2
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ bool TTxWriteIndex::Execute(TTransactionContext& txc, const TActorContext& ctx)
3838
auto& portion = changes->GetWritePortionInfo(i)->GetPortionResult();
3939
LOG_S_WARN(TxPrefix() << "(" << changes->TypeString() << ":" << portion.DebugString() << ") blob cannot apply changes: " << TxSuffix());
4040
}
41-
NOlap::TChangesFinishContext context("cannot write index blobs");
41+
NOlap::TChangesFinishContext context("cannot write index blobs: " + ::ToString(Ev->Get()->GetPutStatus()));
4242
changes->Abort(*Self, context);
4343
LOG_S_ERROR(TxPrefix() << " (" << changes->TypeString() << ") cannot write index blobs" << TxSuffix());
4444
}
@@ -71,7 +71,7 @@ TTxWriteIndex::~TTxWriteIndex() {
7171
if (Ev) {
7272
auto changes = Ev->Get()->IndexChanges;
7373
if (!CompleteReady && changes) {
74-
changes->AbortEmergency();
74+
changes->AbortEmergency("TTxWriteIndex destructor withno CompleteReady flag");
7575
}
7676
}
7777
}

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

+5-5
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ void TColumnEngineChanges::WriteIndexOnComplete(NColumnShard::TColumnShard* self
5252
}
5353

5454
void TColumnEngineChanges::Compile(TFinalizationContext& context) noexcept {
55-
Y_ABORT_UNLESS(Stage != EStage::Aborted);
56-
Y_ABORT_UNLESS(Stage == EStage::Constructed);
55+
AFL_VERIFY(Stage != EStage::Aborted);
56+
AFL_VERIFY(Stage == EStage::Constructed);
5757

5858
DoCompile(context);
5959
DoOnAfterCompile();
@@ -66,7 +66,7 @@ TColumnEngineChanges::~TColumnEngineChanges() {
6666
}
6767

6868
void TColumnEngineChanges::Abort(NColumnShard::TColumnShard& self, TChangesFinishContext& context) {
69-
Y_ABORT_UNLESS(Stage != EStage::Finished && Stage != EStage::Created && Stage != EStage::Aborted);
69+
AFL_VERIFY(Stage != EStage::Finished && Stage != EStage::Created && Stage != EStage::Aborted)("stage", Stage)("reason", context.ErrorMessage);
7070
Stage = EStage::Aborted;
7171
OnFinish(self, context);
7272
}
@@ -91,8 +91,8 @@ void TColumnEngineChanges::StartEmergency() {
9191
}
9292
}
9393

94-
void TColumnEngineChanges::AbortEmergency() {
95-
AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "AbortEmergency");
94+
void TColumnEngineChanges::AbortEmergency(const TString& reason) {
95+
AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "AbortEmergency")("reason", reason);
9696
Stage = EStage::Aborted;
9797
OnAbortEmergency();
9898
}

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

+1-1
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

+4-4
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,7 @@ bool Insert(TColumnEngineForLogs& engine, TTestDbWrapper& db, TSnapshot snap,
311311
changes->WriteIndexOnExecute(nullptr, contextExecute);
312312
NOlap::TWriteIndexCompleteContext contextComplete(NActors::TActivationContext::AsActorContext(), 0, 0, TDuration::Zero(), engine);
313313
changes->WriteIndexOnComplete(nullptr, contextComplete);
314-
changes->AbortEmergency();
314+
changes->AbortEmergency("testing");
315315
return result;
316316
}
317317

@@ -348,7 +348,7 @@ bool Compact(TColumnEngineForLogs& engine, TTestDbWrapper& db, TSnapshot snap, N
348348
}
349349
}
350350
}
351-
changes->AbortEmergency();
351+
changes->AbortEmergency("testing");
352352
return result;
353353
}
354354

@@ -368,7 +368,7 @@ bool Cleanup(TColumnEngineForLogs& engine, TTestDbWrapper& db, TSnapshot snap, u
368368
changes->WriteIndexOnExecute(nullptr, contextExecute);
369369
NOlap::TWriteIndexCompleteContext contextComplete(NActors::TActivationContext::AsActorContext(), 0, 0, TDuration::Zero(), engine);
370370
changes->WriteIndexOnComplete(nullptr, contextComplete);
371-
changes->AbortEmergency();
371+
changes->AbortEmergency("testing");
372372
return result;
373373
}
374374

@@ -386,7 +386,7 @@ bool Ttl(TColumnEngineForLogs& engine, TTestDbWrapper& db,
386386
changes->WriteIndexOnExecute(nullptr, contextExecute);
387387
NOlap::TWriteIndexCompleteContext contextComplete(NActors::TActivationContext::AsActorContext(), 0, 0, TDuration::Zero(), engine);
388388
changes->WriteIndexOnComplete(nullptr, contextComplete);
389-
changes->AbortEmergency();
389+
changes->AbortEmergency("testing");
390390
return result;
391391
}
392392

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

+5-3
Original file line numberDiff line numberDiff line change
@@ -34,16 +34,18 @@ void TCompactedWriteController::DoOnReadyResult(const NActors::TActorContext& ct
3434

3535
TCompactedWriteController::~TCompactedWriteController() {
3636
if (WriteIndexEv && WriteIndexEv->IndexChanges) {
37-
WriteIndexEv->IndexChanges->AbortEmergency();
37+
WriteIndexEv->IndexChanges->AbortEmergency("TCompactedWriteController destructed with WriteIndexEv and WriteIndexEv->IndexChanges");
3838
}
3939
}
4040

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

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

4951
}

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ class TCompactedWriteController : public NColumnShard::IWriteController {
1515
TActorId DstActor;
1616
protected:
1717
void DoOnReadyResult(const NActors::TActorContext& ctx, const NColumnShard::TBlobPutResult::TPtr& putResult) override;
18-
virtual void DoAbort() override;
18+
virtual void DoAbort(const TString& reason) override;
1919
public:
2020
const TBlobsAction& GetBlobsAction();
2121

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

+4-3
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

+1-1
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)