You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Ryan McMahon (JIRA)" <ji...@apache.org> on 2019/03/20 22:15:00 UTC

[jira] [Resolved] (GEODE-6488) Query monitor may not remove all cancellation tasks if query object reused

     [ https://issues.apache.org/jira/browse/GEODE-6488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ryan McMahon resolved GEODE-6488.
---------------------------------
       Resolution: Fixed
    Fix Version/s: 1.9.0

> 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
>            Assignee: Ryan McMahon
>            Priority: Major
>             Fix For: 1.9.0
>
>          Time Spent: 6h
>  Remaining Estimate: 0h
>
> 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)