morningman opened a new pull request, #67735:
URL: https://github.com/apache/doris/pull/67735

   ### What problem does this PR solve?
   
   Issue Number: close #xxx
   
   Related PR: #67734, #67529
   
   Problem Summary:
   
   Two flaky sql cache suites on branch-4.1. Both fail the same way — a sql 
cache entry
   that was primed a moment earlier is gone by the time it is asserted — and 
both were red
   together in p0 build 124525 (`5657 passed / 2 failed`; no crash, no OOM, 
unrelated to
   the PR that build was testing).
   
   **Root cause.** The FE sql cache is a single Caffeine map shared by every 
session
   (`NereidsSqlCacheManager.sqlCaches`), bounded by 
`Config.sql_cache_manage_num`, which
   defaults to **100**. Caffeine admits a newcomer through a window sized at 
**1% of that
   bound**, so at the default the admission window holds a single entry and a 
just cached
   statement is dropped as soon as any other session caches anything.
   `SessionVariable.enableSqlCache` defaults to `true`, so the rest of the p0 
suite running
   concurrently against the same FE is enough. Ordinary LRU pressure is ruled 
out: only 15
   distinct selects ran cluster wide during the 299ms window in which the 
flight suite lost
   its entry. Verified against caffeine 3.2.4:
   
   ```
   maximumSize=100      1 other insert after mine -> survived  7/20
   maximumSize=10000    1 other insert after mine -> survived 20/20
   ```
   
   This is not an FE bug — the cache is best effort and gives no retention 
guarantee.
   
   ### Changes
   
   **1. `arrow_flight_sql_p0/test_sql_cache_over_arrow_flight`** — 
cherry-picked from
   #67734. Raise `sql_cache_manage_num` while the suite runs, as the other five 
sql cache
   suites (`mv_with_sql_cache`, `mtmv_with_sql_cache`, 
`parse_sql_from_sql_cache`,
   `union_all_compensate`, `union_rewrite_grace_big`) already do, and restore 
it afterwards
   so the rest of the run does not keep 10000 cached plans alive in the FE 
heap. This suite
   is identical on master and branch-4.1 and has failed on both.
   
   **2. `query_p0/cache/sql_cache_object_type`** — picks up the hunk that the 
#67556
   backport missed. Master fixed this in #67529 on 2026-09-04 by replacing the 
closing
   `assertTrue(hasSqlCache(objectSql))` with a re-prime, but #67556 backported 
the original
   #67381 version of the file, so branch-4.1 kept the fragile assertion. It has 
failed **18
   times on branch-4.1 since 2026-09-02** and is currently **muted** in 
TeamCity; the three
   most recent failures were all branch-4.1 PRs. After this change the file is 
byte
   identical to master again.
   
   **The TeamCity mute on 
`query_p0.cache.sql_cache_object_type.sql_cache_object_type`
   should be removed once this lands.**
   
   ### Release note
   
   None
   
   ### Check List (For Author)
   
   - Test
       - [x] Regression test
       - [ ] Unit Test
       - [ ] Manual test (add detailed scripts or steps below)
       - [ ] 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
   
   - 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
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)
   
   https://claude.ai/code/session_01Njd8iDxdqc19QbLdNtZ7Pt
   


-- 
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