PDA

View Full Version : QWebView gets SIGFPE (Linux)



Randy Bryant
25th November 2014, 23:09
I have a large Linux Web application (Telescope control).
I have added a QWebView (4.8.3 Qt) tab to my available tabs. It gets a SIGFPE after calling load. loadProgress get to 10 and urlChanged is signaled.
At that point I get a SIGFPE. The stack trace is huge and contains very little useful information.
I can run the same code in a simple app and mainWindow with no problems.
I am wondering if I have some conflict with one of the libraries I use or with our own libraries.

Here is a the ldd output and a stack trace:

ldd:

linux-vdso.so.1 => (0x00007fffd7f15000)
libqBlinkingLineEditPlugin.so => /home/rbryant/source/het/gui/./designer/libqBlinkingLineEditPlugin.so (0x00007f7190658000)
libqSparkLinePlugin.so => /home/rbryant/source/het/gui/./designer/libqSparkLinePlugin.so (0x00007f719044c000)
libqLedIndicatorPlugin.so => /home/rbryant/source/het/gui/./designer/libqLedIndicatorPlugin.so (0x00007f719023d000)
libqTcsFramePlugin.so => /home/rbryant/source/het/gui/./designer/libqTcsFramePlugin.so (0x00007f7190034000)
libqTcsProbeAssemblyPlugin.so => /home/rbryant/source/het/gui/./designer/libqTcsProbeAssemblyPlugin.so (0x00007f718fe26000)
libzmq.so.3 => /usr/local/lib/libzmq.so.3 (0x00007f718fbd5000)
libczmq.so.1 => /usr/local/lib/libczmq.so.1 (0x00007f718f99b000)
libsqlite3.so.0 => /opt/het/hetdex/lib/libsqlite3.so.0 (0x00007f718f6e2000)
libQtWebKit.so.4 => /usr/local/Trolltech/Qt-4.8.5/lib/libQtWebKit.so.4 (0x00007f718dc6d000)
libQtXml.so.4 => /usr/local/Trolltech/Qt-4.8.5/lib/libQtXml.so.4 (0x00007f718da2a000)
libQtGui.so.4 => /usr/local/Trolltech/Qt-4.8.5/lib/libQtGui.so.4 (0x00007f718cd36000)
libQtCore.so.4 => /usr/local/Trolltech/Qt-4.8.5/lib/libQtCore.so.4 (0x00007f718c852000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x000000307a200000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x0000003086600000)
libm.so.6 => /lib64/libm.so.6 (0x0000003079a00000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000003085600000)
libc.so.6 => /lib64/libc.so.6 (0x0000003079e00000)
librt.so.1 => /lib64/librt.so.1 (0x000000307ae00000)
libQtScript.so.4 => /usr/local/Trolltech/Qt-4.8.5/lib/libQtScript.so.4 (0x00007f718c39b000)
libQtDesigner.so.4 => /usr/local/Trolltech/Qt-4.8.5/lib/libQtDesigner.so.4 (0x00007f718bc4c000)
libdl.so.2 => /lib64/libdl.so.2 (0x000000307a600000)
libfontconfig.so.1 => /usr/lib64/libfontconfig.so.1 (0x000000307f600000)
libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x000000307e200000)
libXext.so.6 => /usr/lib64/libXext.so.6 (0x000000307da00000)
libX11.so.6 => /usr/lib64/libX11.so.6 (0x000000307d200000)
libXrender.so.1 => /usr/lib64/libXrender.so.1 (0x000000307ee00000)
libQtNetwork.so.4 => /usr/local/Trolltech/Qt-4.8.5/lib/libQtNetwork.so.4 (0x00007f718b902000)
libgio-2.0.so.0 => /lib64/libgio-2.0.so.0 (0x00000035c8e00000)
libgstapp-0.10.so.0 => /usr/lib64/libgstapp-0.10.so.0 (0x00000035ce200000)
libgstinterfaces-0.10.so.0 => /usr/lib64/libgstinterfaces-0.10.so.0 (0x00000035ce600000)
libgstpbutils-0.10.so.0 => /usr/lib64/libgstpbutils-0.10.so.0 (0x00000035cf000000)
libgstvideo-0.10.so.0 => /usr/lib64/libgstvideo-0.10.so.0 (0x00000035cf800000)
libgstbase-0.10.so.0 => /usr/lib64/libgstbase-0.10.so.0 (0x00000035cf400000)
libgstreamer-0.10.so.0 => /usr/lib64/libgstreamer-0.10.so.0 (0x00000035d1400000)
libgobject-2.0.so.0 => /lib64/libgobject-2.0.so.0 (0x00000035c8200000)
libgmodule-2.0.so.0 => /lib64/libgmodule-2.0.so.0 (0x00000035c8600000)
libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x0000003233400000)
libgthread-2.0.so.0 => /lib64/libgthread-2.0.so.0 (0x00000035c7e00000)
libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00000035c7a00000)
libpng12.so.0 => /usr/lib64/libpng12.so.0 (0x000000307e600000)
libz.so.1 => /lib64/libz.so.1 (0x000000307aa00000)
libSM.so.6 => /usr/lib64/libSM.so.6 (0x00000035c9200000)
libICE.so.6 => /usr/lib64/libICE.so.6 (0x0000003087600000)
/lib64/ld-linux-x86-64.so.2 (0x0000003079600000)
libexpat.so.1 => /lib64/libexpat.so.1 (0x000000307de00000)
libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x000000307ca00000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x000000307ba00000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x000000307b600000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x00000035c8a00000)
libXau.so.6 => /usr/lib64/libXau.so.6 (0x000000307ce00000)


