You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jena.apache.org by "Simon Helsen (JIRA)" <ji...@apache.org> on 2012/08/16 23:53:38 UTC
[jira] [Created] (JENA-299) LeaveCriticalSection Error
Simon Helsen created JENA-299:
---------------------------------
Summary: LeaveCriticalSection Error
Key: JENA-299
URL: https://issues.apache.org/jira/browse/JENA-299
Project: Apache Jena
Issue Type: Bug
Components: TDB
Affects Versions: TDB 0.9.3, TDB 0.9.4
Environment: windows 64 bit
Reporter: Simon Helsen
Priority: Critical
I have attached a standalone test case, which, when run with the latest snapshot produces the following exception:
Exception in thread "main" com.hp.hpl.jena.shared.JenaException: leaveCriticalSection: No lock held (main) Thread R/W: 0/0 :: Model R/W: 0/0 (thread: main)
at com.hp.hpl.jena.shared.LockMRSW.leaveCriticalSection(LockMRSW.java:175)
at com.hp.hpl.jena.tdb.transaction.TransactionManager$TSM_WriteBackEndTxn.readerFinishes(TransactionManager.java:210)
at com.hp.hpl.jena.tdb.transaction.TransactionManager.readerFinishes(TransactionManager.java:723)
at com.hp.hpl.jena.tdb.transaction.TransactionManager.noteTxnAbort(TransactionManager.java:587)
at com.hp.hpl.jena.tdb.transaction.TransactionManager.notifyAbort(TransactionManager.java:445)
at com.hp.hpl.jena.tdb.transaction.Transaction.abort(Transaction.java:162)
at com.hp.hpl.jena.tdb.transaction.DatasetGraphTxn.abort(DatasetGraphTxn.java:45)
at com.hp.hpl.jena.tdb.transaction.DatasetGraphTransaction._abort(DatasetGraphTransaction.java:156)
at com.hp.hpl.jena.tdb.migrate.DatasetGraphTrackActive.abort(DatasetGraphTrackActive.java:68)
at com.hp.hpl.jena.sparql.core.DatasetImpl.abort(DatasetImpl.java:149)
at com.ibm.jena.test.LeaveCriticalSectionErrorTest.storeOperation(LeaveCriticalSectionErrorTest.java:57)
at com.ibm.jena.test.LeaveCriticalSectionErrorTest.query1(LeaveCriticalSectionErrorTest.java:105)
at com.ibm.jena.test.LeaveCriticalSectionErrorTest.main(LeaveCriticalSectionErrorTest.java:156)
The sequence in the test case is to run 2 queries, 1 write and then again 2 queries:
test.query1();
test.query1();
test.write1();
test.query1();
test.query1();
Somehow, the following sequence did not produce the exception:
test.query1();
test.query1();
test.write1();
test.query1();
Note that the test case does not check the correctness of any results.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (JENA-299) LeaveCriticalSection Error
Posted by "Andy Seaborne (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JENA-299?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13437289#comment-13437289 ]
Andy Seaborne commented on JENA-299:
------------------------------------
Logging: turn the system log "TDB" or the TransactionManager class log. Either will cause the transaction cycle to be logged.
Internally, TDB used thread local variables for a transaction. If you use a Dataset on another thread it must be a separate transaction. You will probably get an error otherwise because once used transactionally, it must always be used transactionally.
A non-active transaction is one that has finished. Transaction don't exist before they start - potentially that might change and then "not active" means not between begin-commit/abort/end.
> LeaveCriticalSection Error
> --------------------------
>
> Key: JENA-299
> URL: https://issues.apache.org/jira/browse/JENA-299
> Project: Apache Jena
> Issue Type: Bug
> Components: TDB
> Affects Versions: TDB 0.9.4
> Environment: windows 64 bit
> Reporter: Simon Helsen
> Assignee: Andy Seaborne
> Priority: Critical
> Fix For: TDB 0.9.4
>
> Attachments: LeaveCriticalSectionTestCase.zip
>
>
> I have attached a standalone test case, which, when run with the latest snapshot produces the following exception:
> Exception in thread "main" com.hp.hpl.jena.shared.JenaException: leaveCriticalSection: No lock held (main) Thread R/W: 0/0 :: Model R/W: 0/0 (thread: main)
> at com.hp.hpl.jena.shared.LockMRSW.leaveCriticalSection(LockMRSW.java:175)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager$TSM_WriteBackEndTxn.readerFinishes(TransactionManager.java:210)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.readerFinishes(TransactionManager.java:723)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.noteTxnAbort(TransactionManager.java:587)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.notifyAbort(TransactionManager.java:445)
> at com.hp.hpl.jena.tdb.transaction.Transaction.abort(Transaction.java:162)
> at com.hp.hpl.jena.tdb.transaction.DatasetGraphTxn.abort(DatasetGraphTxn.java:45)
> at com.hp.hpl.jena.tdb.transaction.DatasetGraphTransaction._abort(DatasetGraphTransaction.java:156)
> at com.hp.hpl.jena.tdb.migrate.DatasetGraphTrackActive.abort(DatasetGraphTrackActive.java:68)
> at com.hp.hpl.jena.sparql.core.DatasetImpl.abort(DatasetImpl.java:149)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.storeOperation(LeaveCriticalSectionErrorTest.java:57)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.query1(LeaveCriticalSectionErrorTest.java:105)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.main(LeaveCriticalSectionErrorTest.java:156)
> The sequence in the test case is to run 2 queries, 1 write and then again 2 queries:
> test.query1();
> test.query1();
> test.write1();
> test.query1();
> test.query1();
> Somehow, the following sequence did not produce the exception:
> test.query1();
> test.query1();
> test.write1();
> test.query1();
> Note that the test case does not check the correctness of any results.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (JENA-299) LeaveCriticalSection Error
Posted by "Andy Seaborne (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JENA-299?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13437290#comment-13437290 ]
Andy Seaborne commented on JENA-299:
------------------------------------
Your test case had two oddities:
1/ Call QueryExecution after .commit()
As it was create inside a transaction, it should be only manipulated inside.
2/ Repeated TDBFactory.createDataset(this.location) - it is a bit cheaper to use the same Dataset.
As the internal structures are cached-per-location, this is a minor saving but better represents how it works. A dataset can be used on multiple therads, with multiple transactions, one per thread.
> LeaveCriticalSection Error
> --------------------------
>
> Key: JENA-299
> URL: https://issues.apache.org/jira/browse/JENA-299
> Project: Apache Jena
> Issue Type: Bug
> Components: TDB
> Affects Versions: TDB 0.9.4
> Environment: windows 64 bit
> Reporter: Simon Helsen
> Assignee: Andy Seaborne
> Priority: Critical
> Fix For: TDB 0.9.4
>
> Attachments: LeaveCriticalSectionTestCase.zip
>
>
> I have attached a standalone test case, which, when run with the latest snapshot produces the following exception:
> Exception in thread "main" com.hp.hpl.jena.shared.JenaException: leaveCriticalSection: No lock held (main) Thread R/W: 0/0 :: Model R/W: 0/0 (thread: main)
> at com.hp.hpl.jena.shared.LockMRSW.leaveCriticalSection(LockMRSW.java:175)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager$TSM_WriteBackEndTxn.readerFinishes(TransactionManager.java:210)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.readerFinishes(TransactionManager.java:723)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.noteTxnAbort(TransactionManager.java:587)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.notifyAbort(TransactionManager.java:445)
> at com.hp.hpl.jena.tdb.transaction.Transaction.abort(Transaction.java:162)
> at com.hp.hpl.jena.tdb.transaction.DatasetGraphTxn.abort(DatasetGraphTxn.java:45)
> at com.hp.hpl.jena.tdb.transaction.DatasetGraphTransaction._abort(DatasetGraphTransaction.java:156)
> at com.hp.hpl.jena.tdb.migrate.DatasetGraphTrackActive.abort(DatasetGraphTrackActive.java:68)
> at com.hp.hpl.jena.sparql.core.DatasetImpl.abort(DatasetImpl.java:149)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.storeOperation(LeaveCriticalSectionErrorTest.java:57)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.query1(LeaveCriticalSectionErrorTest.java:105)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.main(LeaveCriticalSectionErrorTest.java:156)
> The sequence in the test case is to run 2 queries, 1 write and then again 2 queries:
> test.query1();
> test.query1();
> test.write1();
> test.query1();
> test.query1();
> Somehow, the following sequence did not produce the exception:
> test.query1();
> test.query1();
> test.write1();
> test.query1();
> Note that the test case does not check the correctness of any results.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (JENA-299) LeaveCriticalSection Error
Posted by "Simon Helsen (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JENA-299?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13438986#comment-13438986 ]
Simon Helsen commented on JENA-299:
-----------------------------------
just after I wrote this I noticed it is bound to the debug level, so ignore my question
> LeaveCriticalSection Error
> --------------------------
>
> Key: JENA-299
> URL: https://issues.apache.org/jira/browse/JENA-299
> Project: Apache Jena
> Issue Type: Bug
> Components: TDB
> Affects Versions: TDB 0.9.4
> Environment: windows 64 bit
> Reporter: Simon Helsen
> Assignee: Andy Seaborne
> Priority: Critical
> Fix For: TDB 0.9.4
>
> Attachments: LeaveCriticalSectionTestCase.zip
>
>
> I have attached a standalone test case, which, when run with the latest snapshot produces the following exception:
> Exception in thread "main" com.hp.hpl.jena.shared.JenaException: leaveCriticalSection: No lock held (main) Thread R/W: 0/0 :: Model R/W: 0/0 (thread: main)
> at com.hp.hpl.jena.shared.LockMRSW.leaveCriticalSection(LockMRSW.java:175)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager$TSM_WriteBackEndTxn.readerFinishes(TransactionManager.java:210)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.readerFinishes(TransactionManager.java:723)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.noteTxnAbort(TransactionManager.java:587)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.notifyAbort(TransactionManager.java:445)
> at com.hp.hpl.jena.tdb.transaction.Transaction.abort(Transaction.java:162)
> at com.hp.hpl.jena.tdb.transaction.DatasetGraphTxn.abort(DatasetGraphTxn.java:45)
> at com.hp.hpl.jena.tdb.transaction.DatasetGraphTransaction._abort(DatasetGraphTransaction.java:156)
> at com.hp.hpl.jena.tdb.migrate.DatasetGraphTrackActive.abort(DatasetGraphTrackActive.java:68)
> at com.hp.hpl.jena.sparql.core.DatasetImpl.abort(DatasetImpl.java:149)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.storeOperation(LeaveCriticalSectionErrorTest.java:57)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.query1(LeaveCriticalSectionErrorTest.java:105)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.main(LeaveCriticalSectionErrorTest.java:156)
> The sequence in the test case is to run 2 queries, 1 write and then again 2 queries:
> test.query1();
> test.query1();
> test.write1();
> test.query1();
> test.query1();
> Somehow, the following sequence did not produce the exception:
> test.query1();
> test.query1();
> test.write1();
> test.query1();
> Note that the test case does not check the correctness of any results.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (JENA-299) LeaveCriticalSection Error
Posted by "Simon Helsen (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JENA-299?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13437011#comment-13437011 ]
Simon Helsen commented on JENA-299:
-----------------------------------
as an aside but related: I wonder if the transactional code would benefit from some additional optional trace logging. E.g. as a client I have no access to a transaction id. Yesterday, I wanted to actually write some tracing code to figure out if I accidentally was sharing a transaction over multiple thread, but I was unable to get the id of a given transaction. But this invariant is imposed by TDB/Tx, so perhaps the Tx code could trace some of this (checking would in theory be possible but comes at a performance penalty which should be avoid IMO)
> LeaveCriticalSection Error
> --------------------------
>
> Key: JENA-299
> URL: https://issues.apache.org/jira/browse/JENA-299
> Project: Apache Jena
> Issue Type: Bug
> Components: TDB
> Affects Versions: TDB 0.9.4
> Environment: windows 64 bit
> Reporter: Simon Helsen
> Priority: Critical
> Attachments: LeaveCriticalSectionTestCase.zip
>
>
> I have attached a standalone test case, which, when run with the latest snapshot produces the following exception:
> Exception in thread "main" com.hp.hpl.jena.shared.JenaException: leaveCriticalSection: No lock held (main) Thread R/W: 0/0 :: Model R/W: 0/0 (thread: main)
> at com.hp.hpl.jena.shared.LockMRSW.leaveCriticalSection(LockMRSW.java:175)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager$TSM_WriteBackEndTxn.readerFinishes(TransactionManager.java:210)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.readerFinishes(TransactionManager.java:723)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.noteTxnAbort(TransactionManager.java:587)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.notifyAbort(TransactionManager.java:445)
> at com.hp.hpl.jena.tdb.transaction.Transaction.abort(Transaction.java:162)
> at com.hp.hpl.jena.tdb.transaction.DatasetGraphTxn.abort(DatasetGraphTxn.java:45)
> at com.hp.hpl.jena.tdb.transaction.DatasetGraphTransaction._abort(DatasetGraphTransaction.java:156)
> at com.hp.hpl.jena.tdb.migrate.DatasetGraphTrackActive.abort(DatasetGraphTrackActive.java:68)
> at com.hp.hpl.jena.sparql.core.DatasetImpl.abort(DatasetImpl.java:149)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.storeOperation(LeaveCriticalSectionErrorTest.java:57)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.query1(LeaveCriticalSectionErrorTest.java:105)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.main(LeaveCriticalSectionErrorTest.java:156)
> The sequence in the test case is to run 2 queries, 1 write and then again 2 queries:
> test.query1();
> test.query1();
> test.write1();
> test.query1();
> test.query1();
> Somehow, the following sequence did not produce the exception:
> test.query1();
> test.query1();
> test.write1();
> test.query1();
> Note that the test case does not check the correctness of any results.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (JENA-299) LeaveCriticalSection Error
Posted by "Simon Helsen (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JENA-299?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Simon Helsen updated JENA-299:
------------------------------
Affects Version/s: (was: TDB 0.9.3)
> LeaveCriticalSection Error
> --------------------------
>
> Key: JENA-299
> URL: https://issues.apache.org/jira/browse/JENA-299
> Project: Apache Jena
> Issue Type: Bug
> Components: TDB
> Affects Versions: TDB 0.9.4
> Environment: windows 64 bit
> Reporter: Simon Helsen
> Priority: Critical
> Attachments: LeaveCriticalSectionTestCase.zip
>
>
> I have attached a standalone test case, which, when run with the latest snapshot produces the following exception:
> Exception in thread "main" com.hp.hpl.jena.shared.JenaException: leaveCriticalSection: No lock held (main) Thread R/W: 0/0 :: Model R/W: 0/0 (thread: main)
> at com.hp.hpl.jena.shared.LockMRSW.leaveCriticalSection(LockMRSW.java:175)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager$TSM_WriteBackEndTxn.readerFinishes(TransactionManager.java:210)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.readerFinishes(TransactionManager.java:723)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.noteTxnAbort(TransactionManager.java:587)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.notifyAbort(TransactionManager.java:445)
> at com.hp.hpl.jena.tdb.transaction.Transaction.abort(Transaction.java:162)
> at com.hp.hpl.jena.tdb.transaction.DatasetGraphTxn.abort(DatasetGraphTxn.java:45)
> at com.hp.hpl.jena.tdb.transaction.DatasetGraphTransaction._abort(DatasetGraphTransaction.java:156)
> at com.hp.hpl.jena.tdb.migrate.DatasetGraphTrackActive.abort(DatasetGraphTrackActive.java:68)
> at com.hp.hpl.jena.sparql.core.DatasetImpl.abort(DatasetImpl.java:149)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.storeOperation(LeaveCriticalSectionErrorTest.java:57)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.query1(LeaveCriticalSectionErrorTest.java:105)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.main(LeaveCriticalSectionErrorTest.java:156)
> The sequence in the test case is to run 2 queries, 1 write and then again 2 queries:
> test.query1();
> test.query1();
> test.write1();
> test.query1();
> test.query1();
> Somehow, the following sequence did not produce the exception:
> test.query1();
> test.query1();
> test.write1();
> test.query1();
> Note that the test case does not check the correctness of any results.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (JENA-299) LeaveCriticalSection Error
Posted by "Andy Seaborne (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JENA-299?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13436935#comment-13436935 ]
Andy Seaborne commented on JENA-299:
------------------------------------
Missing information: earlier it writes:
19:13:29 WARN TDB :: Transaction not active: 1
...
19:13:29 WARN TDB :: Transaction not active: 4
...
> LeaveCriticalSection Error
> --------------------------
>
> Key: JENA-299
> URL: https://issues.apache.org/jira/browse/JENA-299
> Project: Apache Jena
> Issue Type: Bug
> Components: TDB
> Affects Versions: TDB 0.9.4
> Environment: windows 64 bit
> Reporter: Simon Helsen
> Priority: Critical
> Attachments: LeaveCriticalSectionTestCase.zip
>
>
> I have attached a standalone test case, which, when run with the latest snapshot produces the following exception:
> Exception in thread "main" com.hp.hpl.jena.shared.JenaException: leaveCriticalSection: No lock held (main) Thread R/W: 0/0 :: Model R/W: 0/0 (thread: main)
> at com.hp.hpl.jena.shared.LockMRSW.leaveCriticalSection(LockMRSW.java:175)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager$TSM_WriteBackEndTxn.readerFinishes(TransactionManager.java:210)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.readerFinishes(TransactionManager.java:723)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.noteTxnAbort(TransactionManager.java:587)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.notifyAbort(TransactionManager.java:445)
> at com.hp.hpl.jena.tdb.transaction.Transaction.abort(Transaction.java:162)
> at com.hp.hpl.jena.tdb.transaction.DatasetGraphTxn.abort(DatasetGraphTxn.java:45)
> at com.hp.hpl.jena.tdb.transaction.DatasetGraphTransaction._abort(DatasetGraphTransaction.java:156)
> at com.hp.hpl.jena.tdb.migrate.DatasetGraphTrackActive.abort(DatasetGraphTrackActive.java:68)
> at com.hp.hpl.jena.sparql.core.DatasetImpl.abort(DatasetImpl.java:149)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.storeOperation(LeaveCriticalSectionErrorTest.java:57)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.query1(LeaveCriticalSectionErrorTest.java:105)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.main(LeaveCriticalSectionErrorTest.java:156)
> The sequence in the test case is to run 2 queries, 1 write and then again 2 queries:
> test.query1();
> test.query1();
> test.write1();
> test.query1();
> test.query1();
> Somehow, the following sequence did not produce the exception:
> test.query1();
> test.query1();
> test.write1();
> test.query1();
> Note that the test case does not check the correctness of any results.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (JENA-299) LeaveCriticalSection Error
Posted by "Andy Seaborne (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JENA-299?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13438994#comment-13438994 ]
Andy Seaborne commented on JENA-299:
------------------------------------
"Quad: predicate cannot be null" is unrelated.
The test case for this report can be reduced to a 5 line test case. No data modification, creation or query is needed - just a sequence of read/writes.
> LeaveCriticalSection Error
> --------------------------
>
> Key: JENA-299
> URL: https://issues.apache.org/jira/browse/JENA-299
> Project: Apache Jena
> Issue Type: Bug
> Components: TDB
> Affects Versions: TDB 0.9.4
> Environment: windows 64 bit
> Reporter: Simon Helsen
> Assignee: Andy Seaborne
> Priority: Critical
> Fix For: TDB 0.9.4
>
> Attachments: LeaveCriticalSectionTestCase.zip
>
>
> I have attached a standalone test case, which, when run with the latest snapshot produces the following exception:
> Exception in thread "main" com.hp.hpl.jena.shared.JenaException: leaveCriticalSection: No lock held (main) Thread R/W: 0/0 :: Model R/W: 0/0 (thread: main)
> at com.hp.hpl.jena.shared.LockMRSW.leaveCriticalSection(LockMRSW.java:175)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager$TSM_WriteBackEndTxn.readerFinishes(TransactionManager.java:210)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.readerFinishes(TransactionManager.java:723)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.noteTxnAbort(TransactionManager.java:587)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.notifyAbort(TransactionManager.java:445)
> at com.hp.hpl.jena.tdb.transaction.Transaction.abort(Transaction.java:162)
> at com.hp.hpl.jena.tdb.transaction.DatasetGraphTxn.abort(DatasetGraphTxn.java:45)
> at com.hp.hpl.jena.tdb.transaction.DatasetGraphTransaction._abort(DatasetGraphTransaction.java:156)
> at com.hp.hpl.jena.tdb.migrate.DatasetGraphTrackActive.abort(DatasetGraphTrackActive.java:68)
> at com.hp.hpl.jena.sparql.core.DatasetImpl.abort(DatasetImpl.java:149)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.storeOperation(LeaveCriticalSectionErrorTest.java:57)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.query1(LeaveCriticalSectionErrorTest.java:105)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.main(LeaveCriticalSectionErrorTest.java:156)
> The sequence in the test case is to run 2 queries, 1 write and then again 2 queries:
> test.query1();
> test.query1();
> test.write1();
> test.query1();
> test.query1();
> Somehow, the following sequence did not produce the exception:
> test.query1();
> test.query1();
> test.write1();
> test.query1();
> Note that the test case does not check the correctness of any results.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (JENA-299) LeaveCriticalSection Error
Posted by "Simon Helsen (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JENA-299?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13438995#comment-13438995 ]
Simon Helsen commented on JENA-299:
-----------------------------------
yes, I agree, still trying to produce a small independent test case to reproduce the "Quad: predicate cannot be null"
> LeaveCriticalSection Error
> --------------------------
>
> Key: JENA-299
> URL: https://issues.apache.org/jira/browse/JENA-299
> Project: Apache Jena
> Issue Type: Bug
> Components: TDB
> Affects Versions: TDB 0.9.4
> Environment: windows 64 bit
> Reporter: Simon Helsen
> Assignee: Andy Seaborne
> Priority: Critical
> Fix For: TDB 0.9.4
>
> Attachments: LeaveCriticalSectionTestCase.zip
>
>
> I have attached a standalone test case, which, when run with the latest snapshot produces the following exception:
> Exception in thread "main" com.hp.hpl.jena.shared.JenaException: leaveCriticalSection: No lock held (main) Thread R/W: 0/0 :: Model R/W: 0/0 (thread: main)
> at com.hp.hpl.jena.shared.LockMRSW.leaveCriticalSection(LockMRSW.java:175)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager$TSM_WriteBackEndTxn.readerFinishes(TransactionManager.java:210)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.readerFinishes(TransactionManager.java:723)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.noteTxnAbort(TransactionManager.java:587)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.notifyAbort(TransactionManager.java:445)
> at com.hp.hpl.jena.tdb.transaction.Transaction.abort(Transaction.java:162)
> at com.hp.hpl.jena.tdb.transaction.DatasetGraphTxn.abort(DatasetGraphTxn.java:45)
> at com.hp.hpl.jena.tdb.transaction.DatasetGraphTransaction._abort(DatasetGraphTransaction.java:156)
> at com.hp.hpl.jena.tdb.migrate.DatasetGraphTrackActive.abort(DatasetGraphTrackActive.java:68)
> at com.hp.hpl.jena.sparql.core.DatasetImpl.abort(DatasetImpl.java:149)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.storeOperation(LeaveCriticalSectionErrorTest.java:57)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.query1(LeaveCriticalSectionErrorTest.java:105)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.main(LeaveCriticalSectionErrorTest.java:156)
> The sequence in the test case is to run 2 queries, 1 write and then again 2 queries:
> test.query1();
> test.query1();
> test.write1();
> test.query1();
> test.query1();
> Somehow, the following sequence did not produce the exception:
> test.query1();
> test.query1();
> test.write1();
> test.query1();
> Note that the test case does not check the correctness of any results.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (JENA-299) LeaveCriticalSection Error
Posted by "Simon Helsen (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JENA-299?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Simon Helsen updated JENA-299:
------------------------------
Attachment: LeaveCriticalSectionTestCase.zip
This is the whole test project. Just adjust the classpath to the HEAD of ARQ/TDB/CORE/IRI or move the test out
> LeaveCriticalSection Error
> --------------------------
>
> Key: JENA-299
> URL: https://issues.apache.org/jira/browse/JENA-299
> Project: Apache Jena
> Issue Type: Bug
> Components: TDB
> Affects Versions: TDB 0.9.4
> Environment: windows 64 bit
> Reporter: Simon Helsen
> Priority: Critical
> Attachments: LeaveCriticalSectionTestCase.zip
>
>
> I have attached a standalone test case, which, when run with the latest snapshot produces the following exception:
> Exception in thread "main" com.hp.hpl.jena.shared.JenaException: leaveCriticalSection: No lock held (main) Thread R/W: 0/0 :: Model R/W: 0/0 (thread: main)
> at com.hp.hpl.jena.shared.LockMRSW.leaveCriticalSection(LockMRSW.java:175)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager$TSM_WriteBackEndTxn.readerFinishes(TransactionManager.java:210)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.readerFinishes(TransactionManager.java:723)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.noteTxnAbort(TransactionManager.java:587)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.notifyAbort(TransactionManager.java:445)
> at com.hp.hpl.jena.tdb.transaction.Transaction.abort(Transaction.java:162)
> at com.hp.hpl.jena.tdb.transaction.DatasetGraphTxn.abort(DatasetGraphTxn.java:45)
> at com.hp.hpl.jena.tdb.transaction.DatasetGraphTransaction._abort(DatasetGraphTransaction.java:156)
> at com.hp.hpl.jena.tdb.migrate.DatasetGraphTrackActive.abort(DatasetGraphTrackActive.java:68)
> at com.hp.hpl.jena.sparql.core.DatasetImpl.abort(DatasetImpl.java:149)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.storeOperation(LeaveCriticalSectionErrorTest.java:57)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.query1(LeaveCriticalSectionErrorTest.java:105)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.main(LeaveCriticalSectionErrorTest.java:156)
> The sequence in the test case is to run 2 queries, 1 write and then again 2 queries:
> test.query1();
> test.query1();
> test.write1();
> test.query1();
> test.query1();
> Somehow, the following sequence did not produce the exception:
> test.query1();
> test.query1();
> test.write1();
> test.query1();
> Note that the test case does not check the correctness of any results.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (JENA-299) LeaveCriticalSection Error
Posted by "Simon Helsen (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JENA-299?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13436940#comment-13436940 ]
Simon Helsen commented on JENA-299:
-----------------------------------
yes, I think in my isolted test, the logging was not connected. I had seen these in the suite in our product. What does this mean btw? What is a non-active transaction?
> LeaveCriticalSection Error
> --------------------------
>
> Key: JENA-299
> URL: https://issues.apache.org/jira/browse/JENA-299
> Project: Apache Jena
> Issue Type: Bug
> Components: TDB
> Affects Versions: TDB 0.9.4
> Environment: windows 64 bit
> Reporter: Simon Helsen
> Priority: Critical
> Attachments: LeaveCriticalSectionTestCase.zip
>
>
> I have attached a standalone test case, which, when run with the latest snapshot produces the following exception:
> Exception in thread "main" com.hp.hpl.jena.shared.JenaException: leaveCriticalSection: No lock held (main) Thread R/W: 0/0 :: Model R/W: 0/0 (thread: main)
> at com.hp.hpl.jena.shared.LockMRSW.leaveCriticalSection(LockMRSW.java:175)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager$TSM_WriteBackEndTxn.readerFinishes(TransactionManager.java:210)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.readerFinishes(TransactionManager.java:723)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.noteTxnAbort(TransactionManager.java:587)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.notifyAbort(TransactionManager.java:445)
> at com.hp.hpl.jena.tdb.transaction.Transaction.abort(Transaction.java:162)
> at com.hp.hpl.jena.tdb.transaction.DatasetGraphTxn.abort(DatasetGraphTxn.java:45)
> at com.hp.hpl.jena.tdb.transaction.DatasetGraphTransaction._abort(DatasetGraphTransaction.java:156)
> at com.hp.hpl.jena.tdb.migrate.DatasetGraphTrackActive.abort(DatasetGraphTrackActive.java:68)
> at com.hp.hpl.jena.sparql.core.DatasetImpl.abort(DatasetImpl.java:149)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.storeOperation(LeaveCriticalSectionErrorTest.java:57)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.query1(LeaveCriticalSectionErrorTest.java:105)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.main(LeaveCriticalSectionErrorTest.java:156)
> The sequence in the test case is to run 2 queries, 1 write and then again 2 queries:
> test.query1();
> test.query1();
> test.write1();
> test.query1();
> test.query1();
> Somehow, the following sequence did not produce the exception:
> test.query1();
> test.query1();
> test.write1();
> test.query1();
> Note that the test case does not check the correctness of any results.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (JENA-299) LeaveCriticalSection Error
Posted by "Simon Helsen (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JENA-299?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13438985#comment-13438985 ]
Simon Helsen commented on JENA-299:
-----------------------------------
Andy, to follow-up on your comment
"Logging: turn the system log "TDB" or the TransactionManager class log. Either will cause the transaction cycle to be logged."
I looked at that but I don't see how this would do what I want. There is
private static Logger log = LoggerFactory.getLogger(TransactionManager.class) ;
but it only reports errors and warnings.
I also noticed
// Record happenings.
private boolean recordHistory = false ;
Is that what you meant? If so, could that be controlled by log4j as well? (e.g. as trace-level?) I don't like to have to change Jena code because in our production system, I can't reach that short of patching the binary jar
> LeaveCriticalSection Error
> --------------------------
>
> Key: JENA-299
> URL: https://issues.apache.org/jira/browse/JENA-299
> Project: Apache Jena
> Issue Type: Bug
> Components: TDB
> Affects Versions: TDB 0.9.4
> Environment: windows 64 bit
> Reporter: Simon Helsen
> Assignee: Andy Seaborne
> Priority: Critical
> Fix For: TDB 0.9.4
>
> Attachments: LeaveCriticalSectionTestCase.zip
>
>
> I have attached a standalone test case, which, when run with the latest snapshot produces the following exception:
> Exception in thread "main" com.hp.hpl.jena.shared.JenaException: leaveCriticalSection: No lock held (main) Thread R/W: 0/0 :: Model R/W: 0/0 (thread: main)
> at com.hp.hpl.jena.shared.LockMRSW.leaveCriticalSection(LockMRSW.java:175)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager$TSM_WriteBackEndTxn.readerFinishes(TransactionManager.java:210)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.readerFinishes(TransactionManager.java:723)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.noteTxnAbort(TransactionManager.java:587)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.notifyAbort(TransactionManager.java:445)
> at com.hp.hpl.jena.tdb.transaction.Transaction.abort(Transaction.java:162)
> at com.hp.hpl.jena.tdb.transaction.DatasetGraphTxn.abort(DatasetGraphTxn.java:45)
> at com.hp.hpl.jena.tdb.transaction.DatasetGraphTransaction._abort(DatasetGraphTransaction.java:156)
> at com.hp.hpl.jena.tdb.migrate.DatasetGraphTrackActive.abort(DatasetGraphTrackActive.java:68)
> at com.hp.hpl.jena.sparql.core.DatasetImpl.abort(DatasetImpl.java:149)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.storeOperation(LeaveCriticalSectionErrorTest.java:57)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.query1(LeaveCriticalSectionErrorTest.java:105)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.main(LeaveCriticalSectionErrorTest.java:156)
> The sequence in the test case is to run 2 queries, 1 write and then again 2 queries:
> test.query1();
> test.query1();
> test.write1();
> test.query1();
> test.query1();
> Somehow, the following sequence did not produce the exception:
> test.query1();
> test.query1();
> test.write1();
> test.query1();
> Note that the test case does not check the correctness of any results.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Resolved] (JENA-299) LeaveCriticalSection Error
Posted by "Andy Seaborne (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JENA-299?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andy Seaborne resolved JENA-299.
--------------------------------
Resolution: Fixed
Fix Version/s: TDB 0.9.4
Assignee: Andy Seaborne
Fixed. The cached read transaction view also had a one-time-use txn associated with it. Now it caches the view and not the transaction record.
> LeaveCriticalSection Error
> --------------------------
>
> Key: JENA-299
> URL: https://issues.apache.org/jira/browse/JENA-299
> Project: Apache Jena
> Issue Type: Bug
> Components: TDB
> Affects Versions: TDB 0.9.4
> Environment: windows 64 bit
> Reporter: Simon Helsen
> Assignee: Andy Seaborne
> Priority: Critical
> Fix For: TDB 0.9.4
>
> Attachments: LeaveCriticalSectionTestCase.zip
>
>
> I have attached a standalone test case, which, when run with the latest snapshot produces the following exception:
> Exception in thread "main" com.hp.hpl.jena.shared.JenaException: leaveCriticalSection: No lock held (main) Thread R/W: 0/0 :: Model R/W: 0/0 (thread: main)
> at com.hp.hpl.jena.shared.LockMRSW.leaveCriticalSection(LockMRSW.java:175)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager$TSM_WriteBackEndTxn.readerFinishes(TransactionManager.java:210)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.readerFinishes(TransactionManager.java:723)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.noteTxnAbort(TransactionManager.java:587)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.notifyAbort(TransactionManager.java:445)
> at com.hp.hpl.jena.tdb.transaction.Transaction.abort(Transaction.java:162)
> at com.hp.hpl.jena.tdb.transaction.DatasetGraphTxn.abort(DatasetGraphTxn.java:45)
> at com.hp.hpl.jena.tdb.transaction.DatasetGraphTransaction._abort(DatasetGraphTransaction.java:156)
> at com.hp.hpl.jena.tdb.migrate.DatasetGraphTrackActive.abort(DatasetGraphTrackActive.java:68)
> at com.hp.hpl.jena.sparql.core.DatasetImpl.abort(DatasetImpl.java:149)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.storeOperation(LeaveCriticalSectionErrorTest.java:57)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.query1(LeaveCriticalSectionErrorTest.java:105)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.main(LeaveCriticalSectionErrorTest.java:156)
> The sequence in the test case is to run 2 queries, 1 write and then again 2 queries:
> test.query1();
> test.query1();
> test.write1();
> test.query1();
> test.query1();
> Somehow, the following sequence did not produce the exception:
> test.query1();
> test.query1();
> test.write1();
> test.query1();
> Note that the test case does not check the correctness of any results.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (JENA-299) LeaveCriticalSection Error
Posted by "Simon Helsen (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JENA-299?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13438045#comment-13438045 ]
Simon Helsen commented on JENA-299:
-----------------------------------
The issue I reported in this defect is gone. However, I am still observing another problem. Whenever I start the product all appears fine, but when I shut it down and then start again, I run into the following exception (i.e. some sort of corruption). I'll try to produce an independent test case. Perhaps there is a relation to JENA-301 as well?
13:44:31,484 [1311264296@qtp-145033381-5] ERROR com.ibm.team.jfs - @ID@E An unexpected problem occurred while processing a transactional model read activity
java.lang.UnsupportedOperationException: Quad: predicate cannot be null
at com.hp.hpl.jena.sparql.core.Quad.<init>(Quad.java:61)
at com.hp.hpl.jena.tdb.lib.TupleLib.quad(TupleLib.java:162)
at com.hp.hpl.jena.tdb.lib.TupleLib.quad(TupleLib.java:153)
at com.hp.hpl.jena.tdb.lib.TupleLib.access$100(TupleLib.java:45)
at com.hp.hpl.jena.tdb.lib.TupleLib$4.convert(TupleLib.java:87)
at com.hp.hpl.jena.tdb.lib.TupleLib$4.convert(TupleLib.java:83)
at org.openjena.atlas.iterator.Iter$4.next(Iter.java:301)
at com.hp.hpl.jena.tdb.store.GraphTDBBase$ProjectQuadsToTriples.next(GraphTDBBase.java:178)
at com.hp.hpl.jena.tdb.store.GraphTDBBase$ProjectQuadsToTriples.next(GraphTDBBase.java:166)
at com.hp.hpl.jena.util.iterator.WrappedIterator.next(WrappedIterator.java:80)
at com.hp.hpl.jena.util.iterator.Map1Iterator.next(Map1Iterator.java:47)
at com.hp.hpl.jena.util.iterator.WrappedIterator.next(WrappedIterator.java:80)
at com.hp.hpl.jena.rdf.model.impl.StmtIteratorImpl.next(StmtIteratorImpl.java:45)
at com.hp.hpl.jena.rdf.model.impl.StmtIteratorImpl.next(StmtIteratorImpl.java:33)
at com.ibm.team.jfs.rdf.internal.jena.tdb.JenaTxTdbProvider$7.run(JenaTxTdbProvider.java:950)
at com.ibm.team.jfs.rdf.internal.jena.tdb.JenaTxTdbProvider$7.run(JenaTxTdbProvider.java:1)
at com.ibm.team.jfs.rdf.internal.jena.tdb.JenaTxTdbProvider.storeOperation(JenaTxTdbProvider.java:208)
at com.ibm.team.jfs.rdf.internal.jena.tdb.JenaTxTdbProvider.readAndSetCurrentIndexSize(JenaTxTdbProvider.java:941)
at com.ibm.team.jfs.rdf.internal.jena.tdb.JenaTxTdbProvider.connect(JenaTxTdbProvider.java:488)
at com.ibm.team.jfs.rdf.internal.jena.JenaRdfService.connect(JenaRdfService.java:284)
> LeaveCriticalSection Error
> --------------------------
>
> Key: JENA-299
> URL: https://issues.apache.org/jira/browse/JENA-299
> Project: Apache Jena
> Issue Type: Bug
> Components: TDB
> Affects Versions: TDB 0.9.4
> Environment: windows 64 bit
> Reporter: Simon Helsen
> Assignee: Andy Seaborne
> Priority: Critical
> Fix For: TDB 0.9.4
>
> Attachments: LeaveCriticalSectionTestCase.zip
>
>
> I have attached a standalone test case, which, when run with the latest snapshot produces the following exception:
> Exception in thread "main" com.hp.hpl.jena.shared.JenaException: leaveCriticalSection: No lock held (main) Thread R/W: 0/0 :: Model R/W: 0/0 (thread: main)
> at com.hp.hpl.jena.shared.LockMRSW.leaveCriticalSection(LockMRSW.java:175)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager$TSM_WriteBackEndTxn.readerFinishes(TransactionManager.java:210)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.readerFinishes(TransactionManager.java:723)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.noteTxnAbort(TransactionManager.java:587)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.notifyAbort(TransactionManager.java:445)
> at com.hp.hpl.jena.tdb.transaction.Transaction.abort(Transaction.java:162)
> at com.hp.hpl.jena.tdb.transaction.DatasetGraphTxn.abort(DatasetGraphTxn.java:45)
> at com.hp.hpl.jena.tdb.transaction.DatasetGraphTransaction._abort(DatasetGraphTransaction.java:156)
> at com.hp.hpl.jena.tdb.migrate.DatasetGraphTrackActive.abort(DatasetGraphTrackActive.java:68)
> at com.hp.hpl.jena.sparql.core.DatasetImpl.abort(DatasetImpl.java:149)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.storeOperation(LeaveCriticalSectionErrorTest.java:57)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.query1(LeaveCriticalSectionErrorTest.java:105)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.main(LeaveCriticalSectionErrorTest.java:156)
> The sequence in the test case is to run 2 queries, 1 write and then again 2 queries:
> test.query1();
> test.query1();
> test.write1();
> test.query1();
> test.query1();
> Somehow, the following sequence did not produce the exception:
> test.query1();
> test.query1();
> test.write1();
> test.query1();
> Note that the test case does not check the correctness of any results.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (JENA-299) LeaveCriticalSection Error
Posted by "Simon Helsen (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JENA-299?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13437926#comment-13437926 ]
Simon Helsen commented on JENA-299:
-----------------------------------
Yes, sorry, when I said "testing things out now", I meant, I will use the latest snapshot (build from the 20th), but I will also follow the recommendations
> LeaveCriticalSection Error
> --------------------------
>
> Key: JENA-299
> URL: https://issues.apache.org/jira/browse/JENA-299
> Project: Apache Jena
> Issue Type: Bug
> Components: TDB
> Affects Versions: TDB 0.9.4
> Environment: windows 64 bit
> Reporter: Simon Helsen
> Assignee: Andy Seaborne
> Priority: Critical
> Fix For: TDB 0.9.4
>
> Attachments: LeaveCriticalSectionTestCase.zip
>
>
> I have attached a standalone test case, which, when run with the latest snapshot produces the following exception:
> Exception in thread "main" com.hp.hpl.jena.shared.JenaException: leaveCriticalSection: No lock held (main) Thread R/W: 0/0 :: Model R/W: 0/0 (thread: main)
> at com.hp.hpl.jena.shared.LockMRSW.leaveCriticalSection(LockMRSW.java:175)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager$TSM_WriteBackEndTxn.readerFinishes(TransactionManager.java:210)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.readerFinishes(TransactionManager.java:723)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.noteTxnAbort(TransactionManager.java:587)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.notifyAbort(TransactionManager.java:445)
> at com.hp.hpl.jena.tdb.transaction.Transaction.abort(Transaction.java:162)
> at com.hp.hpl.jena.tdb.transaction.DatasetGraphTxn.abort(DatasetGraphTxn.java:45)
> at com.hp.hpl.jena.tdb.transaction.DatasetGraphTransaction._abort(DatasetGraphTransaction.java:156)
> at com.hp.hpl.jena.tdb.migrate.DatasetGraphTrackActive.abort(DatasetGraphTrackActive.java:68)
> at com.hp.hpl.jena.sparql.core.DatasetImpl.abort(DatasetImpl.java:149)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.storeOperation(LeaveCriticalSectionErrorTest.java:57)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.query1(LeaveCriticalSectionErrorTest.java:105)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.main(LeaveCriticalSectionErrorTest.java:156)
> The sequence in the test case is to run 2 queries, 1 write and then again 2 queries:
> test.query1();
> test.query1();
> test.write1();
> test.query1();
> test.query1();
> Somehow, the following sequence did not produce the exception:
> test.query1();
> test.query1();
> test.write1();
> test.query1();
> Note that the test case does not check the correctness of any results.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (JENA-299) LeaveCriticalSection Error
Posted by "Simon Helsen (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JENA-299?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13437918#comment-13437918 ]
Simon Helsen commented on JENA-299:
-----------------------------------
thanks Andy. I am adjusting my code with your recommendations. Testing things out now
> LeaveCriticalSection Error
> --------------------------
>
> Key: JENA-299
> URL: https://issues.apache.org/jira/browse/JENA-299
> Project: Apache Jena
> Issue Type: Bug
> Components: TDB
> Affects Versions: TDB 0.9.4
> Environment: windows 64 bit
> Reporter: Simon Helsen
> Assignee: Andy Seaborne
> Priority: Critical
> Fix For: TDB 0.9.4
>
> Attachments: LeaveCriticalSectionTestCase.zip
>
>
> I have attached a standalone test case, which, when run with the latest snapshot produces the following exception:
> Exception in thread "main" com.hp.hpl.jena.shared.JenaException: leaveCriticalSection: No lock held (main) Thread R/W: 0/0 :: Model R/W: 0/0 (thread: main)
> at com.hp.hpl.jena.shared.LockMRSW.leaveCriticalSection(LockMRSW.java:175)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager$TSM_WriteBackEndTxn.readerFinishes(TransactionManager.java:210)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.readerFinishes(TransactionManager.java:723)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.noteTxnAbort(TransactionManager.java:587)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.notifyAbort(TransactionManager.java:445)
> at com.hp.hpl.jena.tdb.transaction.Transaction.abort(Transaction.java:162)
> at com.hp.hpl.jena.tdb.transaction.DatasetGraphTxn.abort(DatasetGraphTxn.java:45)
> at com.hp.hpl.jena.tdb.transaction.DatasetGraphTransaction._abort(DatasetGraphTransaction.java:156)
> at com.hp.hpl.jena.tdb.migrate.DatasetGraphTrackActive.abort(DatasetGraphTrackActive.java:68)
> at com.hp.hpl.jena.sparql.core.DatasetImpl.abort(DatasetImpl.java:149)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.storeOperation(LeaveCriticalSectionErrorTest.java:57)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.query1(LeaveCriticalSectionErrorTest.java:105)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.main(LeaveCriticalSectionErrorTest.java:156)
> The sequence in the test case is to run 2 queries, 1 write and then again 2 queries:
> test.query1();
> test.query1();
> test.write1();
> test.query1();
> test.query1();
> Somehow, the following sequence did not produce the exception:
> test.query1();
> test.query1();
> test.write1();
> test.query1();
> Note that the test case does not check the correctness of any results.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (JENA-299) LeaveCriticalSection Error
Posted by "Andy Seaborne (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JENA-299?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13437921#comment-13437921 ]
Andy Seaborne commented on JENA-299:
------------------------------------
It will not fix the problem.
You need the latest snapshot with fixes from SVN. (TransactionManager and related clearing up). There was also the opportunity to improve the read-write performance.
> LeaveCriticalSection Error
> --------------------------
>
> Key: JENA-299
> URL: https://issues.apache.org/jira/browse/JENA-299
> Project: Apache Jena
> Issue Type: Bug
> Components: TDB
> Affects Versions: TDB 0.9.4
> Environment: windows 64 bit
> Reporter: Simon Helsen
> Assignee: Andy Seaborne
> Priority: Critical
> Fix For: TDB 0.9.4
>
> Attachments: LeaveCriticalSectionTestCase.zip
>
>
> I have attached a standalone test case, which, when run with the latest snapshot produces the following exception:
> Exception in thread "main" com.hp.hpl.jena.shared.JenaException: leaveCriticalSection: No lock held (main) Thread R/W: 0/0 :: Model R/W: 0/0 (thread: main)
> at com.hp.hpl.jena.shared.LockMRSW.leaveCriticalSection(LockMRSW.java:175)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager$TSM_WriteBackEndTxn.readerFinishes(TransactionManager.java:210)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.readerFinishes(TransactionManager.java:723)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.noteTxnAbort(TransactionManager.java:587)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.notifyAbort(TransactionManager.java:445)
> at com.hp.hpl.jena.tdb.transaction.Transaction.abort(Transaction.java:162)
> at com.hp.hpl.jena.tdb.transaction.DatasetGraphTxn.abort(DatasetGraphTxn.java:45)
> at com.hp.hpl.jena.tdb.transaction.DatasetGraphTransaction._abort(DatasetGraphTransaction.java:156)
> at com.hp.hpl.jena.tdb.migrate.DatasetGraphTrackActive.abort(DatasetGraphTrackActive.java:68)
> at com.hp.hpl.jena.sparql.core.DatasetImpl.abort(DatasetImpl.java:149)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.storeOperation(LeaveCriticalSectionErrorTest.java:57)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.query1(LeaveCriticalSectionErrorTest.java:105)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.main(LeaveCriticalSectionErrorTest.java:156)
> The sequence in the test case is to run 2 queries, 1 write and then again 2 queries:
> test.query1();
> test.query1();
> test.write1();
> test.query1();
> test.query1();
> Somehow, the following sequence did not produce the exception:
> test.query1();
> test.query1();
> test.write1();
> test.query1();
> Note that the test case does not check the correctness of any results.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Closed] (JENA-299) LeaveCriticalSection Error
Posted by "Andy Seaborne (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JENA-299?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andy Seaborne closed JENA-299.
------------------------------
> LeaveCriticalSection Error
> --------------------------
>
> Key: JENA-299
> URL: https://issues.apache.org/jira/browse/JENA-299
> Project: Apache Jena
> Issue Type: Bug
> Components: TDB
> Affects Versions: TDB 0.9.4
> Environment: windows 64 bit
> Reporter: Simon Helsen
> Assignee: Andy Seaborne
> Priority: Critical
> Fix For: TDB 0.9.4
>
> Attachments: LeaveCriticalSectionTestCase.zip
>
>
> I have attached a standalone test case, which, when run with the latest snapshot produces the following exception:
> Exception in thread "main" com.hp.hpl.jena.shared.JenaException: leaveCriticalSection: No lock held (main) Thread R/W: 0/0 :: Model R/W: 0/0 (thread: main)
> at com.hp.hpl.jena.shared.LockMRSW.leaveCriticalSection(LockMRSW.java:175)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager$TSM_WriteBackEndTxn.readerFinishes(TransactionManager.java:210)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.readerFinishes(TransactionManager.java:723)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.noteTxnAbort(TransactionManager.java:587)
> at com.hp.hpl.jena.tdb.transaction.TransactionManager.notifyAbort(TransactionManager.java:445)
> at com.hp.hpl.jena.tdb.transaction.Transaction.abort(Transaction.java:162)
> at com.hp.hpl.jena.tdb.transaction.DatasetGraphTxn.abort(DatasetGraphTxn.java:45)
> at com.hp.hpl.jena.tdb.transaction.DatasetGraphTransaction._abort(DatasetGraphTransaction.java:156)
> at com.hp.hpl.jena.tdb.migrate.DatasetGraphTrackActive.abort(DatasetGraphTrackActive.java:68)
> at com.hp.hpl.jena.sparql.core.DatasetImpl.abort(DatasetImpl.java:149)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.storeOperation(LeaveCriticalSectionErrorTest.java:57)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.query1(LeaveCriticalSectionErrorTest.java:105)
> at com.ibm.jena.test.LeaveCriticalSectionErrorTest.main(LeaveCriticalSectionErrorTest.java:156)
> The sequence in the test case is to run 2 queries, 1 write and then again 2 queries:
> test.query1();
> test.query1();
> test.write1();
> test.query1();
> test.query1();
> Somehow, the following sequence did not produce the exception:
> test.query1();
> test.query1();
> test.write1();
> test.query1();
> Note that the test case does not check the correctness of any results.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira