Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-dev] Deadlock using 3.0 branch

I just ran into this deadlock - stack trace is below.  We have 2 threads waiting to enter PathEntryManager.getPathEntryStore, which uses the Java synchronized keyword.  The other thread is inside that routine waiting for a lock of some kind.  This other thread has caused the MBS plugin to be started and the MBS has called:

 

                       

                        IJobManager jobManager = Platform.getJobManager();

                        IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();

                        try {

                                    jobManager.beginRule(root, null);

 

                                    startResourceChangeHandling();

                        } catch (Exception e) {…

 

startResourceChangeHandling calls:

 

                        ISavedState lastState =

                                    ResourcesPlugin.getWorkspace().addSaveParticipant(ManagedBuilderCorePlugin.this, listener);

 

Anyone have any ideas?

 

Thanks,

Leo

 

=======================================================

 

Thread [main] (Suspended)

            PathEntryManager.getPathEntryStore(IProject, boolean) line: 1111

            PathEntryManager.getRawPathEntries(ICProject) line: 534

            PathEntryManager.getResolvedPathEntries(ICProject, boolean) line: 445

            PathEntryManager.getResolvedPathEntries(ICProject) line: 429

            CoreModel.getResolvedPathEntries(ICProject) line: 946

            CProject.getResolvedPathEntries() line: 400

            CProject.computeSourceRoots() line: 595

            CProject.computeSourceRoots(OpenableInfo, IResource) line: 610

            CProject.buildStructure(OpenableInfo, IProgressMonitor, Map, IResource) line: 582

            CProject(Openable).generateInfos(Object, Map, IProgressMonitor) line: 292

            CProject(CElement).openWhenClosed(CElementInfo, IProgressMonitor) line: 371

            CProject(CElement).getElementInfo(IProgressMonitor) line: 251

            CProject(CElement).getElementInfo() line: 241

            CProject(Parent).getChildren() line: 54

            CProject.getSourceRoots() line: 478

            CViewContentProvider(BaseCElementContentProvider).getSourceRoots(ICProject) line: 328

            CViewContentProvider(BaseCElementContentProvider).getChildren(Object) line: 182

            CViewContentProvider.getChildren(Object) line: 53

            ProblemTreeViewer(AbstractTreeViewer).getRawChildren(Object) line: 899

            ProblemTreeViewer(StructuredViewer).getFilteredChildren(Object) line: 790

            ProblemTreeViewer(StructuredViewer).getSortedChildren(Object) line: 905

            AbstractTreeViewer$1.run() line: 512

            BusyIndicator.showWhile(Display, Runnable) line: 69

            ProblemTreeViewer(AbstractTreeViewer).createChildren(Widget) line: 494

            ProblemTreeViewer(AbstractTreeViewer).handleTreeExpand(TreeEvent) line: 948

            AbstractTreeViewer$4.treeExpanded(TreeEvent) line: 959

            TypedListener.handleEvent(Event) line: 180

            EventTable.sendEvent(Event) line: 66

            Tree(Widget).sendEvent(Event) line: 843

            Tree(Widget).sendEvent(int, Event, boolean) line: 867

            Tree(Widget).sendEvent(int, Event) line: 852

            Tree.wmNotifyChild(int, int) line: 3704

            Composite(Control).WM_NOTIFY(int, int) line: 3568

            Composite.WM_NOTIFY(int, int) line: 1035

            Composite(Control).windowProc(int, int, int, int) line: 3089

            Display.windowProc(int, int, int, int) line: 3706

            OS.CallWindowProcW(int, int, int, int, int) line: not available [native method]

            OS.CallWindowProc(int, int, int, int, int) line: 1580

            Tree.callWindowProc(int, int, int, int) line: 219

            Tree.WM_LBUTTONDOWN(int, int) line: 2815

            Tree(Control).windowProc(int, int, int, int) line: 3071

            Tree.windowProc(int, int, int, int) line: 2391

            Display.windowProc(int, int, int, int) line: 3706

            OS.DispatchMessageW(MSG) line: not available [native method]

            OS.DispatchMessage(MSG) line: 1656

            Display.readAndDispatch() line: 2711

            Workbench.runEventLoop(Window$IExceptionHandler, Display) line: 1699

            Workbench.runUI() line: 1663

            Workbench.createAndRunWorkbench(Display, WorkbenchAdvisor) line: 367

            PlatformUI.createAndRunWorkbench(Display, WorkbenchAdvisor) line: 143

            IDEApplication.run(Object) line: 103

            PlatformActivator$1.run(Object) line: 226

            EclipseStarter.run(Object) line: 376

            EclipseStarter.run(String[], Runnable) line: 163

            NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]

            NativeMethodAccessorImpl.invoke(Object, Object[]) line: not available

            DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: not available

            Method.invoke(Object, Object[]) line: not available

            Main.invokeFramework(String[], URL[]) line: 334

            Main.basicRun(String[]) line: 278

            Main.run(String[]) line: 973

            Main.main(String[]) line: 948

 

Thread [C/C++ Indexer] (Suspended)

            Object.wait(long) line: not available [native method]

            Semaphore.acquire(long) line: 38

            OrderedLock.doAcquire(Semaphore, long) line: 167

            OrderedLock.acquire(long) line: 103

            OrderedLock.acquire() line: 80

            WorkManager.checkIn(ISchedulingRule, IProgressMonitor) line: 97

            Workspace.prepareOperation(ISchedulingRule, IProgressMonitor) line: 1674

            SaveManager.addParticipant(Plugin, ISaveParticipant) line: 111

            Workspace.addSaveParticipant(Plugin, ISaveParticipant) line: 159

            ManagedBuilderCorePlugin.startResourceChangeHandling() line: 139

            ManagedBuilderCorePlugin.start(BundleContext) line: 96

            BundleContextImpl$2.run() line: 994

            AccessController.doPrivileged(PrivilegedExceptionAction) line: not available [native method]

            BundleContextImpl.startActivator(BundleActivator) line: 988

            BundleContextImpl.start() line: 969

            BundleHost.startWorker(boolean) line: 321

            BundleHost(AbstractBundle).start() line: 266

            EclipseClassLoader.findLocalClass(String) line: 116

            BundleLoader.findLocalClass(String) line: 337

            BundleLoader.findClass(String, boolean) line: 389

            BundleLoader.findClass(String) line: 350

            EclipseClassLoader(AbstractClassLoader).loadClass(String, boolean) line: 78

            EclipseClassLoader(ClassLoader).loadClass(String) line: not available

            BundleLoader.loadClass(String) line: 275

            BundleHost.loadClass(String, boolean) line: 227

            BundleHost(AbstractBundle).loadClass(String) line: 1259

            ConfigurationElement.createExecutableExtension(Bundle, String, Object, ConfigurationElement, String) line: 152

            ConfigurationElement.createExecutableExtension(String, String, Object, ConfigurationElement, String) line: 142

            ConfigurationElement.createExecutableExtension(String) line: 129

            ConfigurationElementHandle.createExecutableExtension(String) line: 48

            COwnerConfiguration.createOwner() line: 52

            COwner.update(IProject, ICDescriptor, String) line: 47

            CDescriptor.get(String, boolean) line: 216

            PathEntryManager.createPathEntryStore(IProject) line: 1126

            PathEntryManager.getPathEntryStore(IProject, boolean) line: 1113

            PathEntryManager.getRawPathEntries(ICProject) line: 534

            PathEntryManager.getResolvedPathEntries(ICProject, boolean) line: 445

            PathEntryManager.getResolvedPathEntries(ICProject) line: 429

            CoreModel.getResolvedPathEntries(ICProject) line: 946

            CProject.getResolvedPathEntries() line: 400

            CProject.computeSourceRoots() line: 595

            CProject.computeSourceRoots(OpenableInfo, IResource) line: 610

            CProject.buildStructure(OpenableInfo, IProgressMonitor, Map, IResource) line: 582

            CProject(Openable).generateInfos(Object, Map, IProgressMonitor) line: 292

            CProject(CElement).openWhenClosed(CElementInfo, IProgressMonitor) line: 371

            CProject(CElement).getElementInfo(IProgressMonitor) line: 251

            CProject(CElement).getElementInfo() line: 241

            CProject(Parent).getChildren() line: 54

            CProject.getSourceRoots() line: 478

            DOMIndexAllProject.execute(IProgressMonitor) line: 92

            IndexManager(JobManager).run() line: 466

            Thread.run() line: not available

 

Thread [Worker-5] (Suspended)

            PathEntryManager.getPathEntryStore(IProject, boolean) line: 1111

            PathEntryManager.getRawPathEntries(ICProject) line: 534

            PathEntryManager.getResolvedPathEntries(ICProject, boolean) line: 445

            PathEntryManager.getResolvedPathEntries(ICProject) line: 429

            CoreModel.getResolvedPathEntries(ICProject) line: 946

            CProject.getResolvedPathEntries() line: 400

            CProject.computeSourceRoots() line: 595

            CProject.getAllSourceRoots() line: 502

            CModelManager.create(IFile, ICProject) line: 278

            CModelManager.create(IResource, ICProject) line: 218

            DeltaProcessor.createElement(IResource) line: 96

            DeltaProcessor.traverseDelta(ICElement, IResourceDelta) line: 462

            DeltaProcessor.traverseDelta(ICElement, IResourceDelta) line: 481

            DeltaProcessor.processResourceDelta(IResourceDelta) line: 443

            CModelManager.resourceChanged(IResourceChangeEvent) line: 738

            NotificationManager$2.run() line: 276

            InternalPlatform.run(ISafeRunnable) line: 1044

            Platform.run(ISafeRunnable) line: 783

            NotificationManager.notify(ResourceChangeListenerList$ListenerEntry[], IResourceChangeEvent, boolean) line: 270

            NotificationManager.broadcastChanges(ElementTree, ResourceChangeEvent, boolean) line: 144

            Workspace.broadcastPostChange() line: 180

            Workspace.endOperation(ISchedulingRule, boolean, IProgressMonitor) line: 914

            RefreshJob(InternalWorkspaceJob).run(IProgressMonitor) line: 45

            Worker.run() line: 76


Back to the top