Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 342281 - EGit causes eclipse to hang waiting on spawned which.exe
Summary: EGit causes eclipse to hang waiting on spawned which.exe
Status: CLOSED DUPLICATE of bug 337533
Alias: None
Product: EGit
Classification: Technology
Component: Core (show other bugs)
Version: unspecified   Edit
Hardware: PC Windows XP
: P3 critical (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-04-08 09:05 EDT by Jan Sievers CLA
Modified: 2011-04-10 17:52 EDT (History)
2 users (show)

See Also:


Attachments
process explorer process hierarchy (13.78 KB, image/png)
2011-04-08 09:05 EDT, Jan Sievers CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jan Sievers CLA 2011-04-08 09:05:52 EDT
Created attachment 192823 [details]
process explorer process hierarchy

I open the context menu on several projects to share them via git and eclipse hangs forever.
I see in the process explorer that eclipse.exe is waiting on bash.exe which in turn waits on which.exe (which seemingly never returns).

See VM stacktrace I obtained via jstack from the hanging process below.

Together with Christian Halstrick I was able to show that the problem is influenced by my PATH environment variable.

C:\Program Files\Windows Resource Kits\Tools\;c:\maketools\perl\bin;c:\maketools\bin;C:\PROGRA~1\SECUDE\SECUDE~1;C:\WINDOWS\system32;C:\WINDOWS;C:\WIN
DOWS\System32\Wbem;C:\Program Files\Common Files\OpSession\Shared;C:\Program Files\Common Files\OpSession\Viewer Shared;C:\Program Files\Symantec\pcAn
ywhere\;C:\Program Files\Perforce;c:\tools;C:\libs\apache-ant-1.7.1\bin;c:\Program Files\Support Tools\;C:\Program Files\Microsoft SQL Server\90\Tools
\binn\;C:\Program Files\Microsoft SQL Server\90\DTS\Binn\;C:\Program Files\Microsoft SQL Server\90\Tools\Binn\VSShell\Common7\IDE\;C:\libs\apache-mave
n-3.0.2\bin;c:\Program Files\putty;c:\tools\git\bin;c:\cygwin\bin;C:\Program Files\Windows Imaging\

If I reduce PATH to just C:\WINDOWS\system32;C:\WINDOWS, the problem does not occur.

--- full VM stack dump ---

c:\JDKs\1.6.0_20\bin\jstack.exe 37028

2011-04-08 14:49:16
Full thread dump Java HotSpot(TM) Client VM (16.3-b01 mixed mode):

"[ThreadPool Manager] - Idle Thread" daemon prio=6 tid=0x05d62000 nid=0x8aa4 in Object.wait() [0x06d0f000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x113a3bd0> (a org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor)
        at java.lang.Object.wait(Object.java:485)
        at org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor.run(Executor.java:106)
        - locked <0x113a3bd0> (a org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor)

"com.google.inject.internal.util.$Finalizer" daemon prio=6 tid=0x05b00800 nid=0x9048 in Object.wait() [0x06b9f000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x199f0cb8> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        - locked <0x199f0cb8> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        at com.google.inject.internal.util.$Finalizer.run(Finalizer.java:144)
        at java.lang.Thread.run(Unknown Source)

"Worker-5" prio=6 tid=0x056d8800 nid=0x5edc in Object.wait() [0x0660f000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x182852a0> (a org.eclipse.core.internal.jobs.WorkerPool)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:188)
        - locked <0x182852a0> (a org.eclipse.core.internal.jobs.WorkerPool)
        at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:220)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:50)

"Worker-4" prio=6 tid=0x0569b800 nid=0x9fd0 waiting for monitor entry [0x0650f000]
   java.lang.Thread.State: BLOCKED (on object monitor)
        at org.eclipse.egit.core.RepositoryCache.getAllRepositories(RepositoryCache.java:63)
        - waiting to lock <0x1958c540> (a org.eclipse.egit.core.RepositoryCache)
        at org.eclipse.egit.ui.Activator$RepositoryChangeScanner.run(Activator.java:408)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

"Worker-3" prio=6 tid=0x04444c00 nid=0x7e28 in Object.wait() [0x0640f000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x182852a0> (a org.eclipse.core.internal.jobs.WorkerPool)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:188)
        - locked <0x182852a0> (a org.eclipse.core.internal.jobs.WorkerPool)
        at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:220)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:50)

"Java indexing" daemon prio=4 tid=0x04411800 nid=0x8d18 in Object.wait() [0x0564f000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x18f7a078> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager)
        at java.lang.Object.wait(Object.java:485)
        at org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobManager.java:382)
        - locked <0x18f7a078> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager)
        at java.lang.Thread.run(Unknown Source)

