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

Bug 266982

Summary: IllegalStateException in CDOStore.getRevision
Product: [Modeling] EMF Reporter: Anders Forsell <aforsell1971>
Component: cdo.coreAssignee: Simon Mc Duff <smcduff>
Status: CLOSED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: smcduff, stepper, vroldanbet
Version: 2.0Flags: stepper: galileo+
stepper: review+
Target Milestone: M6   
Hardware: PC   
OS: Windows Vista   
Whiteboard:
Bug Depends on: 258831    
Bug Blocks:    
Attachments:
Description Flags
The zipped transfertest project
none
To be reviewed
none
Patch v2 none

Description Anders Forsell CLA 2009-03-04 03:53:06 EST
Created attachment 127443 [details]
The zipped transfertest project

When exploring the possibilities of CDO I have developed a simple file transfer example. A file is transferred through the CDO repository from one client (Client1) to another (Client2).

The attached example project consists of a simple model with a Transfer class that holds a Byte array of data that represents a chunk of the file that should go from Client1 to Client2. Both client accesses the same class in the same model and uses the Transfer class attributes to hold the data chunks and the size of the data. The size attribute is also used by the receiver (Client2) to let the sender (Client1) know when it has read/received the data (by setting it to '-1').
When running the example make sure that you change the hard-coded file path at Client1.java, line 55, to an existing file.

I admit that there are much better and faster ways of transferring a file, but ignore that and see this rather as a performance test case for CDO.

Both Client1 and Client2 are run as standalone Java applications, and I am using the latest CDO sources (HEAD) with the default CDO server (DBStore). I should note that this problem can be seen with MEMStore as well.

Stepping through the "main" methods of Client1 and Client2 it seems to work just fine, but when running both clients I get the following exception:

java.lang.IllegalStateException: revision == null
	at org.eclipse.emf.internal.cdo.CDOStore.getRevision(CDOStore.java:594)
	at org.eclipse.emf.internal.cdo.CDOStore.getRevisionForReading(CDOStore.java:580)
	at org.eclipse.emf.internal.cdo.CDOStore.get(CDOStore.java:178)
	at org.eclipse.emf.ecore.impl.EStoreEObjectImpl.dynamicGet(EStoreEObjectImpl.java:646)
	at org.eclipse.emf.ecore.impl.EStructuralFeatureImpl$InternalSettingDelegateSingleData.dynamicGet(EStructuralFeatureImpl.java:1959)
	at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjectImpl.java:1029)
	at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjectImpl.java:1013)
	at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjectImpl.java:1005)
	at transfer.impl.TransferImpl.getSize(TransferImpl.java:88)
	at client1.Client1.main(Client1.java:73)

Is this a bug?
If not, how do I prevent this error from occuring?
Comment 1 Simon Mc Duff CLA 2009-03-04 10:27:51 EST
hi Anders,

I suspect it is a Threading stuff issue. (In CDO)

We have a bugs for it.. 
https://bugs.eclipse.org/bugs/show_bug.cgi?id=258831

I added a dependency.
Eike is refactoring the code ... in another branch. see https://bugs.eclipse.org/bugs/show_bug.cgi?id=265435

because it is a lot of changes I asked him if it is better to wait after the merge... to make changes in HEAD.

I will also increase priority on the others bugs.

Thank you to submit the testcase, it will help us!


But to fix your problem, you could use adapter. (use the push mechanism instead of looking if something changed).

http://wiki.eclipse.org/New_And_Noteworthy_for_CDO_2.0#Change_subscription


Simon
Comment 2 Anders Forsell CLA 2009-03-04 23:57:27 EST
Thanks Simon,

Looking at the other bugs it seems you and Eike are working hard to get everything in. Keep going!

---
Anders
Comment 3 Simon Mc Duff CLA 2009-03-15 10:42:12 EDT
Created attachment 128842 [details]
To be reviewed

I had two options: I went for the simplistic one...

Options1 (SImplistic)
Used a ReentrantLock : INternalCDOView.getStateLock()
(Cons: cannot go in the state process with two different objects at the same time for the same view)

