Bug 566256 - UI freeze during deletion of resources
Summary: UI freeze during deletion of resources
Status: RESOLVED FIXED
Alias: None
Product: EGit
Classification: Technology
Component: UI (show other bugs)
Version: unspecified   Edit
Hardware: PC Windows 10
: P3 normal (vote)
Target Milestone: 5.9   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords: performance
Depends on:
Blocks:
 
Reported: 2020-08-21 05:09 EDT by Lars Vogel CLA
Modified: 2020-08-22 15:23 EDT (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Lars Vogel CLA 2020-08-21 05:09:12 EDT
Under Windows, I selected multiple files and selected "Delete".
Triggered a UI freeze of 6.1 seconds with three stack traces.

First one: 

at org.eclipse.core.internal.resources.Workspace.getResourceInfo(Workspace.java:1757)
	at org.eclipse.core.internal.resources.Resource.getResourceInfo(Resource.java:1172)
	at org.eclipse.core.internal.resources.Resource.exists(Resource.java:939)
	at org.eclipse.core.internal.localstore.FileSystemResourceManager.allPathsForLocationNonCanonical(FileSystemResourceManager.java:88)
	at org.eclipse.core.internal.localstore.FileSystemResourceManager.allPathsForLocation(FileSystemResourceManager.java:70)
	at org.eclipse.core.internal.localstore.FileSystemResourceManager.allResourcesFor(FileSystemResourceManager.java:229)
	at org.eclipse.core.internal.resources.WorkspaceRoot.findContainersForLocationURI(WorkspaceRoot.java:79)
	at org.eclipse.core.internal.resources.WorkspaceRoot.findContainersForLocationURI(WorkspaceRoot.java:72)
	at org.eclipse.egit.core.internal.util.ResourceUtil.getContainerForLocationURI(ResourceUtil.java:582)
	at org.eclipse.egit.core.internal.util.ResourceUtil.getContainerForLocation(ResourceUtil.java:403)
	at org.eclipse.egit.core.internal.util.ResourceUtil.getResourceForLocation(ResourceUtil.java:107)
	at org.eclipse.egit.core.internal.job.RuleUtil.getRuleForContainers(RuleUtil.java:108)
	at org.eclipse.egit.core.op.DeletePathsOperation.calculateSchedulingRule(DeletePathsOperation.java:124)
	at org.eclipse.egit.core.op.DeletePathsOperation.<init>(DeletePathsOperation.java:57)
	at org.eclipse.egit.ui.internal.operations.DeletePathsOperationUI.runNonWorkspaceAction(DeletePathsOperationUI.java:83)
	at org.eclipse.egit.ui.internal.operations.DeletePathsOperationUI.run(DeletePathsOperationUI.java:62)
	at org.eclipse.egit.ui.internal.staging.StagingView$DeleteAction.run(StagingView.java:3248)



Second one:

	at org.eclipse.core.internal.resources.AliasManager$LocationMap.matchingResourcesDo(AliasManager.java:201)
	at org.eclipse.core.internal.resources.AliasManager.findResources(AliasManager.java:452)
	at org.eclipse.core.internal.localstore.FileSystemResourceManager.findLinkedResourcesPaths(FileSystemResourceManager.java:157)
	at org.eclipse.core.internal.localstore.FileSystemResourceManager.allPathsForLocationNonCanonical(FileSystemResourceManager.java:132)
	at org.eclipse.core.internal.localstore.FileSystemResourceManager.allPathsForLocation(FileSystemResourceManager.java:70)
	at org.eclipse.core.internal.localstore.FileSystemResourceManager.allResourcesFor(FileSystemResourceManager.java:229)
	at org.eclipse.core.internal.resources.WorkspaceRoot.findContainersForLocationURI(WorkspaceRoot.java:79)
	at org.eclipse.core.internal.resources.WorkspaceRoot.findContainersForLocationURI(WorkspaceRoot.java:72)
	at org.eclipse.egit.core.internal.util.ResourceUtil.getContainerForLocationURI(ResourceUtil.java:582)
	at org.eclipse.egit.core.internal.util.ResourceUtil.getContainerForLocation(ResourceUtil.java:403)
	at org.eclipse.egit.core.internal.util.ResourceUtil.getResourceForLocation(ResourceUtil.java:107)
	at org.eclipse.egit.core.internal.job.RuleUtil.getRuleForContainers(RuleUtil.java:108)
	at org.eclipse.egit.core.op.DeletePathsOperation.calculateSchedulingRule(DeletePathsOperation.java:124)
	at org.eclipse.egit.core.op.DeletePathsOperation.<init>(DeletePathsOperation.java:57)
	at org.eclipse.egit.ui.internal.operations.DeletePathsOperationUI.runNonWorkspaceAction(DeletePathsOperationUI.java:83)
	at org.eclipse.egit.ui.internal.operations.DeletePathsOperationUI.run(DeletePathsOperationUI.java:62)
	at org.eclipse.egit.ui.internal.staging.StagingView$DeleteAction.run(StagingView.java:3248)


Third one: 

	at org.eclipse.core.internal.utils.FileUtil.canonicalPath(FileUtil.java:69)
	at org.eclipse.core.internal.utils.FileUtil.canonicalURI(FileUtil.java:164)
	at org.eclipse.core.internal.localstore.FileSystemResourceManager.allPathsForLocation(FileSystemResourceManager.java:67)
	at org.eclipse.core.internal.localstore.FileSystemResourceManager.allResourcesFor(FileSystemResourceManager.java:229)
	at org.eclipse.core.internal.resources.WorkspaceRoot.findFilesForLocationURI(WorkspaceRoot.java:97)
	at org.eclipse.core.internal.resources.WorkspaceRoot.findFilesForLocationURI(WorkspaceRoot.java:90)
	at org.eclipse.egit.core.internal.util.ResourceUtil.getFileForLocationURI(ResourceUtil.java:576)
	at org.eclipse.egit.core.internal.util.ResourceUtil.getFileForLocation(ResourceUtil.java:136)
	at org.eclipse.egit.core.internal.util.ResourceUtil.getResourceForLocation(ResourceUtil.java:103)
	at org.eclipse.egit.core.internal.job.RuleUtil.getRuleForContainers(RuleUtil.java:108)
	at org.eclipse.egit.core.op.DeletePathsOperation.calculateSchedulingRule(DeletePathsOperation.java:124)
	at org.eclipse.egit.core.op.DeletePathsOperation.<init>(DeletePathsOperation.java:57)
	at org.eclipse.egit.ui.internal.operations.DeletePathsOperationUI.runNonWorkspaceAction(DeletePathsOperationUI.java:83)
	at org.eclipse.egit.ui.internal.operations.DeletePathsOperationUI.run(DeletePathsOperationUI.java:62)
	at org.eclipse.egit.ui.internal.staging.StagingView$DeleteAction.run(StagingView.java:3248)
Comment 1 Eclipse Genie CLA 2020-08-22 11:25:43 EDT
New Gerrit change created: https://git.eclipse.org/r/c/egit/egit/+/168095