eclipse-platform / eclipse-platform/eclipse.platform

Deadlock on shutdown

Open
#2,556 0 comments 0 reactions 0 assignees View on GitHub
bug
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.