diff options
author | chertus <azuikov@ydb.tech> | 2023-07-10 19:11:52 +0300 |
---|---|---|
committer | chertus <azuikov@ydb.tech> | 2023-07-10 19:11:52 +0300 |
commit | 0865c5795c868fd7df87de6be77a3c75ab3cfcdd (patch) | |
tree | 0d035a79c82fd652b212f9c5e5b73d7625bc842c | |
parent | 917fa4823301c1f75da1939d01e1362445c54767 (diff) | |
download | ydb-0865c5795c868fd7df87de6be77a3c75ab3cfcdd.tar.gz |
KIKIMR-18683 fix eviction logic in case of blob reading error
-rw-r--r-- | ydb/core/tx/columnshard/export_actor.cpp | 18 |
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); } }; |