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)