You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Jason Huynh (JIRA)" <ji...@apache.org> on 2017/06/09 23:40:18 UTC

[jira] [Updated] (GEODE-3021) OQL Index isIndexedPdxKeys potential concurrency issue

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

Jason Huynh updated GEODE-3021:
-------------------------------
    Fix Version/s:     (was: 1.3.0)
                   1.2.0

> OQL Index isIndexedPdxKeys potential concurrency issue
> ------------------------------------------------------
>
>                 Key: GEODE-3021
>                 URL: https://issues.apache.org/jira/browse/GEODE-3021
>             Project: Geode
>          Issue Type: Bug
>          Components: querying
>            Reporter: Jason Huynh
>            Assignee: Jason Huynh
>             Fix For: 1.2.0
>
>
> The boolean isIndexedPdxKeys is set in a synchronized method.  However multiple threads could be making a call to this method, the last caller would set the flag based on it's key, either true or false, but the previous callers could have meant to set it to the opposite.
> This method sets isIndexedPdxKeysFlagSet afterwards and hopes that callers to this method check this flag first.  However, again, multiple threads could have checked this flag, seen it as false, and then all attempted to call the synchronized method.  
> The solution is to probably check the isIndexedPdxKeysFlagSet flag in the method also.  That way, if another thread had already completed setPdxStringFlag(), the next call would be a no-op.
> The current issue will lead to possible class cast exceptions from String to PdxString or vice versa



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)