-
Notifications
You must be signed in to change notification settings - Fork 4.1k
asim: non-deterministic result when overloaded with stores and replicas #105904
Copy link
Copy link
Closed
Closed
Copy link
Labels
A-kv-simulationRelating to allocation simulation.Relating to allocation simulation.C-bugCode not up to spec/doc, specs & docs deemed correct. Solution expected to change code/behavior.Code not up to spec/doc, specs & docs deemed correct. Solution expected to change code/behavior.C-test-failureBroken test (automatically or manually discovered).Broken test (automatically or manually discovered).T-kvKV TeamKV Teamskipped-test
Description
Describe the problem
The allocator simulator exhibits non-determinism when overloaded with a high
number of stores and replicas on nodes.
To Reproduce
- Set the number of stores and replicasPerStore setup in
TestAllocatorSimulatorDeterministicto 11 and 200. - Run
./dev test pkg/kv/kvserver/asim -f TestAllocatorSimulatorDeterministic --ignore-cache --count=500
Additional context
Some observations from playing around:
- This issue seems to be alleviated by gossiping more aggressively. The default
gossip interval is currently set to 10. Changing this value to 1s avoided the failure.
But this doesn’t address the root cause since the result should be deterministic
independent of gossip frequency.
defaultStateExchangeInterval = 10 * time.Second - This issue seems to be only reproducible when both
replicasPerStoreand number
ofstoresare overloaded. If only one is overloaded, the test seems to do fine.
Overloading both parameters might have amplified the exhibited non-deterministic
behavior.
Jira issue: CRDB-29265
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
A-kv-simulationRelating to allocation simulation.Relating to allocation simulation.C-bugCode not up to spec/doc, specs & docs deemed correct. Solution expected to change code/behavior.Code not up to spec/doc, specs & docs deemed correct. Solution expected to change code/behavior.C-test-failureBroken test (automatically or manually discovered).Broken test (automatically or manually discovered).T-kvKV TeamKV Teamskipped-test