Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 561427 - Some debugging configurations periodically bring up an internal error panel.
Summary: Some debugging configurations periodically bring up an internal error panel.
Status: CLOSED DUPLICATE of bug 561338
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Debug (show other bugs)
Version: 4.15   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: JDT-Debug-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-03-24 16:10 EDT by Rob Hatcherson CLA
Modified: 2020-03-24 16:13 EDT (History)
1 user (show)

See Also:


Attachments
The annoying error panel mentioned in the bug report. (29.04 KB, image/png)
2020-03-24 16:10 EDT, Rob Hatcherson CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Rob Hatcherson CLA 2020-03-24 16:10:31 EDT
Created attachment 282212 [details]
The annoying error panel mentioned in the bug report.

FWIW I originally reported this on the forums:
https://www.eclipse.org/forums/index.php/t/1102983/


Platform:

CentOS 7 - 3.10.0-1062.9.1.el7.x86_64


Session Data:

eclipse.buildId=4.15.0.I20200305-0155
java.version=1.8.0_232
java.vendor=Oracle Corporation
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US
Framework arguments:  -product org.eclipse.epp.package.rcp.product -showlocation main
Command-line arguments:  -os linux -ws gtk -arch x86_64 -product org.eclipse.epp.package.rcp.product -clean -showlocation main -data workspace.cba.202003


Observed Behavior:

On 03/23/2020 I updated 2019-12 to 2020-03. After doing so, now when I'm attached to certain debug configurations I get an internal error panel (or series of panels in quick succession) on what I've measured at about five minute intervals. A screenshot of the panel is attached. The particular debug configuration happens to be a remote configuration to a VM that includes threads that come and go relatively frequently, which results in the thread tree view in the Debug tab being updated. I only bring this up because the backtrace from the Error view says that this is a SWT error related to removing items from a tree. However, the thread activity far outpaces the periodic appearance of these panels, so this may be a coincidence.

At this point I've upgraded two machines, and both of them exhibit this behavior when run against the same debug configuration.

It's possible that this was happening in 2019-12, but I don't think so because this panel is pretty annoying and I would have noticed.

Unfortunately it's difficult to come up with steps to reproduce this. The problem happens if I'm just sitting here staring at the IDE and otherwise doing nothing. The local development situation is large and complex, so there's nothing I can hand over. The first thing I'd try to reproduce this on a smaller scale would be to cook up a test app that causes a bunch of thread activity, set up a remote debug configuration for it, then run, attach, and sit back and see what happens.

The backtrace from the Event view says:

java.lang.IllegalArgumentException: Index out of bounds
	at org.eclipse.swt.SWT.error(SWT.java:4704)
	at org.eclipse.swt.SWT.error(SWT.java:4638)
	at org.eclipse.swt.SWT.error(SWT.java:4609)
	at org.eclipse.swt.widgets.Widget.error(Widget.java:550)
	at org.eclipse.swt.widgets.TreeItem.getItem(TreeItem.java:792)
	at org.eclipse.jface.viewers.TreeViewer.lambda$4(TreeViewer.java:829)
	at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1397)
	at org.eclipse.jface.viewers.TreeViewer.preservingSelection(TreeViewer.java:363)
	at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1358)
	at org.eclipse.jface.viewers.TreeViewer.remove(TreeViewer.java:810)
	at org.eclipse.debug.internal.ui.viewers.model.TreeModelContentProvider.handleRemove(TreeModelContentProvider.java:1546)
	at org.eclipse.debug.internal.ui.viewers.model.TreeModelContentProvider.updateNodes(TreeModelContentProvider.java:1266)
	at org.eclipse.debug.internal.ui.viewers.model.TreeModelContentProvider.updateNodes(TreeModelContentProvider.java:1299)
	at org.eclipse.debug.internal.ui.viewers.model.TreeModelContentProvider.updateNodes(TreeModelContentProvider.java:1299)
	at org.eclipse.debug.internal.ui.viewers.model.TreeModelContentProvider.updateNodes(TreeModelContentProvider.java:1299)
	at org.eclipse.debug.internal.ui.viewers.model.TreeModelContentProvider.updateModel(TreeModelContentProvider.java:562)
	at org.eclipse.debug.internal.ui.viewers.model.TreeModelContentProvider.doModelChanged(TreeModelContentProvider.java:530)
	at org.eclipse.debug.internal.ui.viewers.model.TreeModelContentProvider.access$0(TreeModelContentProvider.java:524)
	at org.eclipse.debug.internal.ui.viewers.model.TreeModelContentProvider$DelayedDoModelChangedJob.runInUIThread(TreeModelContentProvider.java:436)
	at org.eclipse.ui.progress.UIJob.lambda$0(UIJob.java:95)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:185)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4930)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4451)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1160)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1049)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
	at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:658)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:557)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:154)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:150)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:137)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:107)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:401)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:657)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:594)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1447)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1420)
Comment 1 Andrey Loskutov CLA 2020-03-24 16:13:45 EDT
A test case would be really cool.
Bug 561338 provides a workaround and the latest 4.16 nightly build a partial fix.

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