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