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)

Reply via email to