Igalia / cog

WPE launcher and webapp container
MIT License
242 stars 62 forks source link

WebProcess Crash report #149

Open AndrisBB opened 5 years ago

AndrisBB commented 5 years ago

At the moment I have Angular application that occasionally crash when running on the WPE, but do not crash on other browsers on the PC. As far as I can see is that Cog is subscribing to the 'web-process-terminated' signal and pust error page on the screen. Is there a way to query what caused to WebProcess to crash? If so can it be put on the error page.

aperezdc commented 5 years ago

Unfortunately the API for this only lets us know that the process was terminted due to a crash or due to running out of memory, but that's all. For crashes anyway we would need a core dump for investigation, or at least a back trace extracted from one.

@AndrisBB Is there any chance that you could provide a backtrace? If you are using systemd, there are good chances that coredumpctl list will show an entry for the crashed WPEWebProcess and you should be able to obtain a backtrace with coredumpctl info. Tip: You may need a build with debug information of WPE WebKit to get a meaningful backtrace.

AndrisBB commented 5 years ago

I have a trouble to obtain any information from the backtrace. I have attached the remote debugger to the WPEWebProcess, then when its crash I tried to get bt, but it gives error: _Thread 1 "WPEWebProcess" received signal SIGSEGV, Segmentation fault. 0x6e4ebfa4 in ?? () (gdb) bt

0 0x6e4ebfa4 in ?? ()

1 0x6e4ebf6c in ?? ()

Backtrace stopped: previous frame identical to this frame (corrupt stack?)_

I get same result when I load backtrace file.

Could it be because of this warning? _Reading symbols from /opt/prickle/1.7.3/sysroots/armv7at2hf-neon-prickle-linux-gnueabi/lib/libudev.so.1...done. Reading symbols from /opt/prickle/1.7.3/sysroots/armv7at2hf-neon-prickle-linux-gnueabi/usr/lib/libmtdev.so.1...done. Reading symbols from /opt/prickle/1.7.3/sysroots/armv7at2hf-neon-prickle-linux-gnueabi/usr/lib/libevdev.so.2...done. Reading symbols from /opt/prickle/1.7.3/sysroots/armv7at2hf-neon-prickle-linux-gnueabi/lib/libnsscompat.so.2...done. Reading symbols from /opt/prickle/1.7.3/sysroots/armv7at2hf-neon-prickle-linux-gnueabi/usr/lib/wpe-webkit-1.0/injected-bundle/libWPEInjectedBundle.so...warning: Could not find DWO CU Source/WebKit/CMakeFiles/WPEInjectedBundle.dir/WebProcess/InjectedBundle/API/glib/WebKitInjectedBundleMain.cpp.dwo(0x3e15d2e5cd0c160) referenced by CU at offset 0x22 [in module /opt/prickle/1.7.3/sysroots/armv7at2hf-neon-prickle-linux-gnueabi/usr/lib/wpe-webkit-1.0/injected-bundle/libWPEInjectedBundle.so] done. Reading symbols from /opt/prickle/1.7.3/sysroots/armv7at2hf-neon-prickle-linux-gnueabi/usr/lib/libGLSLC.so...done.

I was following Yocto guide about remote debugging https://www.yoctoproject.org/docs/latest/mega-manual/mega-manual.html#platdev-gdb-remotedebug

AndrisBB commented 5 years ago

I have narrowed down to problem to place in the Angular framework where crash is happening. In the Router module they are updating the href property of the element. In some situations this is causing the crash. I guess this is something internal to the Angular's virtual DOM.