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)