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]