diff --git a/fe/fe-core/src/main/java/org/apache/doris/cloud/CacheHotspotManagerUtils.java b/fe/fe-core/src/main/java/org/apache/doris/cloud/CacheHotspotManagerUtils.java index 48a2d8c060c8ee..b946798244383b 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/cloud/CacheHotspotManagerUtils.java +++ b/fe/fe-core/src/main/java/org/apache/doris/cloud/CacheHotspotManagerUtils.java @@ -266,7 +266,7 @@ public AutoCloseConnectContext(ConnectContext connectContext) { @Override public void close() { - ConnectContext.remove(); + connectContext.cleanup(); if (previousContext != null) { previousContext.setThreadLocalInfo(); } diff --git a/fe/fe-core/src/main/java/org/apache/doris/cloud/CloudWarmUpJob.java b/fe/fe-core/src/main/java/org/apache/doris/cloud/CloudWarmUpJob.java index 90f61fbfb75cef..360697656ef2d4 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/cloud/CloudWarmUpJob.java +++ b/fe/fe-core/src/main/java/org/apache/doris/cloud/CloudWarmUpJob.java @@ -489,7 +489,7 @@ public synchronized void run() { } finally { if (Config.isCloudMode()) { LOG.debug("remove context from job"); - ConnectContext.remove(); + ConnectContext.get().cleanup(); } } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/load/routineload/RoutineLoadJob.java b/fe/fe-core/src/main/java/org/apache/doris/load/routineload/RoutineLoadJob.java index 41b476ddc6f776..e604403b0c3921 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/load/routineload/RoutineLoadJob.java +++ b/fe/fe-core/src/main/java/org/apache/doris/load/routineload/RoutineLoadJob.java @@ -1066,7 +1066,7 @@ public TPipelineFragmentParams plan(NereidsStreamLoadPlanner planner, TUniqueId return planParams; } finally { if (needCleanCtx) { - ConnectContext.remove(); + ConnectContext.get().cleanup(); } table.readUnlock(); } diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/AutoCloseConnectContext.java b/fe/fe-core/src/main/java/org/apache/doris/qe/AutoCloseConnectContext.java index 0c400950c58052..ae7d347bf7dd41 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/qe/AutoCloseConnectContext.java +++ b/fe/fe-core/src/main/java/org/apache/doris/qe/AutoCloseConnectContext.java @@ -37,7 +37,7 @@ public void call() { @Override public void close() { connectContext.clear(); - ConnectContext.remove(); + connectContext.cleanup(); if (previousContext != null) { previousContext.setThreadLocalInfo(); } diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectContext.java b/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectContext.java index 03dac4a899dd1c..d16bcb68d4a6c2 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectContext.java +++ b/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectContext.java @@ -327,6 +327,9 @@ public static ConnectContext get() { return MoreFieldsThread.getConnectContext(); } + // This method is used to remove ConnectContext from current thread, but do not clean up resource used. + // if you finish the whole job, should call cleanup method directly. Call this remove method + // only in the tmp state during job. public static void remove() { MoreFieldsThread.removeConnectContext(); } diff --git a/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java b/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java index 3a1f56c7672984..cae2de8e6c44d1 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java +++ b/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java @@ -1121,7 +1121,7 @@ public TMasterOpResult forward(TMasterOpRequest params) throws TException { } else { context.getState().setOk(); } - ConnectContext.remove(); + context.cleanup(); clearCallback.run(); return result; } @@ -3255,7 +3255,7 @@ private TRestoreSnapshotResult restoreSnapshotImpl(TRestoreSnapshotRequest reque status.setStatusCode(TStatusCode.INTERNAL_ERROR); status.addToErrorMsgs(Strings.nullToEmpty(e.getMessage()) + ", command: " + restoreCommand); } finally { - ConnectContext.remove(); + ConnectContext.get().cleanup(); } return result; @@ -4447,7 +4447,7 @@ public TFetchLoadJobResult fetchLoadJob(TFetchLoadJobRequest request) { return result; } finally { - ConnectContext.remove(); + ctx.cleanup(); } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/service/arrowflight/FlightSqlConnectProcessor.java b/fe/fe-core/src/main/java/org/apache/doris/service/arrowflight/FlightSqlConnectProcessor.java index 2e5dfb3259e28a..9192b5cee4d721 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/service/arrowflight/FlightSqlConnectProcessor.java +++ b/fe/fe-core/src/main/java/org/apache/doris/service/arrowflight/FlightSqlConnectProcessor.java @@ -201,6 +201,6 @@ public void close() throws Exception { returnResultFromRemoteExecutor.clear(); executor.finalizeQuery(); ctx.clear(); - ConnectContext.remove(); + ctx.cleanup(); } }