Options2:  Could use RWLockManager....
RWLockManager... is probably slower than ReentrantLock... (didn't try it).
We could lock with the value of the ID.

I could do Options 2 if it seems needed!
Comment 4 Simon Mc Duff CLA 2009-03-15 11:37:57 EDT
Maybe I should attach that patch into 
258831: Check for Concurrency in CDOStateMachine
https://bugs.eclipse.org/bugs/show_bug.cgi?id=258831
Comment 5 Eike Stepper CLA 2009-03-15 14:20:21 EDT
Created attachment 128848 [details]
Patch v2

Ready to be committed
Comment 6 Simon Mc Duff CLA 2009-03-15 15:28:06 EDT
Committed to HEAD
Comment 7 Simon Mc Duff CLA 2009-03-15 16:09:38 EDT
I noticed a deadlock sometimes.. with my latest patch.

I found one places (deadlock with CDOViewImpl.objects).

I will fix it and commit my changes. (I will also put the patch here to let know what was the problem.) 
Comment 8 Simon Mc Duff CLA 2009-03-15 16:14:30 EDT
I would like to continue the discussion in the bugs 258831 since it belong more over there.
Comment 9 Victor Roldan Betancort CLA 2009-03-19 08:48:52 EDT
Hi!

I just noticed that while executing test-suite, the test-case corresponding to this bug enters in a deadlock. Should this bug be reopened?
Comment 10 Simon Mc Duff CLA 2009-03-19 08:55:55 EDT
(In reply to comment #9)
> Hi!
> 
> I just noticed that while executing test-suite, the test-case corresponding to
> this bug enters in a deadlock. Should this bug be reopened?
> 

Could you provide the stacktrace (by running sendsignal.exe) ? if it happens again.

Comment 11 Simon Mc Duff CLA 2009-03-19 08:56:34 EDT
Another things. Do you have all the code updated as well ?
Comment 12 Simon Mc Duff CLA 2009-03-19 09:22:10 EDT
Hi Vik,

how you know it enters in a deadlock ? (Can you describe the signs ? )
I want to make sure that it is really a deadlock that you've encounter and not... that the process took too much time to execute!

Thank you
Comment 13 Victor Roldan Betancort CLA 2009-03-19 09:33:31 EDT
Hi Simon,

I must apologize since I haven't really determine if its a deadlock or not, so I've made false statement about it. What I'm sure is that the test-case for this bug never finishes. So what I can confirm is that there is something not properly working (unless you tell me this testcase takes 5 minutes, in that case, then I might have not given enought time for it!).

Yes, I'm in sync with latest code in HEAD.

I'll execute again only that test-case and see if it is just taking too much time or it is a deadlock!
Comment 14 Simon Mc Duff CLA 2009-03-19 09:38:07 EDT
(In reply to comment #13)
> Hi Simon,
> 
> I must apologize since I haven't really determine if its a deadlock or not, so
> I've made false statement about it. What I'm sure is that the test-case for
> this bug never finishes. So what I can confirm is that there is something not
> properly working (unless you tell me this testcase takes 5 minutes, in that
> case, then I might have not given enought time for it!).
> 
> Yes, I'm in sync with latest code in HEAD.
> 
> I'll execute again only that test-case and see if it is just taking too much
> time or it is a deadlock!
> 

Are you using DBStore or MEMStore ? 
Using DBStore could be very long. I think I will limit this bugs to MEMStore.

DOes the console display new debug info...or you have no new debug info for a long period of time (more than 1 minute).

Simon
Comment 15 Victor Roldan Betancort CLA 2009-03-19 09:43:43 EDT
> Are you using DBStore or MEMStore ? 
> Using DBStore could be very long. I think I will limit this bugs to MEMStore.

I execute "CDO All Tests" launch configuration, so I assume it uses MEMStore

> DOes the console display new debug info...or you have no new debug info for a
> long period of time (more than 1 minute).

Yes, the console keeps showing messages frequently, lets say, every 3 or 4 seconds. Definitively no 1 minute, not even 30 seconds.
Comment 16 Simon Mc Duff CLA 2009-03-19 09:46:53 EDT
It could still be a deadlock.. if the problem is in the commit phase. (Monitoring could send messages) ?
Can you tell us if the debug info are related monitoring only ??? or commit ?

Do you have a fast computer ? 


Comment 17 Victor Roldan Betancort CLA 2009-03-19 10:01:11 EDT
Thread-2914 [CommitTransactionIndication] Reading 0 new package units
Thread-2914 [CommitTransactionIndication] Reading 0 new objects
Thread-2914 [CommitTransactionIndication] Reading 1 dirty object deltas
Thread-2914 [CDODataInputImpl] Reading CDOID of type 1 (OBJECT)
Thread-2914 [ProgressDistributor] Distribution: 83.22905234584448%, 16.770947654155517%, (indicatingCommitDistributor: repo1)
Thread-2914 [AbstractCDORevision] Setting version for Customer@OID3v64: v65
Thread-2914 [AbstractCDORevision] Setting created Customer@OID3v65: 19-mar-2009 14:01:04
Thread-2914 [StoreAccessor] Writing transaction: Transaction[1]
Thread-2914 [AbstractCDORevision] Adjusting references for revision Customer@OID3v65
Thread-2914 [AbstractCDORevision] Setting version for Customer@OID3v64: v65
Thread-2914 [AbstractCDORevision] Setting created Customer@OID3v65: 19-mar-2009 14:01:04
Thread-2914 [AbstractCDORevision] Setting revised Customer@OID3v64: 19-mar-2009 14:01:04
Thread-2914 [LRURevisionCache] Adding revision: Customer@OID3v65, created=19-mar-2009 14:01:04, revised=01-ene-1970 1:00:00, current=true
Thread-2914 [AbstractCDORevision] Setting revised Customer@OID3v64: 19-mar-2009 14:01:04
Thread-2914 [CDODataOutputImpl] Writing CDOID of type 0 (NULL)
Thread-2914 [CommitNotificationRequest] Writing timeStamp: 19-mar-2009 14:01:04
Thread-2914 [CommitNotificationRequest] Writing 1 dirty IDs
Thread-2914 [CDODataOutputImpl] Writing 0 package units
Thread-2914 [CommitNotificationRequest] Writing dirty ID: OID3v64
Thread-2914 [CDODataOutputImpl] Writing CDOID of type 1 (OBJECT)
Thread-2914 [Lifecycle] Deactivating MEMStoreAccessor@20282
Thread-2914 [CommitNotificationIndication] Read timeStamp: 19-mar-2009 14:01:04
Thread-2914 [CDODataInputImpl] Reading 0 package units
Thread-2914 [CommitNotificationIndication] Reading 1 dirty IDs
Thread-2914 [CDODataInputImpl] Reading CDOID of type 1 (OBJECT)
Thread-2914 [CommitNotificationIndication] Read dirty ID: OID3v64
Thread-2914 [CommitNotificationIndication] Reading 0 Deltas
Thread-2914 [CommitNotificationIndication] Reading 0 Detach Objects
main [CDODataInputImpl] Reading CDOID of type 0 (NULL)
main [CDOSingleTransactionStrategyImpl] CDOCommitContext.postCommit
main [FiniteStateMachine] Processing event COMMIT in state DIRTY for Customer@OID3 (data=org.eclipse.emf.spi.cdo.CDOSessionProtocol$CommitTransactionResult@aeb503)
main [AbstractCDORevision] Setting ID: OID3
main [AbstractCDORevision] Setting untransactional Customer@OID3v-65: v65
main [AbstractCDORevision] Setting created Customer@OID3v65: 19-mar-2009 14:01:04
main [AbstractCDORevision] Adjusting references for revision Customer@OID3v65
main [LRURevisionCache] Adding revision: Customer@OID3v65, created=19-mar-2009 14:01:04, revised=01-ene-1970 1:00:00, current=true
main [AbstractCDORevision] Setting revised Customer@OID3v64: 19-mar-2009 14:01:04
main [FiniteStateMachine] Processing event WRITE in state CLEAN for Customer@OID3 (data=org.eclipse.emf.cdo.internal.common.revision.delta.CDOSetFeatureDeltaImpl@1ee14d4)
main [AbstractCDORevision] Setting transactional Customer@OID3v65: v-66
main [CDOTransactionImpl] Registering dirty object Customer@OID3
main [CDOSingleTransactionStrategyImpl] CDOCommitContext.preCommit
main [CDOTransactionImpl] commit()
main [CommitTransactionRequest] Writing 0 new package units
main [CommitTransactionRequest] Writing 0 new objects
main [CommitTransactionRequest] Writing 1 dirty objects
main [CDODataOutputImpl] Writing CDOID of type 1 (OBJECT)
Thread-2921 [Lifecycle] Activating MEMStoreAccessor@20283
Thread-2921 [Lifecycle] DUMP  MEMStoreAccessor@20283
  StoreAccessor.commitContexts = 
  StoreAccessor.store = MEMStore@20167
  StoreAccessor.context = Transaction[1]
  StoreAccessor.reader = false
  newRevisions = 

Thread-2913 [CommitNotificationIndication] Read timeStamp: 19-mar-2009 14:01:04
Thread-2920 [FiniteStateMachine] Processing event INVALIDATE in state CLEAN for Customer@OID3 (data=62)
Thread-2921 [CommitTransactionIndication] Reading 0 new package units
Thread-2913 [CDODataInputImpl] Reading 0 package units
Thread-2921 [CommitTransactionIndication] Reading 0 new objects
Thread-2915 [FiniteStateMachine] Processing event READ in state PROXY for Customer@OID3 (data=null)
Thread-2913 [CommitNotificationIndication] Reading 1 dirty IDs
Thread-2921 [CommitTransactionIndication] Reading 1 dirty object deltas
Thread-2920 [FiniteStateMachine] Processing event INVALIDATE in state CLEAN for Customer@OID3 (data=64)
Thread-2913 [CDODataInputImpl] Reading CDOID of type 1 (OBJECT)
Thread-2921 [CDODataInputImpl] Reading CDOID of type 1 (OBJECT)
Thread-2915 [FiniteStateMachine] Processing event READ in state PROXY for Customer@OID3 (data=null)
Thread-2913 [CommitNotificationIndication] Read dirty ID: OID3v63
Thread-2913 [CommitNotificationIndication] Reading 0 Deltas
Thread-2913 [CommitNotificationIndication] Reading 0 Detach Objects
Thread-2921 [ProgressDistributor] Distribution: 83.22905234584448%, 16.770947654155517%, (indicatingCommitDistributor: repo1)
Thread-2921 [AbstractCDORevision] Setting version for Customer@OID3v65: v66
Thread-2921 [AbstractCDORevision] Setting created Customer@OID3v66: 19-mar-2009 14:01:04
Thread-2921 [StoreAccessor] Writing transaction: Transaction[1]
Thread-2921 [AbstractCDORevision] Adjusting references for revision Customer@OID3v66
Thread-2921 [AbstractCDORevision] Setting version for Customer@OID3v65: v66
Thread-2920 [FiniteStateMachine] Processing event INVALIDATE in state CLEAN for Customer@OID3 (data=63)
Thread-2921 [AbstractCDORevision] Setting created Customer@OID3v66: 19-mar-2009 14:01:04
Thread-2921 [AbstractCDORevision] Setting revised Customer@OID3v65: 19-mar-2009 14:01:04
Thread-2921 [LRURevisionCache] Adding revision: Customer@OID3v66, created=19-mar-2009 14:01:04, revised=01-ene-1970 1:00:00, current=true
Thread-2921 [AbstractCDORevision] Setting revised Customer@OID3v65: 19-mar-2009 14:01:04
Thread-2915 [FiniteStateMachine] Processing event READ in state PROXY for Customer@OID3 (data=null)
Thread-2921 [CDODataOutputImpl] Writing CDOID of type 0 (NULL)
Thread-2921 [CommitNotificationRequest] Writing timeStamp: 19-mar-2009 14:01:04
Thread-2921 [CommitNotificationRequest] Writing 1 dirty IDs
Thread-2921 [CDODataOutputImpl] Writing 0 package units
Thread-2921 [CommitNotificationRequest] Writing dirty ID: OID3v65
Thread-2921 [CDODataOutputImpl] Writing CDOID of type 1 (OBJECT)
Thread-2919 [CommitNotificationIndication] Read timeStamp: 19-mar-2009 14:01:04
Thread-2921 [Lifecycle] Deactivating MEMStoreAccessor@20283
Thread-2919 [CDODataInputImpl] Reading 0 package units
Thread-2919 [CommitNotificationIndication] Reading 1 dirty IDs
Thread-2919 [CDODataInputImpl] Reading CDOID of type 1 (OBJECT)
Thread-2919 [CommitNotificationIndication] Read dirty ID: OID3v65
Thread-2919 [CommitNotificationIndication] Reading 0 Deltas
Thread-2919 [CommitNotificationIndication] Reading 0 Detach Objects
main [CDODataInputImpl] Reading CDOID of type 0 (NULL)
main [CDOSingleTransactionStrategyImpl] CDOCommitContext.postCommit
Thread-2920 [FiniteStateMachine] Processing event INVALIDATE in state CLEAN for Customer@OID3 (data=65)
main [FiniteStateMachine] Processing event COMMIT in state DIRTY for Customer@OID3 (data=org.eclipse.emf.spi.cdo.CDOSessionProtocol$CommitTransactionResult@87c958)
main [AbstractCDORevision] Setting ID: OID3
main [AbstractCDORevision] Setting untransactional Customer@OID3v-66: v66
main [AbstractCDORevision] Setting created Customer@OID3v66: 19-mar-2009 14:01:04
main [AbstractCDORevision] Adjusting references for revision Customer@OID3v66
Thread-2915 [FiniteStateMachine] Processing event READ in state PROXY for Customer@OID3 (data=null)
main [LRURevisionCache] Adding revision: Customer@OID3v66, created=19-mar-2009 14:01:04, revised=01-ene-1970 1:00:00, current=true
main [AbstractCDORevision] Setting revised Customer@OID3v65: 19-mar-2009 14:01:04
main [FiniteStateMachine] Processing event WRITE in state CLEAN for Customer@OID3 (data=org.eclipse.emf.cdo.internal.common.revision.delta.CDOSetFeatureDeltaImpl@b3ded7)
main [AbstractCDORevision] Setting transactional Customer@OID3v66: v-67
main [CDOTransactionImpl] Registering dirty object Customer@OID3
main [CDOSingleTransactionStrategyImpl] CDOCommitContext.preCommit
main [CDOTransactionImpl] commit()
main [CommitTransactionRequest] Writing 0 new package units
main [CommitTransactionRequest] Writing 0 new objects
main [CommitTransactionRequest] Writing 1 dirty objects
main [CDODataOutputImpl] Writing CDOID of type 1 (OBJECT)
Thread-2919 [Lifecycle] Activating MEMStoreAccessor@20284
Thread-2919 [Lifecycle] DUMP  MEMStoreAccessor@20284
  StoreAccessor.commitContexts = 
  StoreAccessor.store = MEMStore@20167
  StoreAccessor.context = Transaction[1]
  StoreAccessor.reader = false
  newRevisions = 

Thread-2919 [CommitTransactionIndication] Reading 0 new package units
Thread-2919 [CommitTransactionIndication] Reading 0 new objects
Thread-2919 [CommitTransactionIndication] Reading 1 dirty object deltas
Thread-2919 [CDODataInputImpl] Reading CDOID of type 1 (OBJECT)
Thread-2919 [ProgressDistributor] Distribution: 83.22905234584448%, 16.770947654155517%, (indicatingCommitDistributor: repo1)
Thread-2919 [AbstractCDORevision] Setting version for Customer@OID3v66: v67
Thread-2919 [AbstractCDORevision] Setting created Customer@OID3v67: 19-mar-2009 14:01:09
Thread-2919 [StoreAccessor] Writing transaction: Transaction[1]
Thread-2919 [AbstractCDORevision] Adjusting references for revision Customer@OID3v67
Thread-2919 [AbstractCDORevision] Setting version for Customer@OID3v66: v67
Thread-2919 [AbstractCDORevision] Setting created Customer@OID3v67: 19-mar-2009 14:01:09
Thread-2919 [AbstractCDORevision] Setting revised Customer@OID3v66: 19-mar-2009 14:01:09
Thread-2919 [LRURevisionCache] Adding revision: Customer@OID3v67, created=19-mar-2009 14:01:09, revised=01-ene-1970 1:00:00, current=true
Thread-2919 [AbstractCDORevision] Setting revised Customer@OID3v66: 19-mar-2009 14:01:09
Thread-2919 [CDODataOutputImpl] Writing CDOID of type 0 (NULL)
Thread-2919 [CommitNotificationRequest] Writing timeStamp: 19-mar-2009 14:01:09
Thread-2919 [CommitNotificationRequest] Writing 1 dirty IDs
Thread-2919 [CDODataOutputImpl] Writing 0 package units
Thread-2919 [CommitNotificationRequest] Writing dirty ID: OID3v66
Thread-2919 [CDODataOutputImpl] Writing CDOID of type 1 (OBJECT)
Thread-2919 [Lifecycle] Deactivating MEMStoreAccessor@20284
Thread-2919 [CommitNotificationIndication] Read timeStamp: 19-mar-2009 14:01:09
Thread-2919 [CDODataInputImpl] Reading 0 package units
Thread-2919 [CommitNotificationIndication] Reading 1 dirty IDs
Thread-2919 [CDODataInputImpl] Reading CDOID of type 1 (OBJECT)
Thread-2919 [CommitNotificationIndication] Read dirty ID: OID3v66
Thread-2919 [CommitNotificationIndication] Reading 0 Deltas
Thread-2919 [CommitNotificationIndication] Reading 0 Detach Objects
Thread-2920 [FiniteStateMachine] Processing event INVALIDATE in state CLEAN for Customer@OID3 (data=66)
main [CDODataInputImpl] Reading CDOID of type 0 (NULL)
main [CDOSingleTransactionStrategyImpl] CDOCommitContext.postCommit
main [FiniteStateMachine] Processing event COMMIT in state DIRTY for Customer@OID3 (data=org.eclipse.emf.spi.cdo.CDOSessionProtocol$CommitTransactionResult@b08afc)
main [AbstractCDORevision] Setting ID: OID3
main [AbstractCDORevision] Setting untransactional Customer@OID3v-67: v67
main [AbstractCDORevision] Setting created Customer@OID3v67: 19-mar-2009 14:01:09
main [AbstractCDORevision] Adjusting references for revision Customer@OID3v67
main [LRURevisionCache] Adding revision: Customer@OID3v67, created=19-mar-2009 14:01:09, revised=01-ene-1970 1:00:00, current=true
main [AbstractCDORevision] Setting revised Customer@OID3v66: 19-mar-2009 14:01:09
main [FiniteStateMachine] Processing event WRITE in state CLEAN for Customer@OID3 (data=org.eclipse.emf.cdo.internal.common.revision.delta.CDOSetFeatureDeltaImpl@74bc49)
main [AbstractCDORevision] Setting transactional Customer@OID3v67: v-68
main [CDOTransactionImpl] Registering dirty object Customer@OID3
main [CDOSingleTransactionStrategyImpl] CDOCommitContext.preCommit
main [CDOTransactionImpl] commit()
main [CommitTransactionRequest] Writing 0 new package units
main [CommitTransactionRequest] Writing 0 new objects
main [CommitTransactionRequest] Writing 1 dirty objects
main [CDODataOutputImpl] Writing CDOID of type 1 (OBJECT)
Thread-2915 [FiniteStateMachine] Processing event READ in state PROXY for Customer@OID3 (data=null)
Thread-2914 [Lifecycle] Activating MEMStoreAccessor@20285
Thread-2914 [Lifecycle] DUMP  MEMStoreAccessor@20285
  StoreAccessor.commitContexts = 
  StoreAccessor.store = MEMStore@20167
  StoreAccessor.context = Transaction[1]
  StoreAccessor.reader = false
  newRevisions = 

Thread-2914 [CommitTransactionIndication] Reading 0 new package units
Thread-2914 [CommitTransactionIndication] Reading 0 new objects
Thread-2914 [CommitTransactionIndication] Reading 1 dirty object deltas
Thread-2914 [CDODataInputImpl] Reading CDOID of type 1 (OBJECT)
Thread-2914 [ProgressDistributor] Distribution: 83.22905234584448%, 16.770947654155517%, (indicatingCommitDistributor: repo1)
Thread-2914 [AbstractCDORevision] Setting version for Customer@OID3v67: v68
Thread-2914 [AbstractCDORevision] Setting created Customer@OID3v68: 19-mar-2009 14:01:10
Thread-2914 [StoreAccessor] Writing transaction: Transaction[1]
Thread-2914 [AbstractCDORevision] Adjusting references for revision Customer@OID3v68
Thread-2914 [AbstractCDORevision] Setting version for Customer@OID3v67: v68
Thread-2914 [AbstractCDORevision] Setting created Customer@OID3v68: 19-mar-2009 14:01:10
Thread-2914 [AbstractCDORevision] Setting revised Customer@OID3v67: 19-mar-2009 14:01:10
Thread-2914 [LRURevisionCache] Adding revision: Customer@OID3v68, created=19-mar-2009 14:01:10, revised=01-ene-1970 1:00:00, current=true
Thread-2914 [AbstractCDORevision] Setting revised Customer@OID3v67: 19-mar-2009 14:01:10
Thread-2914 [CDODataOutputImpl] Writing CDOID of type 0 (NULL)
Thread-2914 [CommitNotificationRequest] Writing timeStamp: 19-mar-2009 14:01:10
Thread-2914 [CommitNotificationRequest] Writing 1 dirty IDs
Thread-2914 [CDODataOutputImpl] Writing 0 package units
Thread-2914 [CommitNotificationRequest] Writing dirty ID: OID3v67
Thread-2914 [CDODataOutputImpl] Writing CDOID of type 1 (OBJECT)
Thread-2914 [Lifecycle] Deactivating MEMStoreAccessor@20285
Thread-2914 [CommitNotificationIndication] Read timeStamp: 19-mar-2009 14:01:10
Thread-2914 [CDODataInputImpl] Reading 0 package units
Thread-2914 [CommitNotificationIndication] Reading 1 dirty IDs
Thread-2914 [CDODataInputImpl] Reading CDOID of type 1 (OBJECT)
Thread-2914 [CommitNotificationIndication] Read dirty ID: OID3v67
Thread-2914 [CommitNotificationIndication] Reading 0 Deltas
Thread-2914 [CommitNotificationIndication] Reading 0 Detach Objects
Thread-2920 [FiniteStateMachine] Processing event INVALIDATE in state CLEAN for Customer@OID3 (data=67)
main [CDODataInputImpl] Reading CDOID of type 0 (NULL)
main [CDOSingleTransactionStrategyImpl] CDOCommitContext.postCommit
main [FiniteStateMachine] Processing event COMMIT in state DIRTY for Customer@OID3 (data=org.eclipse.emf.spi.cdo.CDOSessionProtocol$CommitTransactionResult@16cc9e5)
main [AbstractCDORevision] Setting ID: OID3
main [AbstractCDORevision] Setting untransactional Customer@OID3v-68: v68
main [AbstractCDORevision] Setting created Customer@OID3v68: 19-mar-2009 14:01:10
main [AbstractCDORevision] Adjusting references for revision Customer@OID3v68
main [LRURevisionCache] Adding revision: Customer@OID3v68, created=19-mar-2009 14:01:10, revised=01-ene-1970 1:00:00, current=true
main [AbstractCDORevision] Setting revised Customer@OID3v67: 19-mar-2009 14:01:10
main [FiniteStateMachine] Processing event WRITE in state CLEAN for Customer@OID3 (data=org.eclipse.emf.cdo.internal.common.revision.delta.CDOSetFeatureDeltaImpl@13afe05)
main [AbstractCDORevision] Setting transactional Customer@OID3v68: v-69
main [CDOTransactionImpl] Registering dirty object Customer@OID3
main [CDOSingleTransactionStrategyImpl] CDOCommitContext.preCommit
main [CDOTransactionImpl] commit()
main [CommitTransactionRequest] Writing 0 new package units
main [CommitTransactionRequest] Writing 0 new objects
main [CommitTransactionRequest] Writing 1 dirty objects
main [CDODataOutputImpl] Writing CDOID of type 1 (OBJECT)
Thread-2921 [Lifecycle] Activating MEMStoreAccessor@20286
Thread-2921 [Lifecycle] DUMP  MEMStoreAccessor@20286
  StoreAccessor.commitContexts = 
  StoreAccessor.store = MEMStore@20167
  StoreAccessor.context = Transaction[1]
  StoreAccessor.reader = false
  newRevisions = 

Thread-2921 [CommitTransactionIndication] Reading 0 new package units
Thread-2921 [CommitTransactionIndication] Reading 0 new objects
Thread-2921 [CommitTransactionIndication] Reading 1 dirty object deltas
Thread-2921 [CDODataInputImpl] Reading CDOID of type 1 (OBJECT)
Thread-2921 [ProgressDistributor] Distribution: 83.22905234584448%, 16.770947654155517%, (indicatingCommitDistributor: repo1)
Thread-2921 [AbstractCDORevision] Setting version for Customer@OID3v68: v69
Thread-2921 [AbstractCDORevision] Setting created Customer@OID3v69: 19-mar-2009 14:01:10
Thread-2921 [StoreAccessor] Writing transaction: Transaction[1]
Thread-2921 [AbstractCDORevision] Adjusting references for revision Customer@OID3v69
Thread-2921 [AbstractCDORevision] Setting version for Customer@OID3v68: v69
Thread-2921 [AbstractCDORevision] Setting created Customer@OID3v69: 19-mar-2009 14:01:10
Thread-2921 [AbstractCDORevision] Setting revised Customer@OID3v68: 19-mar-2009 14:01:10
Thread-2921 [LRURevisionCache] Adding revision: Customer@OID3v69, created=19-mar-2009 14:01:10, revised=01-ene-1970 1:00:00, current=true
Thread-2921 [AbstractCDORevision] Setting revised Customer@OID3v68: 19-mar-2009 14:01:10
Thread-2921 [CDODataOutputImpl] Writing CDOID of type 0 (NULL)
Thread-2921 [CommitNotificationRequest] Writing timeStamp: 19-mar-2009 14:01:10
Thread-2921 [CommitNotificationRequest] Writing 1 dirty IDs
Thread-2921 [CDODataOutputImpl] Writing 0 package units
Thread-2921 [CommitNotificationRequest] Writing dirty ID: OID3v68
Thread-2915 [FiniteStateMachine] Processing event READ in state PROXY for Customer@OID3 (data=null)
Thread-2921 [CDODataOutputImpl] Writing CDOID of type 1 (OBJECT)
Thread-2921 [Lifecycle] Deactivating MEMStoreAccessor@20286
main [CDODataInputImpl] Reading CDOID of type 0 (NULL)
main [CDOSingleTransactionStrategyImpl] CDOCommitContext.postCommit
main [FiniteStateMachine] Processing event COMMIT in state DIRTY for Customer@OID3 (data=org.eclipse.emf.spi.cdo.CDOSessionProtocol$CommitTransactionResult@1881485)
main [AbstractCDORevision] Setting ID: OID3
main [AbstractCDORevision] Setting untransactional Customer@OID3v-69: v69
main [AbstractCDORevision] Setting created Customer@OID3v69: 19-mar-2009 14:01:10
main [AbstractCDORevision] Adjusting references for revision Customer@OID3v69
main [LRURevisionCache] Adding revision: Customer@OID3v69, created=19-mar-2009 14:01:10, revised=01-ene-1970 1:00:00, current=true
main [AbstractCDORevision] Setting revised Customer@OID3v68: 19-mar-2009 14:01:10
main [FiniteStateMachine] Processing event WRITE in state CLEAN for Customer@OID3 (data=org.eclipse.emf.cdo.internal.common.revision.delta.CDOSetFeatureDeltaImpl@fb2dad)
main [AbstractCDORevision] Setting transactional Customer@OID3v69: v-70
main [CDOTransactionImpl] Registering dirty object Customer@OID3
main [CDOSingleTransactionStrategyImpl] CDOCommitContext.preCommit
main [CDOTransactionImpl] commit()
main [CommitTransactionRequest] Writing 0 new package units
main [CommitTransactionRequest] Writing 0 new objects
main [CommitTransactionRequest] Writing 1 dirty objects
main [CDODataOutputImpl] Writing CDOID of type 1 (OBJECT)
Thread-2919 [Lifecycle] Activating MEMStoreAccessor@20287
Thread-2919 [Lifecycle] DUMP  MEMStoreAccessor@20287
  StoreAccessor.commitContexts = 
  StoreAccessor.store = MEMStore@20167
  StoreAccessor.context = Transaction[1]
  StoreAccessor.reader = false
  newRevisions = 
Comment 18 Victor Roldan Betancort CLA 2009-03-19 10:02:18 EDT
That's what keeps appearing in my console on an on. I have a relative old computer (Pentium III 2Ghz, 2Gb RAM)
Comment 19 Victor Roldan Betancort CLA 2009-03-19 10:06:39 EDT
Simon, I must leave for some hours, we can continue the discussion later.
Comment 20 Simon Mc Duff CLA 2009-03-19 10:07:04 EDT
Ok based on the logs it is not a DeadLock case.

It is a slow computer problem1! :-)

I will reduce the number of iteration... but not too low since I was not able to reproduce it with low iteration...

if I remember correctly it took me few secs on my computer!! :-)
I will put MEMStore only as well. (Or not DBStore)

Simon
Comment 21 Victor Roldan Betancort CLA 2009-03-19 10:08:31 EDT
Simon,

if its a slow computer problem, then don't change the number of iterations. I'll leave the test on, or skis this test from the suite.

Thanks, and sorry for any inconvenience
Comment 22 Victor Roldan Betancort CLA 2009-03-19 12:38:38 EDT
Hi Simon,

finally back and saw the results of the test-case. Yes, it passes :) But it took my computer 38 minutes!!!!!! I think I've changed my mind, is there any way to reduce this in slow computers? :P

