diff options
author | a-romanov <a-romanov@yandex-team.ru> | 2022-03-23 15:50:16 +0300 |
---|---|---|
committer | a-romanov <a-romanov@yandex-team.ru> | 2022-03-23 15:50:16 +0300 |
commit | 554541af8c0a724f0ef3cfecf9ff6eee9b2b0c09 (patch) | |
tree | abb2b0ceab740b0a642051307837fad787d7be26 | |
parent | 9ed003cca861d126541e9d3888610796f7e39020 (diff) | |
download | ydb-554541af8c0a724f0ef3cfecf9ff6eee9b2b0c09.tar.gz |
YQ-727 Fix hangs on finish.
ref:37cf30ac087b97510dcaf92dce80b372bfb66efd
-rw-r--r-- | ydb/library/yql/providers/s3/actors/yql_s3_read_actor.cpp | 5 |
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 { |