-
Bug
-
Resolution: Done
-
Major
-
5.1.1.FINAL
-
None
Say we have a HotRod cluster with a JGroups view A1 [A, B]. A client makes a get request to A, and it receives topology id 1, with nodes [A, B].
Another node C joins the HotRod cluster, and the JGroups view becomes A2 [A, B, C]. It takes a certain time for C to finish joining the topology cache, so for a limited amount of time the topology cache on A only contains [A, B].
If the client makes another get request during this time interval, it will receive topology id 2, but still with nodes [A, B]. So its consistent hash will not contain C.
Future requests from the same client will send topology id 2 to the server, so the server will believe that the client's CH is [A, B, C] and won't send another topology update until another JGroups view is installed (because of a join, leave, or merge).
Note that this can happen even if the client had C in its initial host list, because topology updates override the initial host list.