[
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)