Uh oh!
There was an error while loading. Please reload this page.
[fix](regression) Disable auto compaction for physical row inspections - #65536
Conversation
### What problem does this PR solve? Issue Number: close #xxx Related PR: apache#65211, apache#64508 Problem Summary: Regression cases that bypass the delete bitmap and assert historical physical rows can race with background compaction. Compaction may merge the expected old rowsets before the assertion while the user-visible result remains correct. Disable table-level auto compaction only for cases and table definitions that intentionally inspect those physical versions. ### Release note None ### Check List (For Author) - Test: Regression test - `test_flexible_partial_update_publish_conflict_seq` - Behavior changed: No - Does this need documentation: No
shuke987
commented
Jul 13, 2026
/review |
shuke987
commented
Jul 13, 2026
run buildall |
hello-stephen
commented
Jul 13, 2026
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
There was a problem hiding this comment.
Reviewed the PR at f7f58a9a4c1ac49f1696ad7f6c25d5df0f94dfee against base 2c5f1574737970b6123c1f0ac24d14a36f366381. I do not see a blocking issue.
Checkpoint conclusions:
- Goal and proof: The PR's goal is to stabilize regression tests that intentionally inspect pre-compaction physical rows for unique-key MoW partial-update/publish behavior. The added table property is applied to tables that later use
skip_delete_bitmap,skip_delete_sign,qt_inspect/inspect_rows, hidden version columns, or equivalent physical-row assertions. - Scope: The patch is narrowly limited to regression table properties plus newline normalization. No production code or golden result rows are changed.
- Concurrency and lifecycle: No runtime concurrency code is changed. Existing publish/debug-point concurrency in the tests remains the same; the new property only prevents background compaction from removing rowsets that the tests intentionally inspect.
- Configuration and compatibility:
disable_auto_compactionis an existing table property. The FE create-table path stores it in table metadata, shared-nothing tablets receive it through tablet schema creation, and cloud tablet meta/scheduler paths also honor it. The property remains applicable through stream-load publish and table truncate/reuse flows. - Parallel paths and coverage: I checked related
skip_delete_bitmap/qt_inspect/physical-row cases. The remaining no-property suites usingskip_delete_bitmapare binlog TVF, insert execution setup, routine-load waiting, or MV debug-mode validation, not comparable historical-row inspection cases. - Test result files: The corresponding
.outfiles contain no DDL,SHOW CREATE TABLE,PROPERTIES, ordisable_auto_compactionoutput, so the unchanged golden files are consistent with this patch. - Data correctness, persistence, performance, and observability: No data-path, persistence-format, metric, or logging behavior is changed. The compaction disablement is scoped to regression test tables.
I did not run builds or regression tests in this review-only runner. The review was completed with one convergence round: the main review plus two full-review subagents and one risk-focused subagent all returned no new valuable findings, and there are no unresolved candidates or inline comments.
User focus: no additional user-provided review focus was supplied.
Uh oh!
There was an error while loading. Please reload this page.
apache#65536) Related PR: apache#65211, apache#64508 Problem Summary: Some unique-key MOW regression cases deliberately bypass the delete bitmap and assert historical physical rows, sequence values, skip bitmaps, and rowset versions. These assertions require the pre-compaction rowsets to remain available, but the affected tables leave automatic compaction enabled. Background compaction can therefore merge the expected old rowsets before `qt_inspect` or an equivalent raw-row query runs, while all user-visible SQL results remain correct. This PR disables table-level automatic compaction only for the tables whose assertions intentionally depend on historical physical layout. It covers nine case files, including publish-conflict, read-from-old, delete-sign, sequence-column, and auto-increment physical-row checks. Golden results and user-visible correctness assertions are unchanged. The source scan reviewed all master cases that set `skip_delete_bitmap=true` without already disabling automatic compaction. Four remaining files were intentionally excluded because the variable is used only for debug-mode validation, routine-load waiting, insert execution setup, or binlog TVF behavior; they do not assert historical table rowsets.
What problem does this PR solve?
Issue Number: N/A
Related PR: #65211, #64508
Problem Summary:
Some unique-key MOW regression cases deliberately bypass the delete bitmap and assert historical physical rows, sequence values, skip bitmaps, and rowset versions. These assertions require the pre-compaction rowsets to remain available, but the affected tables leave automatic compaction enabled. Background compaction can therefore merge the expected old rowsets before
qt_inspector an equivalent raw-row query runs, while all user-visible SQL results remain correct.This PR disables table-level automatic compaction only for the tables whose assertions intentionally depend on historical physical layout. It covers nine case files, including publish-conflict, read-from-old, delete-sign, sequence-column, and auto-increment physical-row checks. Golden results and user-visible correctness assertions are unchanged.
The source scan reviewed all master cases that set
skip_delete_bitmap=truewithout already disabling automatic compaction. Four remaining files were intentionally excluded because the variable is used only for debug-mode validation, routine-load waiting, insert execution setup, or binlog TVF behavior; they do not assert historical table rowsets.Release note
None
Check List (For Author)
Test
Validation:
test_flexible_partial_update_publish_conflict_seqpassed as one lock-serialized suite on the authorized branch-4.1 test cluster using the patched master case file. The run confirmed the new table property inSHOW CREATE TABLEand completed all logical and physical-row assertions with 0 failed suites.git diff --check origin/master...HEADalso passed.Behavior changed:
Does this need documentation?
Check List (For Reviewer who merge this PR)