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

feiwang 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 93835008fa [KYUUBI #7015] Record the session disconnected info into 
kyuubi session event
93835008fa is described below

commit 93835008fa5b053c7d48e33d312e67cebc96284f
Author: Wang, Fei <[email protected]>
AuthorDate: Thu Apr 10 00:09:33 2025 -0700

    [KYUUBI #7015] Record the session disconnected info into kyuubi session 
event
    
    ### Why are the changes needed?
    
    Currently, if the kyuubi session between client and kyuubi session 
disconnected without closing properly, it is difficult to debug, and we have to 
check the kyuubi server log.
    
    It is better that, we can record such kind of information into kyuubi 
session event.
    ### How was this patch tested?
    
    IT.
    
    <img width="1264" alt="image" 
src="https://github.com/user-attachments/assets/d2c5b6d0-6298-46ec-9b73-ce648551120c";
 />
    
    ### Was this patch authored or co-authored using generative AI tooling?
    
    No.
    
    Closes #7015 from turboFei/disconnect.
    
    Closes #7015
    
    c95709284 [Wang, Fei] do not post
    e46521410 [Wang, Fei] nit
    bca7f9b7e [Wang, Fei] post
    1cf6f8f49 [Wang, Fei] disconnect
    
    Authored-by: Wang, Fei <[email protected]>
    Signed-off-by: Wang, Fei <[email protected]>
    (cherry picked from commit ec074fd2022ef891b59e8d79bc52879a83af4717)
    Signed-off-by: Wang, Fei <[email protected]>
---
 .../apache/kyuubi/server/KyuubiTBinaryFrontendService.scala  | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git 
a/kyuubi-server/src/main/scala/org/apache/kyuubi/server/KyuubiTBinaryFrontendService.scala
 
b/kyuubi-server/src/main/scala/org/apache/kyuubi/server/KyuubiTBinaryFrontendService.scala
index 2d06bed016..26de2784c9 100644
--- 
a/kyuubi-server/src/main/scala/org/apache/kyuubi/server/KyuubiTBinaryFrontendService.scala
+++ 
b/kyuubi-server/src/main/scala/org/apache/kyuubi/server/KyuubiTBinaryFrontendService.scala
@@ -21,7 +21,7 @@ import java.util.Base64
 
 import org.apache.hadoop.conf.Configuration
 
-import org.apache.kyuubi.KyuubiSQLException
+import org.apache.kyuubi.{KyuubiException, KyuubiSQLException}
 import org.apache.kyuubi.cli.Handle
 import org.apache.kyuubi.config.KyuubiConf
 import 
org.apache.kyuubi.config.KyuubiConf.KYUUBI_SERVER_THRIFT_RESULTSET_DEFAULT_FETCH_SIZE
@@ -69,6 +69,16 @@ final class KyuubiTBinaryFrontendService(
           serverContext: ServerContext,
           input: TProtocol,
           output: TProtocol): Unit = {
+        val handle = serverContext.getSessionHandle
+        if (handle != null) {
+          be.sessionManager
+            .getSessionOption(handle)
+            .map(_.asInstanceOf[KyuubiSessionImpl])
+            .flatMap(_.getSessionEvent).foreach { sessionEvent =>
+              sessionEvent.exception = Some(new KyuubiException(
+                s"Session between client and Kyuubi server disconnected 
without closing properly."))
+            }
+        }
         super.deleteContext(serverContext, input, output)
         MetricsSystem.tracing { ms =>
           ms.decCount(THRIFT_BINARY_CONN_OPEN)

Reply via email to