"Worker-JM" prio=6 tid=0x03867400 nid=0x89b0 in Object.wait() [0x045bf000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x1826dfd0> (a java.util.ArrayList)
        at org.eclipse.core.internal.jobs.InternalWorker.run(InternalWorker.java:58)
        - locked <0x1826dfd0> (a java.util.ArrayList)

"[Timer] - Main Queue Handler" daemon prio=6 tid=0x03875400 nid=0x9120 in Object.wait() [0x040bf000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x1826e050> (a java.lang.Object)
        at org.eclipse.equinox.internal.util.impl.tpt.timer.TimerImpl.run(TimerImpl.java:141)
        - locked <0x1826e050> (a java.lang.Object)
        at java.lang.Thread.run(Unknown Source)

"Framework Event Dispatcher" daemon prio=6 tid=0x037a2800 nid=0x7660 in Object.wait() [0x03eaf000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x1826e100> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
        at java.lang.Object.wait(Object.java:485)
        at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:400)
        - locked <0x1826e100> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
        at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:336)

"Start Level Event Dispatcher" daemon prio=6 tid=0x0385e400 nid=0x9fc8 in Object.wait() [0x03daf000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x1826e178> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
        at java.lang.Object.wait(Object.java:485)
        at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:400)
        - locked <0x1826e178> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
        at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:336)

