geode-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jason Huynh (JIRA)" <j...@apache.org>
Subject [jira] [Created] (GEODE-3021) OQL Index isIndexedPdxKeys potential concurrency issue
Date Thu, 01 Jun 2017 20:53:04 GMT
Jason Huynh created GEODE-3021:
----------------------------------

             Summary: 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


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)

Mime
View raw message