eclipse-platform / eclipse-platform/eclipse.platform
Deadlock on shutdown
- Dominant language
- Java
- Stars
- 165
- Forks
- 174
- Avg merge
- 2d 8h
- Merged PRs (30d)
- 22
Description
```
Eclipse SDK
Version: 2026-06 (4.40)
Build id: I20260306-1800
```
See:
[deadlock.txt](https://github.com/user-attachments/files/25816664/deadlock.txt)
```
"main" #3 [1778] prio=6 os_prio=0 cpu=29546.71ms elapsed=375.64s tid=0x00007fef7801a9e0 nid=1778 runnable [0x00007fef7cbfa000]
java.lang.Thread.State: RUNNABLE
at org.eclipse.swt.internal.gtk.OS.Call(Native Method)
at org.eclipse.swt.widgets.Display.sleep(Display.java:5630)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.block(ModalContext.java:165)
at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:360)
at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:472)
at org.eclipse.ui.internal.progress.ProgressMonitorJobsDialog.run(ProgressMonitorJobsDialog.java:231)
at org.eclipse.ui.internal.ide.application.IDEWorkbenchAdvisor.disconnectFromWorkspace(IDEWorkbenchAdvisor.java:564)
at org.eclipse.ui.internal.ide.application.IDEWorkbenchAdvisor$2.run(IDEWorkbenchAdvisor.java:371)
at org.eclipse.ui.internal.ide.application.IDEWorkbenchAdvisor.postShutdown(IDEWorkbenchAdvisor.java:392)
at org.eclipse.ui.internal.Workbench.shutdown(Workbench.java:3065)
at org.eclipse.ui.internal.Workbench.busyClose(Workbench.java:1196)
```
```
"Worker-26: Git Repository Refresh" #239 [10560] prio=5 os_prio=0 cpu=132.61ms elapsed=60.76s tid=0x00007fee4412d070 nid=10560 in Object.wait() [0x00007fef433f8000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait0(java.base@25.0.2/Native Method)
- waiting on
at java.lang.Object.wait(java.base@25.0.2/Object.java:389)
at java.lang.Object.wait(java.base@25.0.2/Object.java:351)
at org.eclipse.core.internal.jobs.ThreadJob.waitForRun(ThreadJob.java:335)
- locked <0x000000071da7f5a8> (a java.lang.Object)
at org.eclipse.core.internal.jobs.ThreadJob.joinRun(ThreadJob.java:214)
at org.eclipse.core.internal.jobs.ImplicitJobs.begin(ImplicitJobs.java:98)
at org.eclipse.core.internal.jobs.JobManager.beginRule(JobManager.java:358)
at org.eclipse.core.internal.resources.WorkManager.checkIn(WorkManager.java:125)
at org.eclipse.core.internal.resources.Workspace.prepareOperation(Workspace.java:2452)
at org.eclipse.core.internal.resources.Resource.refreshLocal(Resource.java:1675)
at org.eclipse.egit.core.internal.ResourceRefreshHandler.lambda$0(ResourceRefreshHandler.java:154)
at org.eclipse.egit.core.internal.ResourceRefreshHandler$$Lambda/0x000000000aef4910.run(Unknown Source)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2505)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2533)
at org.eclipse.egit.core.internal.ResourceRefreshHandler.refreshRepository(ResourceRefreshHandler.java:170)
at org.eclipse.egit.ui.internal.ExternalRepositoryScanner$ResourceRefreshJob.run(ExternalRepositoryScanner.java:430)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
```
```
"ModalContext" #238 [10441] prio=6 os_prio=0 cpu=1.33ms elapsed=83.14s tid=0x00007fef78c01220 nid=10441 in Object.wait() [0x00007fef434f9000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait0(java.base@25.0.2/Native Method)
- waiting on
at java.lang.Object.wait(java.base@25.0.2/Object.java:389)
at java.lang.Object.wait(java.base@25.0.2/Object.java:351)
at org.eclipse.core.internal.jobs.ThreadJob.waitForRun(ThreadJob.java:335)
- locked <0x000000071da7f5a8> (a java.lang.Object)
at org.eclipse.core.internal.jobs.ThreadJob.joinRun(ThreadJob.java:214)
at org.eclipse.core.internal.jobs.ImplicitJobs.begin(ImplicitJobs.java:98)
at org.eclipse.core.internal.jobs.JobManager.beginRule(JobManager.java:358)
at org.eclipse.core.internal.resources.WorkManager.checkIn(WorkManager.java:125)
at org.eclipse.core.internal.resources.Workspace.prepareOperation(Workspace.java:2452)
at org.eclipse.core.internal.resources.SaveManager.save(SaveManager.java:1277)
at org.eclipse.core.internal.resources.Workspace.save(Workspace.java:2549)
at org.eclipse.ui.internal.ide.application.IDEWorkbenchAdvisor.lambda$1(IDEWorkbenchAdvisor.java:558)
at org.eclipse.ui.internal.ide.application.IDEWorkbenchAdvisor$$Lambda/0x000000000ac348e0.run(Unknown Source)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:123)
```
```
"Worker-6: Compacting resource model" #94 [5946] prio=5 os_prio=0 cpu=2066.04ms elapsed=363.00s tid=0x00007fedcc0026e0 nid=5946 in Object.wait() [0x00007fee4c3d1000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait0(java.base@25.0.2/Native Method)
- waiting on
at java.lang.Object.wait(java.base@25.0.2/Object.java:389)
at java.lang.Object.wait(java.base@25.0.2/Object.java:351)
at org.eclipse.core.internal.jobs.ThreadJob.waitForRun(ThreadJob.java:335)
- locked <0x000000071da7f5a8> (a java.lang.Object)
at org.eclipse.core.internal.jobs.ThreadJob.joinRun(ThreadJob.java:214)
at org.eclipse.core.internal.jobs.ImplicitJobs.begin(ImplicitJobs.java:98)
at org.eclipse.core.internal.jobs.JobManager.beginRule(JobManager.java:358)
at org.eclipse.core.internal.utils.StringPoolJob.run(StringPoolJob.java:103)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
```
I did a refactor rename (which for some reason didn't change the file on disk) and closed Eclipse. This hanged with the "saving workspace" dialog, showing no progress.
I'm not sure if this is for EGit or for platform, I'm not seeing exactly what all the jobs are waiting on.
Contributor guide
Assessment
This issue has not been assessed yet.