-
Bug
-
Resolution: Done
-
Critical
-
14.0.1.Final
-
None
The RESP handler can return results in the incorrect order, causing responses to be incorrect to a client if the client uses a proper non blocking implementation.
For example with lettuce you can do the following:
RedisAsyncCommands<String, String> redis = ...; RedisFuture<String> setFuture = redis.set("1","a"); RedisFuture<String> getFuture = redis.get("foo");
When checking the above results it is possible for the set to receive the result of the get and vice versa depending on the order that they complete. We need to return results in the same order that they were received on the server.