shuke987 opened a new pull request, #65666:
URL: https://github.com/apache/doris/pull/65666
### What problem does this PR solve?
Issue Number: N/A
Related PR: #65261
Problem Summary:
`test_file_cache_statistics` verifies that a repeated Hive Parquet read
reaches
BlockFileCache and increments both `total_hit_counts` and
`total_read_counts`.
PR #65261 made the suite `nonConcurrent`, aggregated counters across cache
paths, and polled asynchronous metrics. However, the final counter assertion
can
still pass or fail with identical relevant code:
- External Regression 995803: PASS, counters `7503/8945 -> 7504/8946`
- External Regression 996006: muted FAIL, the two-counter condition timed out
- External Regression 996177: PASS, counters `7506/8947 -> 7507/8948`
`nonConcurrent` only prevents other suites from running concurrently. It does
not serialize file scan ranges inside one SQL statement. The original query
scans a six-file partitioned table without partition predicates, uses
automatic
pipeline parallelism, and stops at `LIMIT 1`. Which scan ranges perform reads
before cancellation therefore depends on scheduling.
Parquet file page cache is also enabled by default. It can serve cached page
headers and payloads before the underlying file reader reaches
BlockFileCache.
Its admission is selective and uses shared BE cache state. As a result, the
third query may either touch one BlockFileCache block or be completed from
the
upper page cache, while both behaviors return the correct query result.
This is a test isolation issue: a case that asserts BlockFileCache counter
deltas must make the read path deterministic and isolate the cache layer
under
test.
This PR:
- explicitly disables SQL cache, Hive SQL cache, and Parquet file page cache
for
this BlockFileCache statistics case;
- sets `parallel_pipeline_task_num=1` to remove internal scan-instance races;
- adds `nation='cn' and city='beijing'` predicates so the query scans the
single partition file containing the existing expected row.
The output oracle and all file-cache metric assertions are unchanged.
### Release note
None
### Check List (For Author)
- Test
- [x] Regression test
- [ ] Unit Test
- [ ] Manual test
- [ ] No need to test or manual test. Explain why:
- [ ] This is a refactor/code format and no logic has been changed.
- [ ] Previous test can cover this change.
- [ ] No code files have been changed.
- [ ] Other reason
Validation completed:
- `git diff --check`
- standalone Groovy compilation of
`test_file_cache_statistics.groovy` with Awaitility on the classpath
- verified the fixed `cn/beijing` partition returns the existing
golden-output
row, so no expected-output change is required
The full case was not run locally because it depends on the External
Regression
Hive environment. Exact fix-bearing CI validation is pending.
- Behavior changed:
- [x] No.
- [ ] Yes.
- Does this need documentation?
- [x] No.
- [ ] Yes.
### 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]