diff options
author | va-kuznecov <va-kuznecov@ydb.tech> | 2023-01-31 13:00:56 +0300 |
---|---|---|
committer | va-kuznecov <va-kuznecov@ydb.tech> | 2023-01-31 13:00:56 +0300 |
commit | 43ee08dedffa96b74c1b85b2993b891e236f6fd2 (patch) | |
tree | 82c9f391e15b90c4a133be2112fb5875571e6dab | |
parent | bfc4889dce7f30e1bf2fef4fb6d9d079c1cbb105 (diff) | |
download | ydb-43ee08dedffa96b74c1b85b2993b891e236f6fd2.tar.gz |
Fix session_actor's handling of TEvCloseSessionRequest in CleanupState
-rw-r--r-- | ydb/core/kqp/session_actor/kqp_session_actor.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/ydb/core/kqp/session_actor/kqp_session_actor.cpp b/ydb/core/kqp/session_actor/kqp_session_actor.cpp index 496470b1592..b9835c8e873 100644 --- a/ydb/core/kqp/session_actor/kqp_session_actor.cpp +++ b/ydb/core/kqp/session_actor/kqp_session_actor.cpp @@ -1967,8 +1967,14 @@ public: PassAway(); } else { CleanupCtx.reset(); + bool doNotKeepSession = QueryState && !QueryState->KeepSession; QueryState.reset(); - Become(&TKqpSessionActor::ReadyState); + if (doNotKeepSession) { + // TEvCloseSessionRequest was received in final=false CleanupState, so actor should rerun Cleanup with final=true + CleanupAndPassAway(); + } else { + Become(&TKqpSessionActor::ReadyState); + } } ExecuterId = TActorId{}; } |