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

Andy Seaborne resolved JENA-161.
--------------------------------

    Resolution: Fixed

Fix applied to SVN - Transaction object should not be locked when calling into 
the TransactionManager because it may call back into a Transaction.  See patch 
attachment.

TDBTxnDeadlockTest.java incorporated into the test suite as T_TxnDeadlockTest.

This will be closed when confirmed or no reports received after a week or so.

                
> TDB Transaction deadlock
> ------------------------
>
>                 Key: JENA-161
>                 URL: https://issues.apache.org/jira/browse/JENA-161
>             Project: Jena
>          Issue Type: Bug
>          Components: TDB
>    Affects Versions: TDB 0.9.0
>         Environment: Windows 7 64 bit. I am using the snapshot of SVN of 10 
> November 2011
>            Reporter: Simon Helsen
>            Assignee: Andy Seaborne
>         Attachments: JENA161_patch.txt, TDBTxnDeadlockTest.java
>
>
> While running some tests I ran into a deadlock. Unfortunately, on my 64 bit 
> windows 7, I was unable to trigger the complete stack trace. (there is no 
> equivalent of kill -3 and all known utilities to achieve this on windows 
> don't work with a 64 bit process). I was able to see two of the threads which 
> were hanging (because of a UI view in our admin console), but it is not 
> showing the other threads (which I'd need to see why the 2 threads I do have 
> are hanging). I will show the 2 threads which are hanging here in the hope it 
> rings a bell. I hope I will be able to get a full set of stack traces at some 
> point
> as for an analysis: Not sure if we are dealing with a double-crossed locking 
> issue here. It seems that thread 2 is waiting for thread 1 who clearly has 
> the lock on the transaction manager, but it is not clear why it is waiting on 
> the Transaction object. It seems that some other thread still has it and the 
> question is whether thread 2 could be the one (so there is a crossing of the 
> locks)? It would surprise me because thread 1 is doing a READ transaction and 
> thread 2 is doing a separate WRITE transaction. 
> thread 1:
> ------------
> com.hp.hpl.jena.tdb.transaction.Transaction.signalEnacted(Transaction.java:178)
>    
> com.hp.hpl.jena.tdb.transaction.TransactionManager.enactTransaction(TransactionManager.java:384)
>    
> com.hp.hpl.jena.tdb.transaction.TransactionManager.processDelayedReplayQueue(TransactionManager.java:419)
>    
> com.hp.hpl.jena.tdb.transaction.TransactionManager$TSM_WriteBackEndTxn.readerFinishes(TransactionManager.java:189)
>    
> com.hp.hpl.jena.tdb.transaction.TransactionManager.readerFinishes(TransactionManager.java:609)
>    
> com.hp.hpl.jena.tdb.transaction.TransactionManager.noteTxnCommit(TransactionManager.java:472)
>    
> com.hp.hpl.jena.tdb.transaction.TransactionManager.notifyCommit(TransactionManager.java:349)
>    com.hp.hpl.jena.tdb.transaction.Transaction.commit(Transaction.java:100)
>    com.hp.hpl.jena.tdb.transaction.Transaction.close(Transaction.java:151)
>    com.hp.hpl.jena.tdb.DatasetGraphTxn.close(DatasetGraphTxn.java:55)
>    
> com.ibm.team.jfs.rdf.internal.jena.tdb.JenaTdbTxProvider.storeOperation(JenaTdbTxProvider.java:179)
> <snip>
> thread 2
> ------------
> com.hp.hpl.jena.tdb.transaction.TransactionManager.notifyClose(TransactionManager.java:445)
>    com.hp.hpl.jena.tdb.transaction.Transaction.close(Transaction.java:162)
>    com.hp.hpl.jena.tdb.DatasetGraphTxn.close(DatasetGraphTxn.java:55)
>    
> com.ibm.team.jfs.rdf.internal.jena.tdb.JenaTdbTxProvider.storeOperation(JenaTdbTxProvider.java:285)
>    
> com.ibm.team.jfs.rdf.internal.jena.tdb.JenaTdbTxProvider.unprotectedDelete(JenaTdbTxProvider.java:1902)
>    
> com.ibm.team.jfs.rdf.internal.jena.tdb.JenaTdbTxProvider.delete(JenaTdbTxProvider.java:664)
> <snip>

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

        

Reply via email to