Ryan19929 opened a new issue, #67120: URL: https://github.com/apache/doris/issues/67120
### Search before asking - [x] I had searched in the [issues](https://github.com/apache/doris/issues?q=is%3Aissue) and found no similar issues. ### Version - 3.1.4 ### What's Wrong? CCR incremental replication applies upstream rowsets on the target cluster through `IngestBinlog`. For a UNIQUE KEY merge-on-write table, the Shared-Nothing ingest path submits commit-phase delete bitmap work and waits for its asynchronous token, but discards both returned statuses: ```cpp static_cast<void>(BaseTablet::commit_phase_update_delete_bitmap(...)); static_cast<void>(calc_delete_bitmap_token->wait()); ``` If delete bitmap calculation fails—for example, because an allocation is rejected by the system-memory low-water-mark check—the worker logs the error, but `IngestBinlog` can continue to commit the rowset. The version can then be published without the required delete bitmap. MOW reads rely on the persisted delete bitmap instead of performing read-time key merging. Consequently, historical rows for the same unique key can become visible, producing duplicate unique keys with different values or update timestamps. This issue is specific to the Shared-Nothing CCR `IngestBinlog` path. Ordinary load paths use different transaction and publish-version error propagation. There is also a related cleanup gap: the deferred failure handler captured `download_success_files` by value before downloads occurred, so files downloaded by a failed ingest were not included in cleanup. ### What You Expected? Any synchronous submission failure or asynchronous delete bitmap calculation failure must: 1. Be propagated through the `IngestBinlog` response. 2. Abort the local tablet transaction before rowset commit/publish. 3. Leave the failed version invisible. 4. Remove files downloaded by the failed ingest. 5. Allow CCR to retry the same binlog safely. No rowset should become visible unless all required MOW delete bitmap calculations have completed successfully. ### How to Reproduce? _No response_ ### Anything Else? _No response_ ### Are you willing to submit PR? - [x] Yes I am willing to submit a PR! ### Code of Conduct - [x] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct) -- 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]
