Ryan McMahon created GEODE-6488:
-----------------------------------

             Summary: Query monitor may not remove all cancellation tasks if 
query object reused
                 Key: GEODE-6488
                 URL: https://issues.apache.org/jira/browse/GEODE-6488
             Project: Geode
          Issue Type: Bug
          Components: querying
            Reporter: Ryan McMahon


If a query instance is reused and monitored by multiple threads, it is possible 
that the cancellation tasks for each thread get  unscheduled.  This is due to a 
single cancellation task reference on the DefaultQuery which can get 
overwritten if multiple threads are using the same instance.

Scenario:
 # Thread 1 monitors and executes a query, and its cancellation task gets 
assigned to the query instance.
 # Before Thread 1 stops monitoring, thread 2 monitors and executes using the 
same query instance, so Thread 1's cancellation task gets overwritten
 # Both threads request that the query no longer be monitored, but only thread 
2's cancellation task is unscheduled and removed, because we lost thread 1's 
cancellation tasks reference when it was overwritten.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to