GitHub user sunnychanwork opened a pull request: https://github.com/apache/ignite/pull/3100
IGNITE-5490 Ignite Continuous Query might not send update request During continuous query setup, there are potential updates in flight that would potentially have a situation like this: T1 updates E1, lsnrs!=null, obtain update counter 1 T2 updates E2, lsnrs==null, obtain update counter 2 T3 updates E3, lsnrs!=null, obtain update counter 3 Notice that as E1 E2 and E3 are different there are no locks and they can proceed in parallel. As a result, the sequence of updates being sent to CQManager will be 1,3 with 2 missing and it will wait for update 2 forever which will never come. To fix this I propose to use a ReadWrite lock to ensure that the Map Entry update will complete before setting up new continuous query. You can merge this pull request into a Git repository by running: $ git pull https://github.com/sunnychanwork/ignite IGNITE-5960 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/ignite/pull/3100.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #3100 ---- commit 3cff5cf0ebc282c9300613e4d6726df5dd56ab60 Author: Sunny Chan, CLSA <sunny.c...@clsa.com> Date: 2017-11-28T05:52:14Z IGNITE-5490 use a ReadWrite lock to ensure that the Map Entry update will complete before setting up new continuous query ---- ---