Skip to content

Commit 14ca4e7

Browse files
authored
Merge pull request #7590 from zhang2014/hot_fix/donot_kill
fix(cluster): do not to kill the query when the query recv finished.
2 parents c83af2f + b64cc41 commit 14ca4e7

File tree

5 files changed

+16
-14
lines changed

5 files changed

+16
-14
lines changed

src/query/service/src/api/rpc/exchange/statistics_receiver.rs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ impl StatisticsReceiver {
7676
recv = Box::pin(flight_exchange.recv());
7777
}
7878
Err(cause) => {
79-
ctx.get_current_session().force_kill_query();
79+
ctx.get_current_session().force_kill_query(cause.clone());
8080
return Err(cause);
8181
}
8282
};
@@ -90,14 +90,13 @@ impl StatisticsReceiver {
9090
notified = middle;
9191
match Self::recv_data(&ctx, res) {
9292
Ok(true) => {
93-
ctx.get_current_session().force_kill_query();
9493
return Ok(());
9594
}
9695
Ok(false) => {
9796
recv = Box::pin(flight_exchange.recv());
9897
}
9998
Err(cause) => {
100-
ctx.get_current_session().force_kill_query();
99+
ctx.get_current_session().force_kill_query(cause.clone());
101100
return Err(cause);
102101
}
103102
};
@@ -106,7 +105,7 @@ impl StatisticsReceiver {
106105
}
107106

108107
if let Err(cause) = Self::fetch(&ctx, &flight_exchange, recv).await {
109-
ctx.get_current_session().force_kill_query();
108+
ctx.get_current_session().force_kill_query(cause.clone());
110109
return Err(cause);
111110
}
112111

src/query/service/src/interpreters/interpreter_kill.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,9 @@ impl KillInterpreter {
4848
Ok(Box::pin(DataBlockStream::create(schema, None, vec![])))
4949
}
5050
Some(kill_session) => {
51-
kill_session.force_kill_query();
51+
kill_session.force_kill_query(ErrorCode::AbortedQuery(
52+
"Aborted query, because the server is shutting down or the query was killed",
53+
));
5254
let schema = Arc::new(DataSchema::empty());
5355
Ok(Box::pin(DataBlockStream::create(schema, None, vec![])))
5456
}

src/query/service/src/servers/http/v1/query/execute_state.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,9 @@ impl Executor {
197197
Running(r) => {
198198
// release session
199199
if kill {
200-
r.session.force_kill_query();
200+
r.session.force_kill_query(ErrorCode::AbortedQuery(
201+
"Aborted query, because the server is shutting down or the query was killed",
202+
));
201203
}
202204
if let Err(e) = &reason {
203205
r.ctx.set_error(e.clone());

src/query/service/src/sessions/query_ctx_shared.rs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -124,11 +124,8 @@ impl QueryContextShared {
124124
self.query_need_abort.clone()
125125
}
126126

127-
pub fn kill(&self) {
128-
self.set_error(ErrorCode::AbortedQuery(
129-
"Aborted query, because the server is shutting down or the query was killed",
130-
));
131-
127+
pub fn kill(&self, cause: ErrorCode) {
128+
self.set_error(cause);
132129
self.query_need_abort.store(true, Ordering::Release);
133130
let mut sources_abort_handle = self.sources_abort_handle.write();
134131

src/query/service/src/sessions/session.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,15 +106,17 @@ impl Session {
106106
}
107107

108108
pub fn force_kill_session(self: &Arc<Self>) {
109-
self.force_kill_query();
109+
self.force_kill_query(ErrorCode::AbortedQuery(
110+
"Aborted query, because the server is shutting down or the query was killed",
111+
));
110112
self.kill(/* shutdown io stream */);
111113
}
112114

113-
pub fn force_kill_query(self: &Arc<Self>) {
115+
pub fn force_kill_query(self: &Arc<Self>, cause: ErrorCode) {
114116
let session_ctx = self.session_ctx.clone();
115117

116118
if let Some(context_shared) = session_ctx.get_query_context_shared() {
117-
context_shared.kill(/* shutdown executing query */);
119+
context_shared.kill(cause);
118120
}
119121
}
120122

0 commit comments

Comments
 (0)