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

yiguolei pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-2.1 by this push:
     new c033c71aedb [enhancement](cancel) add cancel query ability on be
c033c71aedb is described below

commit c033c71aedb18b8283cb6879f46fdc1f636346de
Author: yiguolei <yiguo...@gmail.com>
AuthorDate: Mon Jun 3 11:43:57 2024 +0800

    [enhancement](cancel) add cancel query ability on be
---
 be/src/service/internal_service.cpp | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/be/src/service/internal_service.cpp 
b/be/src/service/internal_service.cpp
index 6d2f76e4c23..f9f788a1184 100644
--- a/be/src/service/internal_service.cpp
+++ b/be/src/service/internal_service.cpp
@@ -582,7 +582,23 @@ void 
PInternalServiceImpl::cancel_plan_fragment(google::protobuf::RpcController*
         Status st = Status::OK();
 
         const bool has_cancel_reason = request->has_cancel_reason();
-        if (request->has_fragment_id()) {
+        // KILL QUERY need send query directly to BE ignore the fragmentid or 
fragment instance id.
+        // Actully, not need check fragmentid, but should keep stable on 2.1, 
so that only call
+        // cancel_query when queryid is set and fragment id not set.
+        if (request->has_query_id() && !request->has_fragment_id()) {
+            TUniqueId query_id;
+            query_id.__set_hi(request->query_id().hi());
+            query_id.__set_lo(request->query_id().lo());
+            LOG(INFO) << fmt::format(
+                    "Cancel query {}, reason: {}", print_id(query_id),
+                    has_cancel_reason ? 
PPlanFragmentCancelReason_Name(request->cancel_reason())
+                                      : "INTERNAL_ERROR");
+            _exec_env->fragment_mgr()->cancel_query(
+                    query_id,
+                    has_cancel_reason ? request->cancel_reason()
+                                      : 
PPlanFragmentCancelReason::INTERNAL_ERROR,
+                    "cancel query from FE");
+        } else if (request->has_fragment_id()) {
             TUniqueId query_id;
             query_id.__set_hi(request->query_id().hi());
             query_id.__set_lo(request->query_id().lo());


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to