"State Data Manager" daemon prio=6 tid=0x0380e800 nid=0x9a30 waiting on condition [0x03caf000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep(Native Method)
        at org.eclipse.osgi.internal.baseadaptor.StateManager.run(StateManager.java:297)
        at java.lang.Thread.run(Unknown Source)

"Framework Active Thread" prio=6 tid=0x03783800 nid=0x8bd8 in Object.wait() [0x03baf000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x181652b8> (a org.eclipse.osgi.framework.internal.core.Framework)
        at org.eclipse.osgi.framework.internal.core.Framework.run(Framework.java:1816)
        - locked <0x181652b8> (a org.eclipse.osgi.framework.internal.core.Framework)
        at java.lang.Thread.run(Unknown Source)

"Low Memory Detector" daemon prio=6 tid=0x02e9f800 nid=0x8470 runnable [0x00000000]
   java.lang.Thread.State: RUNNABLE

"CompilerThread0" daemon prio=10 tid=0x02e99800 nid=0x82fc waiting on condition [0x00000000]
   java.lang.Thread.State: RUNNABLE

"Attach Listener" daemon prio=10 tid=0x02e98000 nid=0x5c78 waiting on condition [0x00000000]
   java.lang.Thread.State: RUNNABLE

"Signal Dispatcher" daemon prio=10 tid=0x02e96c00 nid=0x84c4 runnable [0x00000000]
   java.lang.Thread.State: RUNNABLE

"Finalizer" daemon prio=8 tid=0x02e87800 nid=0x8530 in Object.wait() [0x0320f000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x18060298> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        - locked <0x18060298> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)

"Reference Handler" daemon prio=10 tid=0x02e82c00 nid=0x93b0 in Object.wait() [0x0310f000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x18060320> (a java.lang.ref.Reference$Lock)
        at java.lang.Object.wait(Object.java:485)
        at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
        - locked <0x18060320> (a java.lang.ref.Reference$Lock)

"main" prio=6 tid=0x00ae6c00 nid=0x89b8 runnable [0x0012d000]
   java.lang.Thread.State: RUNNABLE
        at java.io.FileInputStream.readBytes(Native Method)
        at java.io.FileInputStream.read(Unknown Source)
        at java.io.BufferedInputStream.read1(Unknown Source)
        at java.io.BufferedInputStream.read(Unknown Source)
        - locked <0x11384f40> (a java.io.BufferedInputStream)
        at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
        at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
        at sun.nio.cs.StreamDecoder.read(Unknown Source)
        - locked <0x11387000> (a java.io.InputStreamReader)
        at java.io.InputStreamReader.read(Unknown Source)
        at java.io.BufferedReader.fill(Unknown Source)
        at java.io.BufferedReader.readLine(Unknown Source)
        - locked <0x11387000> (a java.io.InputStreamReader)
        at java.io.BufferedReader.readLine(Unknown Source)
        at org.eclipse.jgit.util.FS.readPipe(FS.java:234)
        at org.eclipse.jgit.util.FS_Win32.gitPrefix(FS_Win32.java:94)
        at org.eclipse.jgit.util.SystemReader$1.openSystemConfig(SystemReader.java:77)
        at org.eclipse.jgit.storage.file.FileRepository.<init>(FileRepository.java:157)
        at org.eclipse.jgit.storage.file.FileRepository.<init>(FileRepository.java:128)
        at org.eclipse.egit.core.RepositoryCache.lookupRepository(RepositoryCache.java:52)
        - locked <0x1958c540> (a org.eclipse.egit.core.RepositoryCache)
        at org.eclipse.egit.core.project.GitProjectData.map(GitProjectData.java:457)
        at org.eclipse.egit.core.project.GitProjectData.remapAll(GitProjectData.java:420)
        at org.eclipse.egit.core.project.GitProjectData.load(GitProjectData.java:413)
        at org.eclipse.egit.core.project.GitProjectData.get(GitProjectData.java:168)
        - locked <0x2a1a5668> (a java.lang.Class for org.eclipse.egit.core.project.GitProjectData)
        at org.eclipse.egit.core.GitProvider.getData(GitProvider.java:78)
        - locked <0x19639848> (a org.eclipse.egit.core.GitProvider)
        at org.eclipse.egit.core.project.RepositoryMapping.getMapping(RepositoryMapping.java:223)
        at org.eclipse.egit.ui.internal.actions.RepositoryActionHandler.getProjectsInRepositoryOfSelectedResources(RepositoryActionHandler.java:158)
        at org.eclipse.egit.ui.internal.actions.RepositoryActionHandler.getProjectsInRepositoryOfSelectedResources(RepositoryActionHandler.java:140)
        at org.eclipse.egit.ui.internal.actions.CommitActionHandler.isEnabled(CommitActionHandler.java:391)
        at org.eclipse.egit.ui.internal.actions.RepositoryAction.isEnabled(RepositoryAction.java:118)
        at org.eclipse.egit.ui.internal.actions.RepositoryAction.selectionChanged(RepositoryAction.java:95)
        at org.eclipse.ui.internal.PluginAction.refreshEnablement(PluginAction.java:206)
        at org.eclipse.ui.internal.PluginAction.createDelegate(PluginAction.java:126)
        at org.eclipse.ui.internal.PluginAction.selectionChanged(PluginAction.java:275)
        at org.eclipse.ui.internal.PluginAction.<init>(PluginAction.java:112)
        at org.eclipse.ui.internal.ObjectPluginAction.<init>(ObjectPluginAction.java:83)
        at org.eclipse.ui.internal.ActionDescriptor.createAction(ActionDescriptor.java:272)
        at org.eclipse.ui.internal.ActionDescriptor.<init>(ActionDescriptor.java:176)
        at org.eclipse.ui.internal.ActionDescriptor.<init>(ActionDescriptor.java:103)
        at org.eclipse.ui.internal.ObjectActionContributor.createActionDescriptor(ObjectActionContributor.java:201)
        at org.eclipse.ui.internal.PluginActionBuilder.readElement(PluginActionBuilder.java:161)
        at org.eclipse.ui.internal.ObjectActionContributor.readElement(ObjectActionContributor.java:280)
        at org.eclipse.ui.internal.registry.RegistryReader.readElements(RegistryReader.java:144)
        at org.eclipse.ui.internal.registry.RegistryReader.readElementChildren(RegistryReader.java:133)
        at org.eclipse.ui.internal.ObjectActionContributor.readConfigElement(ObjectActionContributor.java:251)
        at org.eclipse.ui.internal.ObjectActionContributor.isApplicableTo(ObjectActionContributor.java:217)
        at org.eclipse.ui.internal.ObjectContributorManager.isApplicableTo(ObjectContributorManager.java:303)
        at org.eclipse.ui.internal.ObjectActionContributorManager.contributeObjectActions(ObjectActionContributorManager.java:83)
        at org.eclipse.ui.internal.PopupMenuExtender.addObjectActions(PopupMenuExtender.java:262)
        at org.eclipse.ui.internal.PopupMenuExtender.menuAboutToShow(PopupMenuExtender.java:339)
        at org.eclipse.jface.action.MenuManager.fireAboutToShow(MenuManager.java:338)
        at org.eclipse.jface.action.MenuManager.handleAboutToShow(MenuManager.java:469)
        at org.eclipse.jface.action.MenuManager.access$1(MenuManager.java:465)
        at org.eclipse.jface.action.MenuManager$2.menuShown(MenuManager.java:491)
        at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:247)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1058)
        at org.eclipse.swt.widgets.Control.WM_INITMENUPOPUP(Control.java:4864)
        at org.eclipse.swt.widgets.Control.windowProc(Control.java:4540)
        at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:341)
        at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1610)
        at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:2058)
        at org.eclipse.swt.widgets.Display.windowProc(Display.java:4957)
        at org.eclipse.swt.internal.win32.OS.TrackPopupMenu(Native Method)
        at org.eclipse.swt.widgets.Menu._setVisible(Menu.java:256)
        at org.eclipse.swt.widgets.Display.runPopups(Display.java:4191)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3733)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696)
        at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660)
        at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494)
        at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674)
        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
        at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
        at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)
        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:344)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
        at org.eclipse.equinox.launcher.Main.run(Main.java:1410)

"VM Thread" prio=10 tid=0x02e80000 nid=0x18c0 runnable

"VM Periodic Task Thread" prio=10 tid=0x02eaa400 nid=0x8180 waiting on condition

JNI global references: 1290
Comment 1 Jan Sievers CLA 2011-04-08 09:07:15 EDT
I am using EGit from the Indigo update site installed on top of 3.7M6 classic package
Comment 2 Robin Rosenberg CLA 2011-04-10 17:52:27 EDT

*** This bug has been marked as a duplicate of bug 337533 ***