[rekonq] crash when a new tab is opened

Ronny Scholz ronny_scholz at web.de
Thu Oct 8 00:13:48 CEST 2009


Recently I introduced the possibility to open a new tab via double click on 
the tabbar. This was just about connecting the newTabRequest() signal to the 
newTab() slot. There is a strange issue I've discovered now.

If the double click is done inside the region where the new tab will be shown, 
rekonq crashes. Pano was so kind and provided me a backtrace, which I have 
attached to this mail. 
It seems like the tabbar is immediately trying to move the added tab and 
crashes. This may be caused by faulty mouse management, but perfectly explains 
why the bug appears only if the mouse is under the new tab to be created. If 
the movable property of the tabbar is set to false, the bug disappears.

However, aurora also has movable tabs but does not have this issue. Either the 
bug lies in the internal workings of our code, or in the usage of KDE instead 
of plain Qt. Unfortunately, I was not able step into this issue deeply enough 
:(
-------------- next part --------------
Application: rekonq (rekonq), signal: Segmentation fault
[Current thread is 0 (LWP 26218)]
 
Thread 2 (Thread 0xb0f60b70 (LWP 26238)):
#0  0xb7ffe424 in __kernel_vsyscall ()
#1  0xb6646b95 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#2  0xb66ca047 in QWaitCondition::wait (this=0x902aa18, mutex=0x90240b8, time=4294967295) at thread/qwaitcondition_unix.cpp:87
#3  0xb72672c0 in WTF::ThreadCondition::wait (this=0x915ed50, mutex=@0x915ed4c) at ../JavaScriptCore/wtf/ThreadingQt.cpp:233
#4  0xb7770084 in WebCore::IconDatabase::syncThreadMainLoop (this=0x915ed20) at loader/icon/IconDatabase.cpp:1400
#5  0xb777016b in WebCore::IconDatabase::iconDatabaseSyncThread (this=0x915ed20) at loader/icon/IconDatabase.cpp:1035
#6  0xb72671e4 in threadEntryPoint (contextData=0x8fe3278) at ../JavaScriptCore/wtf/Threading.cpp:57
#7  0xb7267213 in WTF::ThreadPrivate::run (this=0x8ef6c40) at ../JavaScriptCore/wtf/ThreadingQt.cpp:63
#8  0xb66c9032 in QThreadPrivate::start (arg=0x8ef6c40) at thread/qthread_unix.cpp:188
#9  0xb664265c in start_thread () from /lib/libpthread.so.0
#10 0xb5afb1fe in clone () from /lib/libc.so.6
 
Thread 1 (Thread 0xb4de1700 (LWP 26218)):
[KCrash Handler]
#6  0xb623dfac in QTabBarPrivate::_q_moveTabFinished (this=0x8e3c368, index=1) at widgets/qtabbar.cpp:1847
#7  0xb623feb7 in QTabBarPrivate::refresh (this=0x8e3c368) at widgets/qtabbar.cpp:667
#8  0xb6240211 in QTabBar::setTabText (this=0x8e95e50, index=1, text=@0xbfef828c) at widgets/qtabbar.cpp:961
#9  0xb6deb69e in KAcceleratorManagerPrivate::calculateAccelerators (item=0x8cb7188, used=@0xbfef82f8)
    at /home/pano/Projekte/build/kde-trunk/kdelibs/src/kdelibs/kdeui/shortcuts/kacceleratormanager.cpp:229
#10 0xb6ded088 in KAcceleratorManagerPrivate::manage (widget=0x8cb7530) at /home/pano/Projekte/build/kde-trunk/kdelibs/src/kdelibs/kdeui/shortcuts/kacceleratormanager.cpp:192
#11 0xb6deed36 in KCheckAccelerators::checkAccelerators (this=0x8cb7768, automatic=true) at /home/pano/Projekte/build/kde-trunk/kdelibs/src/kdelibs/kdeui/shortcuts/kcheckaccelerators.cpp:243
#12 0xb6def117 in KCheckAccelerators::autoCheckSlot (this=0x8cb7768) at /home/pano/Projekte/build/kde-trunk/kdelibs/src/kdelibs/kdeui/shortcuts/kcheckaccelerators.cpp:197
#13 0xb6def1a6 in KCheckAccelerators::qt_metacall (this=0x8cb7768, _c=QMetaObject::InvokeMetaMethod, _id=4, _a=0xbfef845c)
    at /home/pano/Projekte/build/kde-trunk/kdelibs/src/build/kdeui/kcheckaccelerators.moc:68
#14 0xb67cd9ac in QMetaObject::activate (sender=0x8cb777c, from_signal_index=<value optimized out>, to_signal_index=4, argv=0x0) at kernel/qobject.cpp:3112
#15 0xb67ce5e2 in QMetaObject::activate (sender=0x8cb777c, m=0xb68a9264, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3186
#16 0xb6807a87 in QTimer::timeout (this=0x8cb777c) at .moc/release-shared/moc_qtimer.cpp:128
#17 0xb67d305e in QTimer::timerEvent (this=0x8cb777c, e=0xbfef88f0) at kernel/qtimer.cpp:261
#18 0xb67c7b5f in QObject::event (this=0x8cb777c, e=0xbfef88f0) at kernel/qobject.cpp:1074
#19 0xb5dcb964 in QApplicationPrivate::notify_helper (this=0x8c305c0, receiver=0x8cb777c, e=0xbfef88f0) at kernel/qapplication.cpp:4056
#20 0xb5dd304c in QApplication::notify (this=0xbfef8c58, receiver=0x8cb777c, e=0xbfef88f0) at kernel/qapplication.cpp:3603
#21 0xb6d92766 in KApplication::notify (this=0xbfef8c58, receiver=0x8cb777c, event=0xbfef88f0) at /home/pano/Projekte/build/kde-trunk/kdelibs/src/kdelibs/kdeui/kernel/kapplication.cpp:302
#22 0xb67b7fcb in QCoreApplication::notifyInternal (this=0xbfef8c58, receiver=0x8cb777c, event=0xbfef88f0) at kernel/qcoreapplication.cpp:610
#23 0xb67e579e in QTimerInfoList::activateTimers (this=0x8c28934) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:213
#24 0xb67e2780 in timerSourceDispatch (source=0x8c28900) at kernel/qeventdispatcher_glib.cpp:165
#25 0xb5268d98 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#26 0xb526c3e0 in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0
#27 0xb526c513 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#28 0xb67e26cc in QEventDispatcherGlib::processEvents (this=0x8c259a0, flags={i = 36}) at kernel/qeventdispatcher_glib.cpp:327
#29 0xb5e69695 in QGuiEventDispatcherGlib::processEvents (this=0x8c259a0, flags={i = 36}) at kernel/qguieventdispatcher_glib.cpp:202
#30 0xb67b6579 in QEventLoop::processEvents (this=0xbfef8bb4, flags=) at kernel/qeventloop.cpp:149
#31 0xb67b69ca in QEventLoop::exec (this=0xbfef8bb4, flags={i = 0}) at kernel/qeventloop.cpp:201
#32 0xb67b8e3f in QCoreApplication::exec () at kernel/qcoreapplication.cpp:888
#33 0xb5dcb7e7 in QApplication::exec () at kernel/qapplication.cpp:3525
#34 0x080b2549 in main (argc=1, argv=0xbfef8e34) at /home/pano/Projekte/build/rekonq-git/src/mainline/src/main.cpp:132


More information about the rekonq mailing list