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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]