[bug](overwrite) fix s3 not cleanup files cause get old data#65318
[bug](overwrite) fix s3 not cleanup files cause get old data#65318zhangstar333 wants to merge 3 commits into
Conversation
|
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
|
/review |
39b684e to
f85513b
Compare
|
/review |
|
run buildall |
There was a problem hiding this comment.
I found one blocking issue in the live PR head f85513bdaa908894cbfc5345b839b4e2f4e72836.
Critical checkpoints: the goal is to make S3-compatible listing continue past marker-only pages and fail on non-advancing pagination; the iterator path is covered by the new unit test, but parallel pagination paths are not covered and still have the old token handling. The change is small and focused. No concurrency, lifecycle, new config, persistence, FE-BE protocol, or observability surface is changed. Compatibility is the main concern: malformed COS/OBS/OSS-style pagination can still leave overwrite cleanup incomplete outside the iterator path. I did not run FE tests because this checkout is missing .worktree_initialized and thirdparty/installed/bin/protoc; validation was static plus GitHub PR metadata/diff review.
User focus: no additional focus points were provided. The bundled regression Groovy path is stale for the current live PR; GitHub currently lists only the two FE filesystem files.
Subagent conclusions: optimizer-rewrite found no candidates; tests-session-config found no candidates. MAIN-001 was accepted as the only inline comment. The prior iterator continuation-token issue is duplicate of the existing thread and is addressed by this live patch. Convergence round 1 ended with both subagents replying NO_NEW_VALUABLE_FINDINGS for the same final ledger/comment set.
|
Codex automated review failed and did not complete. Error: Codex completed, but no new pull request review was submitted for the current head SHA. Please inspect the workflow logs and rerun the review after the underlying issue is resolved. |
There was a problem hiding this comment.
Automated review for live head f85513bdaa908894cbfc5345b839b4e2f4e72836.
I reviewed the two changed FE filesystem files and the surrounding S3-compatible listing/delete/rename/glob paths. I am not adding a new inline comment in this run: the only substantiated remaining issue I found is already covered by the existing inline thread at S3CompatibleFileSystem.java:583, which points out that the sibling pagination loops still need the same non-null/non-stale continuation-token guard as the iterator path.
Critical checkpoints:
- Goal and tests: the iterator goal is implemented by draining marker-only pages in
hasNext(), and the new unit test covers the marker-only first-page case. The broader malformed-token behavior is fixed only forObjectStorageFileIterator; the remaining parallel loops are already covered by the existing review thread. - Scope: the change is small and focused.
- Concurrency, lifecycle, config, persistence, FE-BE protocol, and observability: no new surface found in this PR.
- Compatibility and parallel paths: S3-compatible pagination compatibility remains the main risk, but the remaining instances are duplicate of existing review context and were not resubmitted.
- Tests/results: I did not run FE tests because this checkout lacks
.worktree_initialized,thirdparty/installed, andthirdparty/installed/bin/protoc. I did verify the GitHub PR patch withgit apply --check --reverse --whitespace=error. - Performance: no material regression found for the changed iterator path.
User focus: no additional user-provided focus points.
Subagent conclusions: optimizer-rewrite appended no candidates; tests-session-config appended no candidates. MAIN-DUP-001 was recorded as duplicate_of_existing_thread and suppressed from the final inline set. Convergence round 1 ended with both live subagents replying exactly NO_NEW_VALUABLE_FINDINGS for the same ledger/comment set.
f85513b to
5df7993
Compare
5df7993 to
1db5919
Compare
|
run buildall |
What problem does this PR solve?
Problem Summary:
When listing object storage paths, Doris skipped directory marker objects, but the iterator stopped immediately if a listed page became empty after filtering. On COS, the first list page
may contain only the directory marker and still be truncated=true. Doris then failed to fetch the next page, incorrectly treating the directory as empty.
Impact:
For Hive tables on COS, INSERT OVERWRITE cleanup could fail to find existing data files. This could leave old files undeleted, causing overwrite results to include both old and new rows.
In some scan paths, it could also produce empty results because no scan ranges were generated.
Release note
None
Check List (For Author)
Test
Behavior changed:
Does this need documentation?
Check List (For Reviewer who merge this PR)