zclllyybb opened a new pull request, #63331: URL: https://github.com/apache/doris/pull/63331
Problem Summary: The real queue mutation paths all re-check _is_cancelled before touching _block_queue, but cancel() still used a two-lock pattern and close() ran delayed RPC done callbacks while holding the queue mutex. That made ownership of queued BlockItem callbacks harder to reason about and left some debug reads of queue state outside the mutex. This change makes cancel() and close() move queued BlockItems into a local list while holding _lock, then runs call_done() after the member queue is fully detached and the lock is released. It also locks get_batch()'s debug-only invariant read and debug_string()'s queue-state read. -- 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]
