aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authora-romanov <a-romanov@yandex-team.ru>2022-03-23 15:50:16 +0300
committera-romanov <a-romanov@yandex-team.ru>2022-03-23 15:50:16 +0300
commit554541af8c0a724f0ef3cfecf9ff6eee9b2b0c09 (patch)
treeabb2b0ceab740b0a642051307837fad787d7be26
parent9ed003cca861d126541e9d3888610796f7e39020 (diff)
downloadydb-554541af8c0a724f0ef3cfecf9ff6eee9b2b0c09.tar.gz
YQ-727 Fix hangs on finish.
ref:37cf30ac087b97510dcaf92dce80b372bfb66efd
-rw-r--r--ydb/library/yql/providers/s3/actors/yql_s3_read_actor.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/ydb/library/yql/providers/s3/actors/yql_s3_read_actor.cpp b/ydb/library/yql/providers/s3/actors/yql_s3_read_actor.cpp
index 4c3dc66c270..86fbfec2772 100644
--- a/ydb/library/yql/providers/s3/actors/yql_s3_read_actor.cpp
+++ b/ydb/library/yql/providers/s3/actors/yql_s3_read_actor.cpp
@@ -290,11 +290,15 @@ public:
{}
bool Next(NUdf::TUnboxedValue& value) {
+ if (Finished)
+ return false;
+
TypeEnv.GetAllocator().Release();
const auto ev = WaitForSpecificEvent<TEvPrivate::TEvReadResult, TEvPrivate::TEvReadError, TEvPrivate::TEvReadFinished>();
TypeEnv.GetAllocator().Acquire();
switch (const auto etype = ev->GetTypeRewrite()) {
case TEvPrivate::TEvReadFinished::EventType:
+ Finished = true;
return false;
case TEvPrivate::TEvReadError::EventType:
Send(ComputeActorId, new IDqSourceActor::TEvSourceError(InputIndex, ev->Get<TEvPrivate::TEvReadError>()->Error, true));
@@ -354,6 +358,7 @@ private:
const TString Format, RowType, Compression;
const NActors::TActorId ComputeActorId;
TOutput::TPtr Outputs;
+ bool Finished = false;
};
class TS3ReadCoroActor : public TActorCoro {