[ 
https://issues.apache.org/jira/browse/JENA-161?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13151991#comment-13151991
 ] 

Paolo Castagna commented on JENA-161:
-------------------------------------

Thank you Laurent.
Using Laurent's test with debug enabled we see the problem described by Andy, 
for example:

11:15:20 DEBUG TDB                       :: Txn[30]/R: start
11:15:20 DEBUG TDB                       :: Txn[31]/W: begin
11:15:20 DEBUG TDB                       :: Txn[31]/W: commit
11:15:20 DEBUG TDB                       :: Txn[31]/W: Queue commit flush
11:15:20 DEBUG TDB                       :: Txn[32]/R: start
11:15:20 DEBUG TDB                       :: Txn[32]/R: finish
11:15:20 DEBUG TDB                       :: Txn[32]/R: Pending transactions: 
R=1 / W=0
11:15:20 DEBUG TDB                       :: Txn[33]/R: start
11:15:20 DEBUG TDB                       :: Txn[33]/R: finish
11:15:20 DEBUG TDB                       :: Txn[33]/R: Pending transactions: 
R=1 / W=0
11:15:20 DEBUG TDB                       :: Txn[34]/W: begin
11:15:20 DEBUG TDB                       :: Txn[34]/W: commit
11:15:20 DEBUG TDB                       :: Txn[34]/W: Queue commit flush
11:15:20 DEBUG TDB                       :: Txn[35]/R: start
11:15:20 DEBUG TDB                       :: Txn[35]/R: finish
11:15:20 DEBUG TDB                       :: Txn[35]/R: Pending transactions: 
R=1 / W=0
11:15:20 DEBUG TDB                       :: Txn[36]/W: begin
11:15:20 DEBUG TDB                       :: Txn[30]/R: finish
11:15:20 DEBUG TDB                       :: Txn[30]/R: Pending transactions: 
R=0 / W=1
11:15:20 DEBUG TDB                       :: Txn[37]/R: start
11:15:20 DEBUG TDB                       :: Txn[36]/W: commit
11:15:20 DEBUG TDB                       :: Txn[36]/W: Queue commit flush
11:15:20 DEBUG TDB                       :: Txn[37]/R: finish
11:15:20 DEBUG TDB                       :: Txn[31]/W: Flush delayed commit
11:15:20 DEBUG TDB                       :: Txn[34]/W: Flush delayed commit
11:15:20 DEBUG TDB                       :: Txn[36]/W: Flush delayed commit
                
> 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: 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