This project demonstrates a bug in the Lettuce Java Redis client, where under certain circumstances the client enters a state where it mixes up the responses from concurrent Redis operations with one another.
In the command line run one of the tests
mvn -Dtest=SpringDataExampleTest#errorSimulation test
mvn -Dtest=PureLettuceSetupTest#errorSimulation test
- The test will start concurrent redis
set
andget
in a multi-threads mode. - A jvm fatal error is thrown randomly during the
set
operation. - The return value of the
get
operation will be polluted with wrong values from otherget
operations. - The test will fail since the number of value mismatching errors should be 0.