Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 359339

Summary: DeadLock in CDO Session
Product: [Modeling] EMF Reporter: Eike Stepper <stepper>
Component: cdo.coreAssignee: Eike Stepper <stepper>
Status: CLOSED FIXED QA Contact: Eike Stepper <stepper>
Severity: normal    
Priority: P3    
Version: 4.0   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:
Attachments:
Description Flags
Backport none

Description Eike Stepper CLA 2011-09-29 02:15:02 EDT
Cloned from: 354009: DeadLock in CDO Session
https://bugs.eclipse.org/bugs/show_bug.cgi?id=354009

Build Identifier: I20110613-1736

+ While performing our tests we encountered a DeadLock in CDO that seem related to CDOSession/View invalidation.
+ This could not be reproduced in a unit test, a snapshot has been provided to Eike to inspect the threads behaviour
+ When running using yourkit profiler, dead lock was detected, here's the relevant thread information from the snapshot :

Worker-154 [BLOCKED] CPU time: 0:21
org.eclipse.emf.internal.cdo.session.CDOSessionImpl.invalidate(CDOCommitInfo, InternalCDOTransaction)
org.eclipse.emf.internal.cdo.transaction.CDOTransactionImpl$CDOCommitContextImpl.postCommit(CDOSessionProtocol$CommitTransactionResult)
org.eclipse.emf.internal.cdo.transaction.CDOSingleTransactionStrategyImpl.commit(InternalCDOTransaction, IProgressMonitor)
org.eclipse.emf.internal.cdo.transaction.CDOTransactionImpl.commit(IProgressMonitor)
org.eclipse.emf.internal.cdo.transaction.CDOTransactionImpl.commit()
com.castortech.iris.models.locator.impl.cdo.IrisTransactionDelegateImpl.commit()
com.castortech.iris.models.locator.impl.common.IrisTransactionImpl.commit()
com.castortech.common.interpreter.BaseCodeInterpreter$1.run(IProgressMonitor)
org.eclipse.core.internal.jobs.Worker.run()



Worker-155 [BLOCKED] CPU time: 0:04
org.eclipse.emf.internal.cdo.view.CDOViewImpl.setLastUpdateTime(long)
org.eclipse.emf.internal.cdo.session.CDOSessionImpl.invalidateOrdered(CDOCommitInfo, InternalCDOTransaction)
org.eclipse.emf.internal.cdo.session.CDOSessionImpl.invalidate(CDOCommitInfo, InternalCDOTransaction)
org.eclipse.emf.internal.cdo.transaction.CDOTransactionImpl$CDOCommitContextImpl.postCommit(CDOSessionProtocol$CommitTransactionResult)
org.eclipse.emf.internal.cdo.transaction.CDOSingleTransactionStrategyImpl.commit(InternalCDOTransaction, IProgressMonitor)
org.eclipse.emf.internal.cdo.transaction.CDOTransactionImpl.commit(IProgressMonitor)
org.eclipse.emf.internal.cdo.transaction.CDOTransactionImpl.commit()
com.castortech.iris.models.locator.impl.cdo.IrisTransactionDelegateImpl.commit()
com.castortech.iris.models.locator.impl.common.IrisTransactionImpl.commit()
com.castortech.common.interpreter.BaseCodeInterpreter$1.run(IProgressMonitor)
org.eclipse.core.internal.jobs.Worker.run()


Reproducible: Always
Comment 1 Eike Stepper CLA 2011-09-29 02:23:05 EDT
Created attachment 204247 [details]
Backport
Comment 2 Eike Stepper CLA 2011-09-29 02:30:32 EDT
Committed revision 9418:
- branches/4.0-maintenance/plugins/org.eclipse.emf.cdo
- branches/4.0-maintenance/plugins/org.eclipse.emf.cdo.tests
Comment 3 Eike Stepper CLA 2011-09-29 02:31:05 EDT
Fixed
Comment 4 Eike Stepper CLA 2012-09-21 06:49:58 EDT
Closing.