Stack:

Thread [1] 23216 [core: 1] (Suspended : Signal : SIGFPE:Arithmetic exception)
0x7ffff64fb70b
0x7ffff65dee9c
0x7ffff651b561
0x7ffff630b7c4
0x7ffff5c79a41
0x7ffff5a2e22e
0x7ffff5c80d3d
0x7ffff5c80f93
0x7ffff5cb29b6
0x7ffff5cb2f6a
0x7ffff5cb3c23
0x7ffff5cb41d2
0x7ffff5db5142
0x7ffff5db7128
0x7ffff5ec36c9
0x7ffff5ec3d2d
0x7ffff5eb9f90
0x7ffff5eba07b
0x7ffff5ebbf76
0x7ffff5ebc4aa
0x7ffff6343c39
0x7ffff5f46348
0x7ffff5c42b75
0x7ffff5f4874c
0x7ffff5f7a191
0x7ffff5f6a5a5
0x7ffff5f79cad
0x7ffff6163528
0x7ffff6163318
0x7ffff61643e5
0x7ffff61644bd
0x7ffff61654eb
QMetaObject::activate() at 0x7ffff4188b31
0x7ffff3121538
0x7ffff312175d
0x7ffff310efa1
0x7ffff3194d7f
QObject::event() at 0x7ffff418cb5e
QApplicationPrivate::notify_helper() at 0x7ffff46d27fc
QApplication::notify() at 0x7ffff46d8c9d
QCoreApplication::notifyInternal() at 0x7ffff41743cc
QCoreApplicationPrivate::sendPostedEvents() at 0x7ffff41783c3
0x7ffff41a16d3
g_main_context_dispatch() at 0x35c7a3feb2
0x35c7a43d68
g_main_context_iteration() at 0x35c7a43f1c
QEventDispatcherGlib::processEvents() at 0x7ffff41a1213
0x7ffff477686e
QEventLoop::processEvents() at 0x7ffff41730b2
QEventLoop::exec() at 0x7ffff4173414
QCoreApplication::exec() at 0x7ffff4178789
tcsGui::start() at tcsGui.cpp:196 0x425539
TCSApp<tcsGui, guiConfig>::run() at tcs_app.h:94 0x43b862
main() at tcsGui.cpp:18 0x4213ec

anda_skoa
26th November 2014, 07:02
Can you reproduce with the most basic possible application?
I.e. something like



int main(int argc, char **argv)
{
QApplication app(argc, argv);

QWebView view;
view.show();
view.load(QUrl(....));

return app.exec();
}


Cheers,
_

ChrisW67
26th November 2014, 11:50
Or build and run a debug version of your prgram so that the offending line of your libqBlinkingLineEditPlugin implementation is identified.

Randy Bryant
26th November 2014, 13:39
Already did that (as stated in my post):

I can run the same code in a simple app and mainWindow with no problems.

It is not my plugin, it is a Qt provided Widget (WebKit). I don't have the source code.
And my app is built with Debug. That is why the stack trace is not very usable.