Unhandled exception in the UI thread.
GAPID Version: 1.6.1:338bb67b0fe291f56f31d69f11ea1a45ed7cfeb6 OS: linux amd64
Please provide detailed steps that led to the error and copy-paste the stack trace. Extra details from the logs and the trace file would be extra helpful.
Take the trace with unlimited number of frames. Do couple of actions in the app. Try to open the trace.
1.6.1 stack trace:
java.lang.NullPointerException
at com.google.gapid.widgets.TabArea.layoutComputeSize(TabArea.java:344)
at com.google.gapid.widgets.TabArea$1.computeSize(TabArea.java:68)
at org.eclipse.swt.widgets.Composite.computeSizeInPixels(Composite.java:243)
at org.eclipse.swt.widgets.Control.computeSize(Control.java:825)
at org.eclipse.swt.layout.FormData.computeSize(FormData.java:120)
at org.eclipse.swt.layout.FormData.getWidth(FormData.java:149)
at org.eclipse.swt.layout.FormData.getRightAttachment(FormData.java:250)
at org.eclipse.swt.layout.FormLayout.computeWidth(FormLayout.java:271)
at org.eclipse.swt.layout.FormLayout.layout(FormLayout.java:338)
at org.eclipse.swt.layout.FormLayout.computeSize(FormLayout.java:245)
at org.eclipse.swt.widgets.Composite.computeSizeInPixels(Composite.java:243)
at org.eclipse.swt.widgets.Control.computeSize(Control.java:825)
at org.eclipse.swt.layout.GridData.computeSize(GridData.java:494)
at org.eclipse.swt.layout.GridLayout.layout(GridLayout.java:224)
at org.eclipse.swt.layout.GridLayout.computeSize(GridLayout.java:167)
at org.eclipse.swt.widgets.Composite.computeSizeInPixels(Composite.java:243)
at org.eclipse.swt.widgets.Control.computeSize(Control.java:825)
at org.eclipse.swt.layout.FillData.computeSize(FillData.java:29)
at org.eclipse.swt.layout.FillLayout.computeChildSize(FillLayout.java:155)
at org.eclipse.swt.layout.FillLayout.computeSize(FillLayout.java:126)
at org.eclipse.swt.widgets.Composite.computeSizeInPixels(Composite.java:243)
at org.eclipse.swt.widgets.Control.computeSize(Control.java:825)
at org.eclipse.swt.custom.StackLayout.computeSize(StackLayout.java:101)
at org.eclipse.swt.widgets.Composite.computeSizeInPixels(Composite.java:243)
at org.eclipse.swt.widgets.Control.computeSize(Control.java:825)
at org.eclipse.swt.custom.StackLayout.computeSize(StackLayout.java:101)
at org.eclipse.swt.widgets.Composite.computeSizeInPixels(Composite.java:243)
at org.eclipse.swt.widgets.Control.computeSize(Control.java:825)
at org.eclipse.swt.layout.GridData.computeSize(GridData.java:494)
at org.eclipse.swt.layout.GridLayout.layout(GridLayout.java:224)
at org.eclipse.swt.layout.GridLayout.layout(GridLayout.java:200)
at org.eclipse.swt.widgets.Composite.updateLayout(Composite.java:1847)
at org.eclipse.swt.widgets.Composite.updateLayout(Composite.java:1853)
at org.eclipse.swt.widgets.Composite.setLayoutDeferred(Composite.java:1694)
at org.eclipse.swt.widgets.Display.runDeferredLayouts(Display.java:5075)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4570)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:821)
at org.eclipse.jface.window.Window.open(Window.java:797)
at com.google.gapid.views.ErrorDialog.showErrorDialog(ErrorDialog.java:161)
at com.google.gapid.views.ErrorDialog.showErrorDialog(ErrorDialog.java:62)
at com.google.gapid.Main$UI.lambda$registerWindowExceptionHandler$0(Main.java:113)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
at org.eclipse.jface.window.Window.open(Window.java:797)
at com.google.gapid.views.ErrorDialog.showErrorDialog(ErrorDialog.java:161)
at com.google.gapid.views.ErrorDialog.showErrorDialog(ErrorDialog.java:62)
at com.google.gapid.Main$UI.lambda$registerWindowExceptionHandler$0(Main.java:113)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
at org.eclipse.jface.window.Window.open(Window.java:797)
at com.google.gapid.views.ErrorDialog.showErrorDialog(ErrorDialog.java:161)
at com.google.gapid.views.ErrorDialog.showErrorDialog(ErrorDialog.java:62)
at com.google.gapid.Main$UI.lambda$registerWindowExceptionHandler$0(Main.java:113)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
at org.eclipse.jface.window.Window.open(Window.java:797)
at com.google.gapid.Main$UI.show(Main.java:119)
at com.google.gapid.Main.main(Main.java:68)
oh, it was trace in the middle. Though I get the same trace for the trace from the beginning as well ...
can you please include the stacktrace shown in the details of the error dialog, or the log?
Sorry, missed that.
It would be awesome if the File a bug link would publish it automatically.
Thanks for the stack trace. Yes, it would be nice to automatically include it, however, GH is very limiting in that it has to be a HTTP GET request, which is rather limited in how big it can be...
Unfortunately, the stack trace shown is an error that happened while trying to show the error dialog due to another error. This specific error-while-showing-an-error has been fixed, but it would still be great to get the original error. Do you see another stack trace in the log before any ones that reference ErrorDialog.showErrorDialog?
@dryganets can you please reply to @pmuetschard 's question so we can progress this ticket?
Sorry, missed that. This is the only error I had I believe. If you could point me where it saves the logs I could share mine with you.
When I was trying to locate the logs on my system it was pointing me to the tmp folder instead of exact file/folder and I have way too many different files in the temp folder.
@pmuetschard gapic.log I think it should be enough.
You could improve the show logs directory.
Currently on Linux it points to the /tmp folder for me and it has too many files ...
I was going to send the log file, but was too lazy to look for it, and didn't take a moment to do ls -lt| head
If it would point to the file instead or if the app would have it's own directory for the log files it would increase probability of you getting the logs.
Sorry for delay, was sick and away from my linux desktop.
On mac the tool works fine, thank you for the great tool! It looks like some native linux library is missing, it could be deb dependency problem.
yep, that's correct
sudo apt-get install libx11-dev
fixed the issue for me, so probably you should add it as a dependency for the ubuntu package.
Sorry I though it was some kind of UI issue, as original stack trace doesn't show the problem.
@dryganets thanks for the follow-up.
Are you on a non-X11 Linux environment, like Wayland?
Maybe installing libx11-6 would have been enough, that is why I'm asking.
I think I had x11 before running the dev build. I actually removed just this package and the problem is reproducible. And it is crashed again for me.
The state after removal is:
aptitude search libx11
i libx11-6 - X11 client-side library
i A libx11-6:i386 - X11 client-side library
i libx11-data - X11 client-side library
v libx11-data:i386 -
p libx11-dev - X11 client-side library (development heade
p libx11-dev:i386 - X11 client-side library (development heade
idA libx11-doc - X11 client-side library (development docum
v libx11-doc:i386 -
p libx11-freedesktop-desktopentry - perl interface to Freedesktop.org .desktop
p libx11-guitest-perl - collection of functions for X11 GUI testin
p libx11-guitest-perl:i386 - collection of functions for X11 GUI testin
p libx11-keyboard-perl - keyboard support functions for X11
i A libx11-protocol-other-perl - miscellaneous X11::Protocol helpers
i A libx11-protocol-perl - Perl module for the X Window System Protoc
p libx11-windowhierarchy-perl - Perl module for retrieving the current X11
p libx11-xcb-dev - Xlib/XCB interface library (development he
p libx11-xcb-dev:i386 - Xlib/XCB interface library (development he
p libx11-xcb-perl - perl bindings for libxcb
p libx11-xcb-perl:i386 - perl bindings for libxcb
i A libx11-xcb1 - Xlib/XCB interface library
i A libx11-xcb1:i386 - Xlib/XCB interface library
That is strange, I tried to remove libx11-dev from my own machine, and I can still run GAPID fine.
Which java /JVM are you using?
java -version
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)
@dryganets have you tried the latest dev release? Please check it out at https://github.com/google/gapid-dev-releases/releases
Thanks for heads-up! I'll give it a try tomorrow - today is the Mac day :)
Sorry for delay. The error still exist, but stack trace has a causation chain, so it is really easy to fix the problem.
rg.eclipse.swt.SWTException: Failed to execute runnable (java.lang.reflect.UndeclaredThrowableException)
at org.eclipse.swt.SWT.error(SWT.java:4595)
at org.eclipse.swt.SWT.error(SWT.java:4510)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:188)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:5026)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4586)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:821)
at org.eclipse.jface.window.Window.open(Window.java:797)
at com.google.gapid.Main$UI.show(Main.java:120)
at com.google.gapid.Main.main(Main.java:69)
Caused by: java.lang.reflect.UndeclaredThrowableException
at com.sun.proxy.$Proxy8.onCaptureLoaded(Unknown Source)
at com.google.gapid.models.Capture.fireLoadedEvent(Capture.java:150)
at com.google.gapid.models.ModelBase.updateSuccess(ModelBase.java:112)
at com.google.gapid.models.ModelBase$1.onUiThreadSuccess(ModelBase.java:80)
at com.google.gapid.rpc.UiErrorCallback.onUiThread(UiErrorCallback.java:34)
at com.google.gapid.rpc.UiErrorCallback.onUiThread(UiErrorCallback.java:25)
at com.google.gapid.rpc.UiCallback.lambda$onFinish$0(UiCallback.java:46)
at com.google.gapid.widgets.Widgets.ifNotDisposed(Widgets.java:128)
at com.google.gapid.widgets.Widgets.lambda$scheduleIfNotDisposed$1(Widgets.java:156)
at com.google.gapid.widgets.Widgets.lambda$schedule$0(Widgets.java:148)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:185)
... 6 more
Caused by: java.lang.reflect.InvocationTargetException
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 com.google.gapid.util.Events$ListenerCollectionImpl.invoke(Events.java:167)
... 18 more
Caused by: java.lang.UnsatisfiedLinkError: Failed to locate library: libX11.so
at org.lwjgl.system.Library.loadNative(Library.java:293)
at org.lwjgl.system.Library.loadNative(Library.java:187)
at org.lwjgl.system.linux.X11.<clinit>(X11.java:404)
at com.google.gapid.glcanvas.GlCanvas.createContext(GlCanvas.java:90)
at com.google.gapid.glcanvas.GlCanvas.<init>(GlCanvas.java:65)
at com.google.gapid.widgets.ScenePanel.<init>(ScenePanel.java:52)
at com.google.gapid.widgets.ImagePanel$ImageComponent.<init>(ImagePanel.java:759)
at com.google.gapid.widgets.ImagePanel.lambda$new$0(ImagePanel.java:154)
at com.google.gapid.widgets.LoadablePanel.<init>(LoadablePanel.java:56)
at com.google.gapid.widgets.LoadablePanel.create(LoadablePanel.java:61)
at com.google.gapid.widgets.ImagePanel.<init>(ImagePanel.java:153)
at com.google.gapid.views.FramebufferView.<init>(FramebufferView.java:100)
at com.google.gapid.GraphicsTraceView$MainTab.lambda$getTabs$7(GraphicsTraceView.java:335)
at com.google.gapid.widgets.TabComposite$Folder.newTab(TabComposite.java:814)
at com.google.gapid.widgets.TabArea.restore(TabArea.java:68)
at com.google.gapid.widgets.TabArea.restore(TabArea.java:72)
at com.google.gapid.widgets.TabArea.<init>(TabArea.java:40)
at com.google.gapid.GraphicsTraceView.<init>(GraphicsTraceView.java:83)
at com.google.gapid.MainWindow$MainViewContainer.updateAndGet(MainWindow.java:409)
at com.google.gapid.MainWindow$1.onCaptureLoaded(MainWindow.java:126)
... 23 more
Installation of the dev package fixes the problem. I think whoever will have the same issue will be able to google the solution by stack-trace now.