Skip to content

Deadlock on shutdown #2556

@trancexpress

Description

@trancexpress
Eclipse SDK
Version: 2026-06 (4.40)
Build id: I20260306-1800

See:

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 <no object reference available>
	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 <no object reference available>
	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 <no object reference available>
	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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions