-
Notifications
You must be signed in to change notification settings - Fork 149
Open
Labels
bugSomething isn't workingSomething isn't working
Description
While checking things for #2283, I wanted to terminate a launch before it was done.
That lead to a deadlock:
"main" #1 [129185] prio=6 os_prio=0 cpu=24055.55ms elapsed=290.14s tid=0x00007fc5cc01bb70 nid=129185 waiting for monitor entry [0x00007fc5d2dfd000]
java.lang.Thread.State: BLOCKED (on object monitor)
at org.eclipse.debug.internal.ui.views.console.ProcessConsole.resetName(ProcessConsole.java:648)
- waiting to lock <0x00000007ff1777a0> (a org.eclipse.debug.internal.ui.views.console.ProcessConsole)
at org.eclipse.debug.internal.ui.views.console.ProcessConsole.lambda$1(ProcessConsole.java:354)
at org.eclipse.debug.internal.ui.views.console.ProcessConsole$$Lambda/0x00007fc554c88750.run(Unknown Source)
at org.eclipse.swt.widgets.Display.timerProc(Display.java:5721)
at org.eclipse.swt.internal.gtk3.GTK3.gtk_main_iteration_do(Native Method)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4494)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1160)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1051)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:684)
at org.eclipse.ui.internal.Workbench$$Lambda/0x00007fc554235c98.run(Unknown Source)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:583)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:173)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:185)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:219)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:149)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:115)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:467)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:298)
at java.lang.invoke.DirectMethodHandle$Holder.invokeStatic(java.base@21.0.10/DirectMethodHandle$Holder)
at java.lang.invoke.LambdaForm$MH/0x00007fc554016800.invoke(java.base@21.0.10/LambdaForm$MH)
at java.lang.invoke.LambdaForm$MH/0x00007fc554016c00.invokeExact_MT(java.base@21.0.10/LambdaForm$MH)
at jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(java.base@21.0.10/DirectMethodHandleAccessor.java:155)
at jdk.internal.reflect.DirectMethodHandleAccessor.invoke(java.base@21.0.10/DirectMethodHandleAccessor.java:103)
at java.lang.reflect.Method.invoke(java.base@21.0.10/Method.java:580)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:615)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:563)
at org.eclipse.equinox.launcher.Main.run(Main.java:1415)
at org.eclipse.equinox.launcher.Main.main(Main.java:1387)
"Worker-12: Debug Event Dispatch" #91 [132662] prio=5 os_prio=0 cpu=258.34ms elapsed=130.78s tid=0x00007fc3e0003c30 nid=132662 waiting for monitor entry [0x00007fc51422d000]
java.lang.Thread.State: BLOCKED (on object monitor)
at org.eclipse.debug.internal.ui.views.console.ProcessConsole$StreamListener.closeStream(ProcessConsole.java:861)
- waiting to lock <0x00000007ff19fa90> (a org.eclipse.debug.internal.core.OutputStreamMonitor)
at org.eclipse.debug.internal.ui.views.console.ProcessConsole.closeStreams(ProcessConsole.java:549)
- locked <0x00000007ff1777a0> (a org.eclipse.debug.internal.ui.views.console.ProcessConsole)
at org.eclipse.debug.internal.ui.views.console.ProcessConsole.handleDebugEvents(ProcessConsole.java:635)
at org.eclipse.debug.core.DebugPlugin$EventNotifier.run(DebugPlugin.java:1422)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
at org.eclipse.debug.core.DebugPlugin$EventNotifier.dispatch(DebugPlugin.java:1456)
at org.eclipse.debug.core.DebugPlugin$EventDispatchJob.run(DebugPlugin.java:521)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63
"Output Stream Monitor for PID 133081 TestConsoleHang" #96 [133090] daemon prio=1 os_prio=0 cpu=553.52ms elapsed=113.65s tid=0x00007fc420031cd0 nid=133090 waiting on condition [0x00007fc42b1fb000]
java.lang.Thread.State: TIMED_WAITING (parking)
at jdk.internal.misc.Unsafe.park(java.base@21.0.10/Native Method)
- parking to wait for <0x00000007ff19f960> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.parkNanos(java.base@21.0.10/LockSupport.java:269)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(java.base@21.0.10/AbstractQueuedSynchronizer.java:1797)
at java.util.concurrent.LinkedBlockingQueue.offer(java.base@21.0.10/LinkedBlockingQueue.java:378)
at org.eclipse.ui.internal.console.IOConsolePartitioner.offer(IOConsolePartitioner.java:712)
at org.eclipse.ui.internal.console.IOConsolePartitioner.streamAppended(IOConsolePartitioner.java:695)
at org.eclipse.ui.console.IOConsoleOutputStream.notifyParitioner(IOConsoleOutputStream.java:281)
at org.eclipse.ui.console.IOConsoleOutputStream.encodedWrite(IOConsoleOutputStream.java:276)
- locked <0x00000007ff19fa10> (a org.eclipse.ui.console.IOConsoleOutputStream)
at org.eclipse.ui.console.IOConsoleOutputStream.write(IOConsoleOutputStream.java:260)
at org.eclipse.debug.internal.ui.views.console.ProcessConsole$StreamListener.streamAppended(ProcessConsole.java:841)
at org.eclipse.debug.internal.core.OutputStreamMonitor$1.run(OutputStreamMonitor.java:157)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
at org.eclipse.debug.internal.core.OutputStreamMonitor.fireStreamAppended(OutputStreamMonitor.java:154)
at org.eclipse.debug.internal.core.OutputStreamMonitor.internalRead(OutputStreamMonitor.java:242)
- locked <0x00000007ff19fa90> (a org.eclipse.debug.internal.core.OutputStreamMonitor)
at org.eclipse.debug.internal.core.OutputStreamMonitor.read(OutputStreamMonitor.java:211)
at org.eclipse.debug.internal.core.OutputStreamMonitor$$Lambda/0x00007fc554c29568.run(Unknown Source)
at java.lang.Thread.runWith(java.base@21.0.10/Thread.java:1596)
at java.lang.Thread.run(java.base@21.0.10/Thread.java:1583)
Snippet is:
public class TestConsoleHang {
public static void main(String[] args) {
int N = 1_000_000;
int M = 100;
byte[] b = new byte[N];
for (int i = 0; i < N; ++i) {
b[i] = (byte) (49 + (i % 9));
}
String s = new String(b);
for (int i = 0; i < M; ++i) {
System.out.println(s);
}
}
}
I ran this, clicked on the terminate button in the Console view and Eclipse hanged.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working