eclipse-platform / eclipse.platform.ui

Eclipse Platform
https://projects.eclipse.org/projects/eclipse.platform
Eclipse Public License 2.0
78 stars 163 forks source link

"No more handles" - after editing many MANIFEST.MF #2304

Open jukzi opened 2 hours ago

jukzi commented 2 hours ago

image image

I have a Heapdump - how do i figure out what leaked? image

akurtakov commented 2 hours ago

No more handles means the OS is out of resources for more widgets. Most likely an SWT widget is recreated over and over without unused ones being disposed. You may want to try Sleak (https://github.com/eclipse-platform/eclipse.platform.swt/blob/master/bundles/org.eclipse.swt.tools.spies/src/org/eclipse/swt/tools/views/SleakView.java ) and there is an old article on using it https://www.eclipse.org/articles/swt-design-2/sleak.htm . I haven't used it in years so I'm not sure of current state of the tool. Long story short - it's most likely a missing dispose() somewhere.

mickaelistria commented 2 hours ago

If you can monitor the running application on your machine, using Sleak can help. Here there are 12k resource trackers, which means that there are 12k resources; tracker element and their "nest" object will show which objects are locking the resources/missing the dispose().

jukzi commented 1 hour ago

Why would i have a thousend fonts in my heap? Beside that i don't get where i can see useful information in the dump: image

If anybody wants to look: https://securetransfer.ssi-schaefer.com/webdownload?deliveryUuid=b2398f9c-3c49-4310-a8e5-cf39f47f21bc

BTW the Exception was:

org.eclipse.swt.SWTError: No more handles
    at org.eclipse.swt.SWT.error(SWT.java:4948)
    at org.eclipse.swt.SWT.error(SWT.java:4837)
    at org.eclipse.swt.SWT.error(SWT.java:4808)
    at org.eclipse.swt.widgets.Widget.error(Widget.java:500)
    at org.eclipse.swt.widgets.Control.createHandle(Control.java:675)
    at org.eclipse.swt.widgets.Scrollable.createHandle(Scrollable.java:146)
    at org.eclipse.swt.widgets.Composite.createHandle(Composite.java:300)
    at org.eclipse.swt.widgets.Control.createWidget(Control.java:701)
    at org.eclipse.swt.widgets.Scrollable.createWidget(Scrollable.java:161)
    at org.eclipse.swt.widgets.Control.<init>(Control.java:121)
    at org.eclipse.swt.widgets.Scrollable.<init>(Scrollable.java:85)
    at org.eclipse.swt.widgets.Composite.<init>(Composite.java:103)
    at org.eclipse.swt.widgets.Canvas.<init>(Canvas.java:81)
    at org.eclipse.jface.text.source.AnnotationRulerColumn$3.<init>(AnnotationRulerColumn.java:338)
    at org.eclipse.jface.text.source.AnnotationRulerColumn.createCanvas(AnnotationRulerColumn.java:338)
    at org.eclipse.jface.text.source.AnnotationRulerColumn.createControl(AnnotationRulerColumn.java:256)
    at org.eclipse.ui.internal.texteditor.AnnotationColumn.createControl(AnnotationColumn.java:70)
    at org.eclipse.jface.text.source.CompositeRuler.addDecorator(CompositeRuler.java:544)
    at org.eclipse.ui.texteditor.AbstractTextEditor$ColumnSupport$1.run(AbstractTextEditor.java:1632)
jukzi commented 1 hour ago

Would be better if the excpetion would just log a histogram of the resource stacktraces.