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

Bug 364021

Summary: Install New Software + Freeze IDE
Product: [Eclipse Project] Equinox Reporter: Dane <daneau>
Component: p2Assignee: Pascal Rapicault <pascal>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: irbull, jaguarul, pascal, remy.suen
Version: 3.7.1   
Target Milestone: Luna M7   
Hardware: PC   
OS: Windows 7   
Whiteboard:

Description Dane CLA 2011-11-17 07:36:46 EST
Build Identifier: M20110909-1335

When i go to install new software, when updating the repositories for various plugins the entire IDE freezes. This can be quite annoying and i believe it would be best that this be looked at, as such allowing developers to continue working whilst also updating certain components of the IDE. 

This does not happen every time, however it is awefully slow when compared to other IDE's.

I cannot provide a stack trace or any other information.

Reproducible: Always

Steps to Reproduce:
1. Go to Help->Install New Software
2. Select 'All Available Sites'
3. Ensure you have more than 3 update sites
4. Attempt to do anything else on your computer whilst site updates
5. Search for a String and see what happens
Comment 1 Ian Bull CLA 2012-02-14 13:21:28 EST
If this happens again, can you take a stack dump?  There are likely lots of things going on here, and it would be good to understand what component is leading to the performance problems.
Comment 2 Dane CLA 2012-02-15 02:16:46 EST
(In reply to comment #1)
> If this happens again, can you take a stack dump?  There are likely lots of
> things going on here, and it would be good to understand what component is
> leading to the performance problems.

Sure i will, if i  knew how ? Is there some sort of startup param needed to log various aspects of the IDE ?
Comment 3 Paul Webster CLA 2012-02-15 07:25:58 EST
(In reply to comment #2)
> 
> Sure i will, if i  knew how ? Is there some sort of startup param needed to log
> various aspects of the IDE ?

See http://wiki.eclipse.org/index.php/How_to_report_a_deadlock

PW
Comment 4 Iulian Dragos CLA 2014-07-22 06:46:41 EDT
This is stil happening (using Kepler):

Eclipse version: 4.3.2.v20140221-1700

(all of this is done on the UI thread, I had to wait 30 seconds for Eclipse to become responsive again).

"main" #1 prio=6 os_prio=31 tid=0x0000000103002800 nid=0x507 runnable [0x00007fff5fbfc000]
   java.lang.Thread.State: RUNNABLE
	at org.eclipse.equinox.internal.p2.metadata.expression.Latest.evaluateAsIterator(Latest.java:42)
	at org.eclipse.equinox.internal.p2.metadata.expression.ContextExpression.iterator(ContextExpression.java:80)
	at org.eclipse.equinox.p2.query.ExpressionQuery.perform(ExpressionQuery.java:42)
	at org.eclipse.equinox.internal.p2.metadata.index.IndexProvider.query(IndexProvider.java:23)
	at org.eclipse.equinox.internal.p2.metadata.index.IndexProvider.query(IndexProvider.java:32)
	at org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepository.query(CompositeMetadataRepository.java:144)
	at org.eclipse.equinox.internal.p2.ui.ElementQueryDescriptor.performQuery(ElementQueryDescriptor.java:60)
	at org.eclipse.equinox.internal.p2.ui.model.QueriedElement.fetchChildren(QueriedElement.java:104)
	at org.eclipse.equinox.internal.p2.ui.model.QueriedElement.getChildren(QueriedElement.java:69)
	at org.eclipse.equinox.internal.p2.ui.viewers.DeferredQueryContentProvider.getChildren(DeferredQueryContentProvider.java:113)
	at org.eclipse.ui.dialogs.PatternFilter.isParentMatch(PatternFilter.java:257)
	at org.eclipse.equinox.internal.p2.ui.dialogs.AvailableIUPatternFilter.isParentMatch(AvailableIUPatternFilter.java:77)
	at org.eclipse.ui.dialogs.PatternFilter.isElementVisible(PatternFilter.java:241)
	at org.eclipse.ui.dialogs.PatternFilter.select(PatternFilter.java:147)
	at org.eclipse.jface.viewers.ViewerFilter.filter(ViewerFilter.java:51)
	at org.eclipse.ui.dialogs.PatternFilter.filter(PatternFilter.java:79)
	at org.eclipse.jface.viewers.StructuredViewer.getFilteredChildren(StructuredViewer.java:921)
	at org.eclipse.jface.viewers.AbstractTreeViewer.getSortedChildren(AbstractTreeViewer.java:620)
	at org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractTreeViewer.java:820)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:797)
	at org.eclipse.jface.viewers.TreeViewer.createChildren(TreeViewer.java:644)
	at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:768)
	at org.eclipse.jface.viewers.AbstractTreeViewer.internalExpand(AbstractTreeViewer.java:1646)
	at org.eclipse.jface.viewers.AbstractTreeViewer.setExpandedElements(AbstractTreeViewer.java:2424)
	at org.eclipse.equinox.internal.p2.ui.dialogs.DelayedFilterCheckboxTree.restoreExpansions(DelayedFilterCheckboxTree.java:318)
	at org.eclipse.equinox.internal.p2.ui.dialogs.DelayedFilterCheckboxTree$4$3.run(DelayedFilterCheckboxTree.java:227)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
	- locked <0x0000000747a01880> (a org.eclipse.swt.widgets.RunnableLock)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3976)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3653)
	at org.eclipse.jface.window.Window.runEventLoop(Window.java:826)
	at org.eclipse.jface.window.Window.open(Window.java:802)
	at org.eclipse.equinox.p2.ui.ProvisioningUI.openInstallWizard(ProvisioningUI.java:226)
	at org.eclipse.equinox.p2.ui.ProvisioningUI.openInstallWizard(ProvisioningUI.java:202)
	at org.eclipse.equinox.internal.p2.ui.sdk.InstallNewSoftwareHandler.doExecute(InstallNewSoftwareHandler.java:31)
	at org.eclipse.equinox.internal.p2.ui.sdk.PreloadingRepositoryHandler.doExecuteAndLoad(PreloadingRepositoryHandler.java:121)
	at org.eclipse.equinox.internal.p2.ui.sdk.PreloadingRepositoryHandler$1.run(PreloadingRepositoryHandler.java:68)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.equinox.internal.p2.ui.sdk.PreloadingRepositoryHandler.execute(PreloadingRepositoryHandler.java:66)
	at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:290)
	at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:90)
	at sun.reflect.GeneratedMethodAccessor39.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:483)
	at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:56)
	at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:243)
	at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:224)
	at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:132)
	at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:167)
	at org.eclipse.core.commands.Command.executeWithChecks(Command.java:499)
	at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
	at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:213)
	at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.executeItem(HandledContributionItem.java:850)
	at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.handleWidgetSelection(HandledContributionItem.java:743)
	at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.access$7(HandledContributionItem.java:727)
	at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem$4.handleEvent(HandledContributionItem.java:662)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4166)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1466)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1489)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1474)
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1279)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4012)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3651)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1113)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:997)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:140)
	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:611)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:567)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:354)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:483)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1450)
Comment 5 Pascal Rapicault CLA 2014-07-22 10:11:41 EDT
This has been fixed in 4.4 (Luna).