Closed btwilk closed 1 year ago
Hi @btwilk ! Thank you for this nice bug example. You are totally right, in this case, the binary Randoms for operation type generation and for parameter generation correlate due to the same seed
Let's make the seeds different.
Version: 2.15 I was introducing defects into my code on the expectation that lincheck would detect them and ran into a false negative. Here is a minimal example.
Although these operations are clearly not linearizable, lincheck doesn't detect it. Inspecting one of the generated test cases reveals why:
Every get() is for key 0 and every inc() is for key 1. This is because operation generation and int generation use separate Random instances with the same seed.