Skip to content

Commit b9b1b1c

Browse files
authored
fix(cluster): close output port when bucket work finished (#13870)
1 parent f973897 commit b9b1b1c

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

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

+10-4
Original file line numberDiff line numberDiff line change
@@ -233,12 +233,18 @@ impl Processor for ExchangeShuffleTransform {
233233
return Ok(Event::Finished);
234234
}
235235

236-
if self.finished_inputs == self.inputs.len() && self.buffer.is_all_empty() {
237-
for output in &self.outputs {
238-
output.port.finish();
236+
if self.finished_inputs == self.inputs.len() {
237+
for (index, output) in self.outputs.iter_mut().enumerate() {
238+
if self.buffer.is_empty(index) && output.status != PortStatus::Finished {
239+
self.finished_outputs += 1;
240+
output.status = PortStatus::Finished;
241+
output.port.finish();
242+
}
239243
}
240244

241-
return Ok(Event::Finished);
245+
if self.buffer.is_all_empty() {
246+
return Ok(Event::Finished);
247+
}
242248
}
243249

244250
match self.waiting_outputs.is_empty() {

0 commit comments

Comments
 (0)