Cheers,
ViK
Comment 23 Simon Mc Duff CLA 2009-03-19 14:17:50 EDT
humm.. even if I put it at 250... it will still takes 18-19 minutes.

I will look at home how much time does it take... and let you know the result.

After that we will be able to adjust!
Comment 24 Simon Mc Duff CLA 2009-03-19 18:06:03 EDT
Vik, this testcase takes me 10 secs... (Maximum)

I think we should enter a new bugzilla to upgrade your computer!! :-)

Seriously...I think something else is happening. Can you run only this testcase and tell me how much time does it take ?

Comment 25 Victor Roldan Betancort CLA 2009-03-19 18:08:23 EDT
Simon

> I think we should enter a new bugzilla to upgrade your computer!! :-)

Tell my boss to put this to P1 priority :P

> 
> Seriously...I think something else is happening. Can you run only this testcase
> and tell me how much time does it take ?

I think that too. As I commented to Eike, I don't think a Quad Core makes so much diference against a Pentium III 2Ghz to take computation from 38 minutes to 10 seconds.

And the results I gave you before was executing ONLY this testcase.

:( 

Comment 26 Eike Stepper CLA 2009-04-02 17:34:55 EDT
Fix available in EMF CDO 2.0.0M6b
Comment 27 Eike Stepper CLA 2009-06-27 11:49:42 EDT
Generally available.