| Summary: | Right click on a project cause Eclipse freeze for minuts | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Technology] EGit | Reporter: | Nuk <nukium> | ||||
| Component: | Core | Assignee: | Project Inbox <egit.core-inbox> | ||||
| Status: | RESOLVED FIXED | QA Contact: | |||||
| Severity: | critical | ||||||
| Priority: | P3 | CC: | andreas.hoehmann, carolynmacleod4, jens.baumgart, matthias.sohn, remy.suen | ||||
| Version: | unspecified | ||||||
| Target Milestone: | 1.2 | ||||||
| Hardware: | PC | ||||||
| OS: | Windows 7 | ||||||
| Whiteboard: | |||||||
| Attachments: |
|
||||||
|
Description
Nuk
When the hang occurs, please get a thread dump. Which EGit version are you using ? Could you retry with a recent nightly build version of EGit, find it here [1] [1] http://download.eclipse.org/egit/updates-nightly Matthias, I think some of the time may be taken up by the isEnabled() method of CompareIndexWithHeadActionHandler. Part of that code path executes an index diff so this will be a time consuming operation for a large repository. I've just tested with the 1.2.0.201110222014 release that coming from nightly builds. The behavior is a little different, only the Eclipse UI is "loading", Windows UI is not freeze anymore. But the right click take always 4/5 minutes to open the dialog. I've tried to make a thread dump but I don't know how to do that (even when reading the wiki entry sorry). (In reply to comment #4) > I've tried to make a thread dump but I don't know how to do that (even when > reading the wiki entry sorry). see e.g. http://wiki.eclipse.org/How_to_report_a_deadlock#Using_jvisualvm Ping, please provide thread dumps when the hang occurs otherwise we can't find the root cause. OK, I'll plan to make the dump asap This is also happening to me. Note that I am on Win XP. FYI, I tried the -consoleLog approach to getting a stack dump, and nothing happens when I press ctrl+break in the console. Used to work, long ago... (In reply to comment #8) > This is also happening to me. Note that I am on Win XP. > FYI, I tried the -consoleLog approach to getting a stack dump, and nothing > happens when I press ctrl+break in the console. Used to work, long ago... Does using a Sun JDK with Visual VM extract something useful? Created attachment 208575 [details]
Stack trace from Suspend
Didn't try it yet, but I will if necessary.
What I did just do is run eclipse-in-eclipse and press Suspend after trying to open context menu. Here (attached) is what I got (this is just the main thread. Let me know if you want any other).
(In reply to comment #10) > Created attachment 208575 [details] > Stack trace from Suspend Thanks for the trace, Carolyn, that will do. eclipse-in-eclipse [Eclipse Application] org.eclipse.equinox.launcher.Main at localhost:4381 (Suspended) Daemon System Thread [Finalizer] (Suspended) Object.wait(long) line: not available [native method] ReferenceQueue<T>.remove(long) line: not available ReferenceQueue<T>.remove() line: not available Finalizer$FinalizerThread.run() line: not available Daemon System Thread [Reference Handler] (Suspended) Object.wait(long) line: not available [native method] Reference$Lock(Object).wait() line: not available Reference$ReferenceHandler.run() line: not available Thread [main] (Suspended) WinNTFileSystem.getLastModifiedTime(File) line: not available [native method] File.lastModified() line: not available FileTreeIterator$FileEntry.getLastModified() line: 192 FileTreeIterator(WorkingTreeIterator).getEntryLastModified() line: 417 FileTreeIterator(WorkingTreeIterator).compareMetadata(DirCacheEntry) line: 636 FileTreeIterator(WorkingTreeIterator).isModified(DirCacheEntry, boolean) line: 665 IndexDiffFilter.include(TreeWalk) line: 171 AndTreeFilter$List.include(TreeWalk) line: 162 TreeWalk.next() line: 560 IndexDiff.diff(ProgressMonitor, int, int, String) line: 281 IndexDiff.diff() line: 225 CompareIndexWithHeadActionHandler.isStaged(Repository, IResource) line: 119 CompareIndexWithHeadActionHandler.isEnabled() line: 90 CompareIndexWithHeadAction(RepositoryAction).isEnabled() line: 125 CompareIndexWithHeadAction(RepositoryAction).selectionChanged(IAction, ISelection) line: 102 ObjectPluginAction(PluginAction).refreshEnablement() line: 206 Matthias, my suspicions about CompareIndexWithHeadActionHandler in comment 3 seems to be confirmed by Carolyn's thread dump. Fix proposed: http://egit.eclipse.org/r/4862 merged as 093cc67cb66ad102cf4c7fa046f5223962540aa3 Wonderful! This will make a real difference for me. Can't wait to try it. Please change status to "verified" when the fix is available in an I build. Thanks! |