-
Type:
Bug
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Query Execution
-
Fully Compatible
-
ALL
-
-
0
-
None
-
None
-
None
-
None
-
None
-
None
-
None
QueryKnobSnapshotCache._version is a 8 bit integer, but it needs to be large enough to handle reasonable numbers of query knob updates.
If you update the query knobs more than 256 times the cache version will wrap around and cause a logic error in the cache validity checking logic here. getThreadLocalSnapshot() will report a cache hit and hand back a stale snapshot — even though the real global knob state has since changed multiple times.
I saw this as a flaky CI failure on the all-feature-flags variant, because those pass 60+ setParameters at startup, bringing us closer to the limit.
This bug was introduced 3 weeks ago, so it was never released.