You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jena.apache.org by "Andy Seaborne (Jira)" <ji...@apache.org> on 2020/03/28 00:10:00 UTC
[jira] [Comment Edited] (JENA-1873) Deadlock issue
[ https://issues.apache.org/jira/browse/JENA-1873?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17069059#comment-17069059 ]
Andy Seaborne edited comment on JENA-1873 at 3/28/20, 12:09 AM:
----------------------------------------------------------------
This is a TopBraid error. Contact TopQuadrant support.
It is the applications responsibility to use {{StoreConnection.expel}} carefully. Overlapping cases are not guaranteed. As the javadoc on {{TDBInternal.releaseDSG}} says "Use with great care."
{{TDBInternal.releaseDSG}} should not be needed in normal operation. Deleting and forcing out of the JVM (which does not work on MS Windows anyway - long time java bug).
By the way: TopQuadrant TBCME release 6.3.1, the latest on their website, contains Jena 3.13.1, not 3.14.0.
was (Author: andy.seaborne):
This is a TopBraid error. Contact TopQuadrant support.
It is the applications responsibility to use {{StoreConnection.expel}} carefully. Overlapping cases are not guaranteed. As the javadoc on {{TDBInternal.releaseDSG}} says "Use with great care."
{{TDBInternal.releaseDSG}} should not be needed in normal operation. Deleting and forcing out of the JVM (which does not work on MS Windows anyway - long time java bug).
> Deadlock issue
> --------------
>
> Key: JENA-1873
> URL: https://issues.apache.org/jira/browse/JENA-1873
> Project: Apache Jena
> Issue Type: Bug
> Components: Jena, TDB
> Affects Versions: Jena 3.14.0
> Reporter: Fabian Polkosnik
> Priority: Major
>
> It is possible to face a deadlock issue when 3 threads are running in parallel. It is possible to face a deadlock issue when 3 threads are running in parallel.
> One of the threads is creating a new TDB dataset. The other two are deleting existing ones. It's resulting in the 3 thread cycle deadlock.
> Here are the stacktraces of 3 threads that are causing the problem.
> {code:java}
> "qtp1726434078-492":
> at org.apache.jena.tdb.sys.TDBInternal.releaseDSG(TDBInternal.java:194) - waiting to lock <0x000000069a6524a0> (a java.lang.Class for org.apache.jena.tdb.sys.TDBInternal)
> at org.apache.jena.tdb.StoreConnection.expel(StoreConnection.java:214) - locked <0x000000069a4568c0> (a java.lang.Class for org.apache.jena.tdb.StoreConnection)
> at org.apache.jena.tdb.StoreConnection.release(StoreConnection.java:202) - locked <0x000000069a4568c0> (a java.lang.Class for org.apache.jena.tdb.StoreConnection)
> at org.topbraid.tdb.TDBGraphs.removeSingleTDB(TDBGraphs.java:167) at org.topbraid.tdb.TDBGraphs.lambda$5(TDBGraphs.java:152) at org.topbraid.tdb.TDBGraphs$$Lambda$677/0x00000008010e2840.run(Unknown Source)
> at org.topbraid.tdb.TDBGraphs.destroy(TDBGraphs.java:92){code}
> {code:java}
> "qtp1726434078-151":
> at org.apache.jena.tdb.StoreConnection.make(StoreConnection.java:240) - waiting to lock <0x000000069a4568c0> (a java.lang.Class for org.apache.jena.tdb.StoreConnection)
> at org.apache.jena.tdb.StoreConnection.make(StoreConnection.java:258) at org.apache.jena.tdb.transaction.DatasetGraphTransaction.<init>(DatasetGraphTransaction.java:69)
> at org.apache.jena.tdb.sys.TDBMaker.createDirect(TDBMaker.java:126) at org.apache.jena.tdb.sys.TDBMaker$$Lambda$682/0x0000000801117840.apply(Unknown Source)
> at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(java.base@11.0.4/ConcurrentHashMap.java:1737) - locked <0x00000006a5cdc880> (a java.util.concurrent.ConcurrentHashMap$Node)
> at org.apache.jena.tdb.sys.TDBMaker._create(TDBMaker.java:112) at org.apache.jena.tdb.sys.TDBMaker.createDatasetGraphTransaction(TDBMaker.java:43){code}
> {code:java}
> "qtp1726434078-95":
> at java.util.concurrent.ConcurrentHashMap.replaceNode(java.base@11.0.4/ConcurrentHashMap.java:1122) - waiting to lock <0x00000006a5cdc880> (a java.util.concurrent.ConcurrentHashMap$Node)
> at java.util.concurrent.ConcurrentHashMap.remove(java.base@11.0.4/ConcurrentHashMap.java:1102) at org.apache.jena.tdb.sys.TDBMaker.uncache(TDBMaker.java:88)
> at org.apache.jena.tdb.sys.TDBInternal.releaseDSG(TDBInternal.java:194) - locked <0x000000069a6524a0> (a java.lang.Class for org.apache.jena.tdb.sys.TDBInternal)
> at org.topbraid.tdb.TDBGraphs.removeSingleTDB(TDBGraphs.java:166) at org.topbraid.tdb.TDBGraphs.lambda$5(TDBGraphs.java:152) at org.topbraid.tdb.TDBGraphs$$Lambda$677/0x00000008010e2840.run(Unknown Source)
> at org.topbraid.tdb.TDBGraphs.destroy(TDBGraphs.java:92){code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)