CDV ❯ deadlock in objectID sequencer
- 
                Bug
- 
                Status: Closed
- 
                1 Critical
- 
                Resolution: Fixed
- 
                
- 
                
- 
                kkannaiy
- 
                Reporter: teck
- 
                July 13, 2009
- 
                0
- 
                Watchers: 2
- 
                February 12, 2013
- 
                July 17, 2009
Attachments
Description
I’ll attach the logs. This happened in a system test (PartialCollectionsCloneTest)
    INFO     Found one Java-level deadlock:
    INFO     =============================
    INFO     "WorkerThread(object_id_request_response_stage,0)":
    INFO       waiting to lock monitor 0x09aed124 (object 0x95c67990, a com.tc.util.sequence.BatchSequence),
    INFO       which is held by "Thread-26"
    INFO     "Thread-26":
    INFO       waiting to lock monitor 0x8e588e60 (object 0x95c679b0, a com.tc.object.idprovider.impl.RemoteObjectIDBatchSequenceProvider),
    INFO       which is held by "WorkerThread(object_id_request_response_stage,0)"
    INFO
    INFO     Java stack information for the threads listed above:
    INFO     ===================================================
    INFO     "WorkerThread(object_id_request_response_stage,0)":
    INFO     	at com.tc.util.sequence.BatchSequence.setNextBatch(BatchSequence.java:69)
    INFO     	- waiting to lock <0x95c67990> (a com.tc.util.sequence.BatchSequence)
    INFO     	at com.tc.object.idprovider.impl.RemoteObjectIDBatchSequenceProvider.handleEvent(RemoteObjectIDBatchSequenceProvider.java:40)
    INFO     	- locked <0x95c679b0> (a com.tc.object.idprovider.impl.RemoteObjectIDBatchSequenceProvider)
    INFO     	at com.tc.async.impl.StageImpl$WorkerThread.run(StageImpl.java:142)
    INFO     "Thread-26":
    INFO     	at com.tc.object.idprovider.impl.RemoteObjectIDBatchSequenceProvider.requestBatch(RemoteObjectIDBatchSequenceProvider.java:32)
    INFO     	- waiting to lock <0x95c679b0> (a com.tc.object.idprovider.impl.RemoteObjectIDBatchSequenceProvider)
    INFO     	at com.tc.util.sequence.BatchSequence.requestNextBatch(BatchSequence.java:64)
    INFO     	at com.tc.util.sequence.BatchSequence.requestMoreIDsIfNecessary(BatchSequence.java:44)
    INFO     	at com.tc.util.sequence.BatchSequence.next(BatchSequence.java:31)
    INFO     	- locked <0x95c67990> (a com.tc.util.sequence.BatchSequence)
    INFO     	at com.tc.object.idprovider.impl.ObjectIDProviderImpl.next(ObjectIDProviderImpl.java:21)
    INFO     	at com.tc.object.ClientObjectManagerImpl.nextObjectID(ClientObjectManagerImpl.java:1140)
    INFO     	at com.tc.object.ClientObjectManagerImpl.basicCreateIfNecessary(ClientObjectManagerImpl.java:1084)
    INFO     	at com.tc.object.ClientObjectManagerImpl.basicCreateIfNecessary(ClientObjectManagerImpl.java:1099)
    INFO     	- locked <0x95c67db0> (a com.tc.object.ClientObjectManagerImpl)
    INFO     	at com.tc.object.ClientObjectManagerImpl.access$600(ClientObjectManagerImpl.java:79)
    INFO     	at com.tc.object.ClientObjectManagerImpl$AddManagedObjectAction.basicVisit(ClientObjectManagerImpl.java:1047)
    INFO     	at com.tc.object.ClientObjectManagerImpl$BaseAction.visit(ClientObjectManagerImpl.java:1033)
    INFO     	at com.tc.object.Traverser.traverse(Traverser.java:93)
    INFO     	at com.tc.object.ClientObjectManagerImpl.traverse(ClientObjectManagerImpl.java:950)
    INFO     	at com.tc.object.ClientObjectManagerImpl.create(ClientObjectManagerImpl.java:296)
    INFO     	at com.tc.object.ClientObjectManagerImpl.lookupOrCreateIfNecesary(ClientObjectManagerImpl.java:356)
    INFO     	at com.tc.object.ClientObjectManagerImpl.lookupOrCreate(ClientObjectManagerImpl.java:334)
    INFO     	at com.tc.object.ClientObjectManagerImpl.lookupRootOptionallyCreateOrReplace(ClientObjectManagerImpl.java:875)
    INFO     	at com.tc.object.ClientObjectManagerImpl.lookupOrCreateRoot(ClientObjectManagerImpl.java:664)
    INFO     	at com.tc.object.ClientObjectManagerImpl.lookupOrCreateRoot(ClientObjectManagerImpl.java:647)
    INFO     	at com.tc.object.bytecode.ManagerImpl.lookupOrCreateRoot(ManagerImpl.java:332)
    INFO     	at com.tc.object.bytecode.ManagerImpl.lookupOrCreateRoot(ManagerImpl.java:311)
    INFO     	at com.tc.object.bytecode.ManagerUtil.lookupOrCreateRoot(ManagerUtil.java:92)
    INFO     	at com.tctest.runner.AbstractTransparentApp.__tc_setappIds(AbstractTransparentApp.java)
    INFO     	at com.tctest.runner.AbstractTransparentApp.<init>(AbstractTransparentApp.java:24)
    INFO     	at com.tctest.runner.AbstractErrorCatchingTransparentApp.<init>(AbstractErrorCatchingTransparentApp.java:19)
    INFO     	at com.tctest.PartialCollectionsCloneTest$PartialCollectionsCloneTestApp.<init>(PartialCollectionsCloneTest.java:46)
    INFO     	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    INFO     	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    INFO     	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    INFO     	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    INFO     	at com.tc.simulator.app.DSOApplicationBuilder.newApplication(DSOApplicationBuilder.java:73)
    INFO     	- locked <0x94f847f8> (a com.tc.simulator.app.DSOApplicationBuilder)
    INFO     	at com.tc.simulator.container.Container.newExecutionInstance(Container.java:190)
    INFO     	at com.tc.simulator.container.Container.startInstances(Container.java:204)
    INFO     	at com.tc.simulator.container.Container.run(Container.java:90)
    INFO     	- locked <0x94f84a10> (a com.tc.simulator.container.Container)
    INFO     	at java.lang.Thread.run(Thread.java:619)
    INFO
    INFO     Found 1 deadlock.
Comments
Tim Eck 2009-07-13
Saravanan Subbiah 2009-07-13
This seems critical to fix.
Kalai Kannaiyan 2009-08-13
verified the fix with svn rev13161.
another example