This is an automated email from the ASF dual-hosted git repository.

chengpan pushed a commit to branch branch-1.10
in repository https://gitbox.apache.org/repos/asf/kyuubi.git


The following commit(s) were added to refs/heads/branch-1.10 by this push:
     new c3c53f2ff4 [KYUUBI #7035] Close the operation by operation manager to 
prevent operation leak
c3c53f2ff4 is described below

commit c3c53f2ff4dfecfae4801cf9d8b894ef42648eec
Author: Wang, Fei <fwan...@ebay.com>
AuthorDate: Thu Apr 24 14:14:07 2025 +0800

    [KYUUBI #7035] Close the operation by operation manager to prevent 
operation leak
    
    ### Why are the changes needed?
    
    To fix the operation leak if the session init timeout.
    
    1. the operationHandle has not been added into session `opHandleSet` 
(super.runOperation).
    2. The `operation.close()` only close the operation, but it does not remove 
it from `handleToOperation` map.
    3. the session close would not remove the opHandle from `handleToOperation` 
as it has not been added into session `opHandleSet`
    
    So here we can resolve the operation leak by invoking 
`operationManager.closeOperation` to remove the operation handle and close 
session.
    
https://github.com/apache/kyuubi/blob/cc68cb4c852dccd920ba53a4d853aa407ff83faa/kyuubi-server/src/main/scala/org/apache/kyuubi/session/KyuubiSessionImpl.scala#L235-L246
    
    
https://github.com/apache/kyuubi/blob/cc68cb4c852dccd920ba53a4d853aa407ff83faa/kyuubi-common/src/main/scala/org/apache/kyuubi/session/AbstractSession.scala#L100-L103
    
    
https://github.com/apache/kyuubi/blob/cc68cb4c852dccd920ba53a4d853aa407ff83faa/kyuubi-common/src/main/scala/org/apache/kyuubi/operation/OperationManager.scala#L127-L130
    
    
https://github.com/apache/kyuubi/blob/cc68cb4c852dccd920ba53a4d853aa407ff83faa/kyuubi-common/src/main/scala/org/apache/kyuubi/session/AbstractSession.scala#L89-L92
    
    FYI: the operation was added into `handleToOperation` during new operation.
    
https://github.com/apache/kyuubi/blob/cc68cb4c852dccd920ba53a4d853aa407ff83faa/kyuubi-server/src/main/scala/org/apache/kyuubi/operation/KyuubiOperationManager.scala#L56-L64
    
    ### How was this patch tested?
    
    Minor change.
    
    ### Was this patch authored or co-authored using generative AI tooling?
    
    No.
    
    Closes #7035 from turboFei/remove_op.
    
    Closes #7035
    
    3c376833a [Wang, Fei] close by op mgr
    
    Authored-by: Wang, Fei <fwan...@ebay.com>
    Signed-off-by: Cheng Pan <cheng...@apache.org>
    (cherry picked from commit ba854d3c99044835ce1702420c27a78e466ee4dd)
    Signed-off-by: Cheng Pan <cheng...@apache.org>
---
 .../src/main/scala/org/apache/kyuubi/session/KyuubiSessionImpl.scala    | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git 
a/kyuubi-server/src/main/scala/org/apache/kyuubi/session/KyuubiSessionImpl.scala
 
b/kyuubi-server/src/main/scala/org/apache/kyuubi/session/KyuubiSessionImpl.scala
index 519e7881b4..0336f67862 100644
--- 
a/kyuubi-server/src/main/scala/org/apache/kyuubi/session/KyuubiSessionImpl.scala
+++ 
b/kyuubi-server/src/main/scala/org/apache/kyuubi/session/KyuubiSessionImpl.scala
@@ -238,7 +238,7 @@ class KyuubiSessionImpl(
         waitForEngineLaunched()
       } catch {
         case t: Throwable =>
-          operation.close()
+          sessionManager.operationManager.closeOperation(operation.getHandle)
           throw t
       }
       sessionEvent.totalOperations += 1

Reply via email to