sollhui opened a new pull request, #67674:
URL: https://github.com/apache/doris/pull/67674
### What problem does this PR solve?
Cancelling an MOW load through `DeltaWriter::cancel_with_status()` currently
stops MemTable flushing but leaves delete bitmap work queued until the rowset
builder/writer is destroyed. Under a backlog, cancelled loads can continue
consuming delete bitmap workers.
Propagate explicit cancellation from DeltaWriter to the rowset builder,
including the for-load token owned by the rowset writer and the builder-owned
calculation token. Local and cloud row-binlog group builders forward
cancellation to both children. Stop MemTable flush tasks first so they cannot
enqueue more bitmap work during cancellation.
Record the cancellation status before shutting down a bitmap token,
preserving any earlier calculation failure. Subsequent submissions and `wait()`
return the failure instead of treating discarded work as successful. Running
tasks retain the existing synchronous shutdown semantics and finish before
cancellation returns; this change does not make channel-lock waits or in-flight
I/O preemptible.
### Release note
Explicitly cancelled MOW loads now discard queued delete bitmap work without
waiting for writer destruction.
### Check List (For Author)
- Test
- [x] Unit Test: added 12 parameterized cases covering local/cloud and
ordinary/row-binlog group writers: cancellation before initialization, removal
of both phases of queued work, repeat cancellation, rejected resubmission, and
preservation of an earlier calculation failure.
- Local execution attempted with `bash run-be-ut.sh --run
--filter='*DeltaWriterCancelTest*' -j 6`. Configuration succeeded, but the
build is blocked by the pre-existing local third-party installation missing
`libarrow_compute.a`; the tests have not executed.
- clang-tidy could not complete: the repository wrapper requires Bash 4+
(this host has Bash 3.2), and a direct attempt with the installed clang-tidy 16
fails on existing toolchain/PCH/JNI diagnostics.
- Changed-file clang-format 16 check, `git diff --check`, and
`build-support/check-build-hygiene.sh` passed.
- Behavior changed:
- [x] Yes. Explicit cancellation reaches both delete bitmap token owners
and preserves failure status.
- Does this need documentation?
- [x] No.
### Check List (For Reviewer who merge this PR)
- [ ] Confirm the release note
- [ ] Confirm test cases
- [ ] Confirm document
- [ ] Add branch pick label
--
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]