aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorchertus <azuikov@ydb.tech>2023-07-10 19:11:52 +0300
committerchertus <azuikov@ydb.tech>2023-07-10 19:11:52 +0300
commit0865c5795c868fd7df87de6be77a3c75ab3cfcdd (patch)
tree0d035a79c82fd652b212f9c5e5b73d7625bc842c
parent917fa4823301c1f75da1939d01e1362445c54767 (diff)
downloadydb-0865c5795c868fd7df87de6be77a3c75ab3cfcdd.tar.gz
KIKIMR-18683 fix eviction logic in case of blob reading error
-rw-r--r--ydb/core/tx/columnshard/export_actor.cpp18
1 files changed, 11 insertions, 7 deletions
diff --git a/ydb/core/tx/columnshard/export_actor.cpp b/ydb/core/tx/columnshard/export_actor.cpp
index 679987efcdd..61503bb003e 100644
--- a/ydb/core/tx/columnshard/export_actor.cpp
+++ b/ydb/core/tx/columnshard/export_actor.cpp
@@ -33,10 +33,8 @@ public:
<< " at tablet " << TabletId << " (export)");
BlobsToRead.erase(blobId);
- Event->Status = event.Status;
- if (Event->Status == NKikimrProto::UNKNOWN) {
- Event->Status = NKikimrProto::ERROR;
- }
+ Event->AddResult(blobId, blobId.ToStringNew(), true,
+ TStringBuilder() << "cannot read, status " << NKikimrProto::EReplyStatus_Name(event.Status));
return;
}
@@ -103,9 +101,15 @@ private:
}
void SendResultAndDie(const TActorContext& ctx) {
- auto s3Actor = Event->DstActor;
- Event->DstActor = Parent;
- ctx.Send(s3Actor, Event.release());
+ if (Event->Status == NKikimrProto::UNKNOWN) {
+ auto s3Actor = Event->DstActor;
+ Event->DstActor = Parent;
+ ctx.Send(s3Actor, Event.release());
+ } else {
+ Y_VERIFY(Event->Status == NKikimrProto::ERROR);
+ Event->DstActor = Parent;
+ ctx.Send(Parent, Event.release());
+ }
Die(ctx);
}
};