geode-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF subversion and git services (JIRA)" <>
Subject [jira] [Commented] (GEODE-3021) OQL Index isIndexedPdxKeys potential concurrency issue
Date Tue, 06 Jun 2017 17:15:18 GMT


ASF subversion and git services commented on GEODE-3021:

Commit c2943a4acb9c9325662a4cbee14823e0a1c05061 in geode's branch refs/heads/feature/GEODE-3021
from [~huynhja]
[;h=c2943a4 ]

GEODE-3021: Any call after the first to setPdxStringFlag should no-op

  * The flag isIndexedPdxKeysFlagSet is now checked before setting pdx string flag

> OQL Index isIndexedPdxKeys potential concurrency issue
> ------------------------------------------------------
>                 Key: GEODE-3021
>                 URL:
>             Project: Geode
>          Issue Type: Bug
>          Components: querying
>            Reporter: Jason Huynh
>            Assignee: 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

View raw message