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

Jason Huynh resolved GEODE-6403.
--------------------------------
    Resolution: Duplicate

Going to resolve this ticket as duplicate of GEODE-6404.  GEODE-6404 can 
probably be written in a way to address GEODE-6403 

> computeIfAbsent is blocking and causing queries to be synchronized
> ------------------------------------------------------------------
>
>                 Key: GEODE-6403
>                 URL: https://issues.apache.org/jira/browse/GEODE-6403
>             Project: Geode
>          Issue Type: Bug
>          Components: querying
>            Reporter: Jason Huynh
>            Assignee: Barry Oglesby
>            Priority: Major
>
> Concurrent queries can be blocked reading attributes/fields/methods from an 
> object.  The implementation to extract the attribute uses a concurrent hash 
> map as a local cache.  computeIfAbsent is used on the local cache and was 
> expected to return if the key was already present (without blocking).  
> Instead it looks like this is not how it behaves pre java 9.  See 
> [https://bugs.openjdk.java.net/browse/JDK-8161372]  
>  
> "Function Execution Processor4" #1057 daemon prio=10 os_prio=31 
> tid=0x00007fdf930cb800 nid=0x11837 runnable [0x000070001238a000]
>  java.lang.Thread.State: RUNNABLE
>  at 
> java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1674)
>  - locked <0x00000007250d1ff8> (a java.util.concurrent.ConcurrentHashMap$Node)
>  at 
> org.apache.geode.cache.query.internal.AttributeDescriptor.getReadMember(AttributeDescriptor.java:149)
>  at 
> org.apache.geode.cache.query.internal.AttributeDescriptor.readReflection(AttributeDescriptor.java:97)
>  at 
> org.apache.geode.cache.query.internal.AttributeDescriptor.read(AttributeDescriptor.java:83)
>  at 
> org.apache.geode.cache.query.internal.PathUtils.evaluateAttribute(PathUtils.java:77)
>  at 
> org.apache.geode.cache.query.internal.CompiledPath.evaluate(CompiledPath.java:147)
>  at 
> org.apache.geode.cache.query.internal.CompiledID.evaluate(CompiledID.java:80)
>  at 
> org.apache.geode.cache.query.internal.CompiledComparison.evaluate(CompiledComparison.java:82)
>  at 
> org.apache.geode.cache.query.internal.QueryUtils.applyCondition(QueryUtils.java:429)
>  at 
> org.apache.geode.cache.query.internal.index.CompactRangeIndex.addToResultsFromEntries(CompactRangeIndex.java:831)
>  at 
> org.apache.geode.cache.query.internal.index.CompactRangeIndex.addToResultsFromEntries(CompactRangeIndex.java:711)



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to