Gabriel39 opened a new pull request, #68630: URL: https://github.com/apache/doris/pull/68630
## What problem does this PR solve? Cancelling or closing an unfinished Arrow Flight result stream stops the client RPC but leaves the BE result producer blocked on backpressure until timeout. Propagate early stream termination to the result buffer and its query context, while preserving normal EOF. Local reads check cancellation while waiting for data. Remote reads interrupt outstanding BRPC waits and send a bounded cancellation request to the result BE. Query cancellation runs outside result-buffer locks and uses a weak reference to the owning query, since the buffer key can be a fragment instance ID. A fetch arriving after cancellation now completes with an error instead of retaining its RPC closure. ## Validation - BE tests cover early close, destruction, normal EOF, blocked local reads, conversion errors, actual Flight RPC cancellation, remote BRPC cancellation, and fetch/cancel ordering. - Added an Arrow Flight regression that reads one batch, closes or cancels the stream, verifies the query's BE pipelines disappear within 20 seconds, and checks connection reuse and normal completion. The query timeout is 120 seconds to keep timeout cleanup from satisfying the assertion. - The regression reproduced the expected blocked result sink on the unfixed local cluster. Full execution against a rebuilt FE/BE cluster is pending CI. - 10 local ASAN tests passed in 10 consecutive runs (100 executions); clang-format 16 and git diff whitespace checks passed. Remote cancellation uses an optional internal request field; during a rolling upgrade, result BEs running older code still rely on their existing timeout cleanup. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
