mikebridge commented on PR #40221:
URL: https://github.com/apache/superset/pull/40221#issuecomment-4898056139

   Follow-up to the triage above — the review panel on #41825 surfaced two more 
findings in this branch, both now resolved or characterized:
   
   1. **Forced refresh never replaced the stale *semantic*-cache entry** 
(verified): `_make_cached_dispatch` returned the raw dispatcher on 
`force_query`, bypassing both the read and `store_result` — so other requests' 
containment lookups kept serving the stale entry until TTL. Fixed in **#41826** 
(into this branch): forced queries now skip only the read and store their fresh 
result, with the force test rewritten to pin the full contract (validated to 
fail against the pre-fix mapper). Together with #41825 this makes force-refresh 
fully effective across both cache layers.
   2. **`force_query` also enters `cache_values`** via the contribution-totals 
merge (`query_context_processor.py:346`, `{**cached_query, 
**query.to_dict()}`). Verified consequence is narrower than it first looks: 
nothing rebuilds a QueryContext from `cache_values` (no permanent-bypass path), 
but `QueryContext.cache_key()` (the `qc-` payload key) hashes `cache_values` — 
so on contribution charts, a forced request's payload caches under a divergent 
`qc-` key. Same bug family, low impact; the clean fix would strip 
execution-control keys from that merge or in `QueryContext.cache_key()`. Left 
for this branch's owner to place — happy to do a fourth micro-PR if wanted.


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