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]

Reply via email to