From f6812d29f1d05f0f450abc753020b33d0c43790d Mon Sep 17 00:00:00 2001 From: "taylor.fan" Date: Mon, 12 Jan 2026 19:44:54 +0800 Subject: [PATCH 1/2] [KYUUBI #7301] Fix engine not killed after deregisterEngine (cherry picked from commit b6b05e9cc9169f927c242dff8581883012b6ccb7) --- .../scala/org/apache/kyuubi/engine/EngineRef.scala | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/kyuubi-server/src/main/scala/org/apache/kyuubi/engine/EngineRef.scala b/kyuubi-server/src/main/scala/org/apache/kyuubi/engine/EngineRef.scala index 0aa83662352..6bf37aced80 100644 --- a/kyuubi-server/src/main/scala/org/apache/kyuubi/engine/EngineRef.scala +++ b/kyuubi-server/src/main/scala/org/apache/kyuubi/engine/EngineRef.scala @@ -367,6 +367,18 @@ private[kyuubi] class EngineRef( val msg = s"Deleting engine node:$sn" info(msg) discoveryClient.delete(s"$engineSpace/${sn.nodeName}") + + if (shareLevel != CONNECTION && builder != null) { + try { + val appMgrInfo = builder.appMgrInfo() + engineManager.killApplication(appMgrInfo, engineRefId, Some(appUser)) + info(s"Killed engine process for $engineRefId with share level $shareLevel") + } catch { + case e: Exception => + warn(s"Error killing engine process for $engineRefId", e) + } + } + (true, msg) } else { val msg = s"Engine node:$sn is not matched with host&port[$hostPort]" From b1501cf37fe4bd4a9a2ab7e5aec8707a419f5c73 Mon Sep 17 00:00:00 2001 From: "taylor.fan" Date: Fri, 16 Jan 2026 14:01:41 +0800 Subject: [PATCH 2/2] [KYUUBI #7301] update check condition --- .../src/main/scala/org/apache/kyuubi/engine/EngineRef.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kyuubi-server/src/main/scala/org/apache/kyuubi/engine/EngineRef.scala b/kyuubi-server/src/main/scala/org/apache/kyuubi/engine/EngineRef.scala index 6bf37aced80..4c2777ba713 100644 --- a/kyuubi-server/src/main/scala/org/apache/kyuubi/engine/EngineRef.scala +++ b/kyuubi-server/src/main/scala/org/apache/kyuubi/engine/EngineRef.scala @@ -368,7 +368,7 @@ private[kyuubi] class EngineRef( info(msg) discoveryClient.delete(s"$engineSpace/${sn.nodeName}") - if (shareLevel != CONNECTION && builder != null) { + if (shareLevel != CONNECTION && builder != null && engineManager != null) { try { val appMgrInfo = builder.appMgrInfo() engineManager.killApplication(appMgrInfo, engineRefId, Some(appUser))