Community
Participate
Working Groups
In our adopter product we have a headless batch tool that is experiencing fairly frequent deadlocks. This appears to have started only recently, and looks like it could be related to contention in the Java project/classpath area. Here is a stack obtained via jdb of the hang, and we will be attempting to generate a javacore: main: [1] java.lang.Object.wait (native method) [2] java.lang.Object.wait (Object.java:196) [3] org.eclipse.core.internal.jobs.Semaphore.acquire (Semaphore.java:38) [4] org.eclipse.core.internal.jobs.OrderedLock.doAcquire (OrderedLock.java:169) [5] org.eclipse.core.internal.jobs.OrderedLock.acquire (OrderedLock.java:105) [6] org.eclipse.core.internal.jobs.OrderedLock.acquire (OrderedLock.java:82) [7] org.eclipse.core.internal.resources.WorkManager.checkIn (WorkManager.java:118 ) [8] org.eclipse.core.internal.resources.Workspace.prepareOperation (Workspace.jav a:1,747) [9] org.eclipse.core.internal.resources.File.setContents (File.java:364) [10] org.eclipse.jdt.internal.core.JavaProject.setSharedProperty (JavaProject.jav a:2,944) [11] org.eclipse.jdt.internal.core.JavaProject.writeFileEntries (JavaProject.java :2,710) [12] org.eclipse.jdt.internal.core.JavaModelManager$7.run (JavaModelManager.java: 1,202) [13] org.eclipse.core.internal.resources.Workspace.run (Workspace.java:1,800) [14] org.eclipse.jdt.internal.core.JavaModelManager$PerProjectInfo.writeAndCacheC lasspath (JavaModelManager.java:1,196) [15] org.eclipse.jdt.internal.core.SetClasspathOperation.executeOperation (SetCla sspathOperation.java:61) [16] org.eclipse.jdt.internal.core.JavaModelOperation.run (JavaModelOperation.jav a:709) [17] org.eclipse.core.internal.resources.Workspace.run (Workspace.java:1,800) [18] org.eclipse.jdt.internal.core.JavaModelOperation.runOperation (JavaModelOper ation.java:775) [19] org.eclipse.jdt.internal.core.JavaProject.setRawClasspath (JavaProject.java: 2,874) [20] org.eclipse.jdt.internal.core.JavaProject.setRawClasspath (JavaProject.java: 2,905) [21] org.eclipse.jst.j2ee.project.facet.J2EEFacetInstallDelegate.addToClasspath ( J2EEFacetInstallDelegate.java:57) [22] org.eclipse.jst.j2ee.ejb.project.facet.EjbFacetInstallDelegate.execute (EjbF acetInstallDelegate.java:146) [23] org.eclipse.wst.common.project.facet.core.internal.FacetedProject.callDelega te (FacetedProject.java:1,394) [24] org.eclipse.wst.common.project.facet.core.internal.FacetedProject.modifyInte rnal (FacetedProject.java:401) [25] org.eclipse.wst.common.project.facet.core.internal.FacetedProject.mergeChang esInternal (FacetedProject.java:1,134) [26] org.eclipse.wst.common.project.facet.core.internal.FacetedProject.access$2 ( FacetedProject.java:1,070) [27] org.eclipse.wst.common.project.facet.core.internal.FacetedProject$1.run (Fac etedProject.java:309) [28] org.eclipse.core.internal.resources.Workspace.run (Workspace.java:1,800) [29] org.eclipse.wst.common.project.facet.core.internal.FacetedProject.modify (Fa cetedProject.java:319) [30] org.eclipse.wst.common.componentcore.internal.operation.FacetProjectCreation Operation.execute (FacetProjectCreationOperation.java:83) [31] org.eclipse.wst.common.frameworks.internal.datamodel.DataModelPausibleOperat ionImpl$1.run (DataModelPausibleOperationImpl.java:376) [32] org.eclipse.core.internal.resources.Workspace.run (Workspace.java:1,800) [33] org.eclipse.wst.common.frameworks.internal.datamodel.DataModelPausibleOperat ionImpl.runOperation (DataModelPausibleOperationImpl.java:401) [34] org.eclipse.wst.common.frameworks.internal.datamodel.DataModelPausibleOperat ionImpl.runOperation (DataModelPausibleOperationImpl.java:352) [35] org.eclipse.wst.common.frameworks.internal.datamodel.DataModelPausibleOperat ionImpl.doExecute (DataModelPausibleOperationImpl.java:242) [36] org.eclipse.wst.common.frameworks.internal.datamodel.DataModelPausibleOperat ionImpl.executeImpl (DataModelPausibleOperationImpl.java:214) [37] org.eclipse.wst.common.frameworks.internal.datamodel.DataModelPausibleOperat ionImpl.cacheThreadAndContinue (DataModelPausibleOperationImpl.java:89) [38] org.eclipse.wst.common.frameworks.internal.datamodel.DataModelPausibleOperat ionImpl.execute (DataModelPausibleOperationImpl.java:202) [39] org.eclipse.jst.j2ee.internal.archive.operations.J2EEArtifactImportOperation .createVirtualComponent (J2EEArtifactImportOperation.java:103) [40] org.eclipse.jst.j2ee.internal.archive.operations.J2EEArtifactImportOperation .doExecute (J2EEArtifactImportOperation.java:90) [41] org.eclipse.jst.j2ee.internal.archive.operations.J2EEArtifactImportOperation .execute (J2EEArtifactImportOperation.java:63) [42] org.eclipse.wst.common.frameworks.internal.datamodel.DataModelPausibleOperat ionImpl$1.run (DataModelPausibleOperationImpl.java:376) [43] org.eclipse.core.internal.resources.Workspace.run (Workspace.java:1,800) [44] org.eclipse.wst.common.frameworks.internal.datamodel.DataModelPausibleOperat ionImpl.runOperation (DataModelPausibleOperationImpl.java:401) [45] org.eclipse.wst.common.frameworks.internal.datamodel.DataModelPausibleOperat ionImpl.runOperation (DataModelPausibleOperationImpl.java:352) [46] org.eclipse.wst.common.frameworks.internal.datamodel.DataModelPausibleOperat ionImpl.doExecute (DataModelPausibleOperationImpl.java:242) [47] org.eclipse.wst.common.frameworks.internal.datamodel.DataModelPausibleOperat ionImpl.executeImpl (DataModelPausibleOperationImpl.java:214) [48] org.eclipse.wst.common.frameworks.internal.datamodel.DataModelPausibleOperat ionImpl.cacheThreadAndContinue (DataModelPausibleOperationImpl.java:89) [49] org.eclipse.wst.common.frameworks.internal.datamodel.DataModelPausibleOperat ionImpl.execute (DataModelPausibleOperationImpl.java:202) [50] org.eclipse.jst.j2ee.internal.archive.operations.EARComponentImportOperation .doExecute (EARComponentImportOperation.java:136) [51] org.eclipse.jst.j2ee.internal.archive.operations.J2EEArtifactImportOperation .execute (J2EEArtifactImportOperation.java:63) [52] org.eclipse.wst.common.frameworks.internal.datamodel.DataModelPausibleOperat ionImpl$1.run (DataModelPausibleOperationImpl.java:376) [53] org.eclipse.core.internal.resources.Workspace.run (Workspace.java:1,800) [54] org.eclipse.wst.common.frameworks.internal.datamodel.DataModelPausibleOperat ionImpl.runOperation (DataModelPausibleOperationImpl.java:401) [55] org.eclipse.wst.common.frameworks.internal.datamodel.DataModelPausibleOperat ionImpl.runOperation (DataModelPausibleOperationImpl.java:352) [56] org.eclipse.wst.common.frameworks.internal.datamodel.DataModelPausibleOperat ionImpl.doExecute (DataModelPausibleOperationImpl.java:242) [57] org.eclipse.wst.common.frameworks.internal.datamodel.DataModelPausibleOperat ionImpl.executeImpl (DataModelPausibleOperationImpl.java:214) [58] org.eclipse.wst.common.frameworks.internal.datamodel.DataModelPausibleOperat ionImpl.cacheThreadAndContinue (DataModelPausibleOperationImpl.java:89) [59] org.eclipse.wst.common.frameworks.internal.datamodel.DataModelPausibleOperat ionImpl.execute (DataModelPausibleOperationImpl.java:202) ....... JIT Compilation Thread: Signal Dispatcher: [1] com.ibm.misc.SignalDispatcher.waitForSignal (native method) [2] com.ibm.misc.SignalDispatcher.run (SignalDispatcher.java:54) Gc Slave Thread: State Data Manager: [1] java.lang.Thread.sleep (native method) [2] java.lang.Thread.sleep (Thread.java:850) [3] org.eclipse.osgi.internal.baseadaptor.StateManager.run (StateManager.java:297 ) [4] java.lang.Thread.run (Thread.java:735) Framework Event Dispatcher: [1] java.lang.Object.wait (native method) [2] java.lang.Object.wait (Object.java:167) [3] org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent (Ev entManager.java:377) [4] org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run (EventManage r.java:317) Start Level Event Dispatcher: [1] java.lang.Object.wait (native method) [2] java.lang.Object.wait (Object.java:167) [3] org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent (Ev entManager.java:377) [4] org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run (EventManage r.java:317) Worker-0: [1] org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath (JavaProject.j ava:1,870) [2] org.eclipse.jdt.internal.core.DeltaProcessingState.getRootInfos (DeltaProcess ingState.java:265) [3] org.eclipse.jdt.internal.core.DeltaProcessingState.initializeRoots (DeltaProc essingState.java:210) [4] org.eclipse.jdt.internal.core.DeltaProcessor.processResourceDelta (DeltaProce ssor.java:1,741) [5] org.eclipse.jdt.internal.core.DeltaProcessor.resourceChanged (DeltaProcessor. java:1,923) [6] org.eclipse.jdt.internal.core.DeltaProcessingState.resourceChanged (DeltaProc essingState.java:431) [7] org.eclipse.core.internal.events.NotificationManager$2.run (NotificationManag er.java:288) [8] org.eclipse.core.runtime.SafeRunner.run (SafeRunner.java:37) [9] org.eclipse.core.internal.events.NotificationManager.notify (NotificationMana ger.java:282) [10] org.eclipse.core.internal.events.NotificationManager.broadcastChanges (Notif icationManager.java:148) [11] org.eclipse.core.internal.resources.Workspace.broadcastPostChange (Workspace .java:313) [12] org.eclipse.core.internal.resources.Workspace.endOperation (Workspace.java:1 ,022) [13] org.eclipse.core.internal.resources.Workspace.run (Workspace.java:1,809) [14] org.eclipse.core.internal.events.NotificationManager$NotifyJob.run (Notifica tionManager.java:39) [15] org.eclipse.core.internal.jobs.Worker.run (Worker.java:55) Worker-1: [1] java.lang.Object.wait (native method) [2] java.lang.Object.wait (Object.java:196) [3] org.eclipse.core.internal.jobs.ThreadJob.joinRun (ThreadJob.java:189) [4] org.eclipse.core.internal.jobs.ImplicitJobs.begin (ImplicitJobs.java:87) [5] org.eclipse.core.internal.jobs.JobManager.beginRule (JobManager.java:230) [6] org.eclipse.core.internal.utils.StringPoolJob.run (StringPoolJob.java:99) [7] org.eclipse.core.internal.jobs.Worker.run (Worker.java:55) Thread-5: [1] java.lang.Thread.sleep (native method) [2] java.lang.Thread.sleep (Thread.java:850) [3] org.eclipse.wst.common.project.facet.core.runtime.internal.RuntimeManagerImpl $RuntimeValidationThread.run (RuntimeManagerImpl.java:1,207)
Created attachment 124398 [details] Reformated stack trace
It looks like a dup of bug 249930.
Marking as a dup of bug 249930 since after I provided a binary patch to Robert, he confirmed that the deadlock problem went away. *** This bug has been marked as a duplicate of bug 249930 ***
Verified.