Bug 183486

Summary: konqueror crashes when "closing all other tabs"
Product: [Applications] konqueror Reporter: S. Burmeister <sven.burmeister>
Component: generalAssignee: Konqueror Developers <konq-bugs>
Status: RESOLVED FIXED    
Severity: crash CC: colour, pzcdyhbb0nzq9layi4mcj1hhp, zahl
Priority: NOR    
Version: 4.2.0   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In:

Description S. Burmeister 2009-02-06 23:34:22 UTC
Version:            (using KDE 4.2.0)
OS:                Linux
Installed from:    SuSE RPMs

If there are many tabs open, in my case there were ~12 with different sites from the same domain. I right-clicked one of them and chose "close all other tabs", which crashes konqueror.

Anwendung: Konqueror (konqueror), Signal SIGSEGV
[?1034h[Thread debugging using libthread_db enabled]
0x00007f436b5ff221 in nanosleep () from /lib64/libc.so.6
[Current thread is 0 (LWP 8890)]

Thread 3 (Thread 0x42e5e950 (LWP 8907)):
#0  0x00007f436b629622 in select () from /lib64/libc.so.6
#1  0x00007f436e02f096 in QProcessManager::run (this=0x6231e0) at io/qprocess_unix.cpp:301
#2  0x00007f436df66022 in QThreadPrivate::start (arg=0x6231e0) at thread/qthread_unix.cpp:185
#3  0x00007f436dcf2040 in start_thread () from /lib64/libpthread.so.0
#4  0x00007f436b63008d in clone () from /lib64/libc.so.6
#5  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x412e4950 (LWP 9006)):
#0  0x00007f436dcf605d in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f436df66fb7 in QWaitCondition::wait (this=0xfef5f8, mutex=0xfef5f0, time=30000) at thread/qwaitcondition_unix.cpp:80
#2  0x00007f436df5d1ba in QThreadPoolThread::run (this=0x1017490) at concurrent/qthreadpool.cpp:135
#3  0x00007f436df66022 in QThreadPrivate::start (arg=0x1017490) at thread/qthread_unix.cpp:185
#4  0x00007f436dcf2040 in start_thread () from /lib64/libpthread.so.0
#5  0x00007f436b63008d in clone () from /lib64/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f4370997700 (LWP 8890)):
[KCrash Handler]
#5  KonqFrameTabs::tabContaining (this=0xd4ca00, frame=0xd2b148) at /usr/src/debug/kdebase-4.2.0/apps/konqueror/src/konqframe.h:82
#6  0x00007f43705626b6 in KonqMainWindow::slotRemoveOtherTabsPopup (this=0x6e51c0) at /usr/src/debug/kdebase-4.2.0/apps/konqueror/src/konqmainwindow.cpp:2559
#7  0x00007f4370575f0d in KonqMainWindow::qt_metacall (this=0x6e51c0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff789d9b90)
    at /usr/src/debug/kdebase-4.2.0/build/apps/konqueror/src/konqmainwindow.moc:409
#8  0x00007f436e063284 in QMetaObject::activate (sender=0x73c3b80, from_signal_index=<value optimized out>, to_signal_index=6, argv=0xd4ca30) at kernel/qobject.cpp:3031
#9  0x00007f436d3654f7 in QAction::triggered (this=0xd4ca00, _t1=false) at .moc/release-shared/moc_qaction.cpp:216
#10 0x00007f436d365cc0 in QAction::activate (this=0x73c3b80, event=<value optimized out>) at kernel/qaction.cpp:1125
#11 0x00007f436d6fea3d in QMenuPrivate::activateAction (this=0xd580b0, action=0x73c3b80, action_e=QAction::Trigger, self=true) at widgets/qmenu.cpp:1002
#12 0x00007f436d3bd9a9 in QWidget::event (this=0xd4ca00, event=0x7fff789da470) at kernel/qwidget.cpp:7163
#13 0x00007f436d70123b in QMenu::event (this=0xd58070, e=0x7fff789da470) at widgets/qmenu.cpp:2265
#14 0x00007f436d36b17d in QApplicationPrivate::notify_helper (this=0x61f840, receiver=0xd58070, e=0x7fff789da470) at kernel/qapplication.cpp:3803
#15 0x00007f436d37379a in QApplication::notify (this=<value optimized out>, receiver=0xd58070, e=0x7fff789da470) at kernel/qapplication.cpp:3528
#16 0x00007f436ee46d4b in KApplication::notify (this=0x7fff789dcef0, receiver=0xd58070, event=0x7fff789da470) at /usr/src/debug/kdelibs-4.2.0/kdeui/kernel/kapplication.cpp:307
#17 0x00007f436e04ee81 in QCoreApplication::notifyInternal (this=0x7fff789dcef0, receiver=0xd58070, event=0x7fff789da470) at kernel/qcoreapplication.cpp:587
#18 0x00007f436d372b38 in QApplicationPrivate::sendMouseEvent (receiver=0xd58070, event=0x7fff789da470, alienWidget=0x0, nativeWidget=0xd58070, buttonDown=<value optimized out>, 
    lastMouseReceiver=@0x7f436dce8760) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:212
#19 0x00007f436d3d7454 in QETWidget::translateMouseEvent (this=0xd58070, event=<value optimized out>) at kernel/qapplication_x11.cpp:3976
#20 0x00007f436d3d5cb7 in QApplication::x11ProcessEvent (this=0x1a6, event=0x7fff789daef0) at kernel/qapplication_x11.cpp:3160
#21 0x00007f436d3fc59c in x11EventSourceDispatch (s=0x622ee0, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:142
#22 0x00007f4369d5b93a in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#23 0x00007f4369d5f040 in ?? () from /usr/lib64/libglib-2.0.so.0
#24 0x00007f4369d5f1dc in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#25 0x00007f436e0773af in QEventDispatcherGlib::processEvents (this=0x61f010, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:319
#26 0x00007f436d3fbd0f in QGuiEventDispatcherGlib::processEvents (this=0xd4ca00, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:198
#27 0x00007f436e04d782 in QEventLoop::processEvents (this=<value optimized out>, flags={i = 2023600608}) at kernel/qeventloop.cpp:143
#28 0x00007f436e04d90d in QEventLoop::exec (this=0x7fff789db220, flags={i = 2023600704}) at kernel/qeventloop.cpp:194
#29 0x00007f436d701095 in QMenu::exec (this=<value optimized out>, p=@0x7fff789db700, action=0x0) at widgets/qmenu.cpp:1938
#30 0x00007f437053dee6 in KonqFrameTabs::slotContextMenu (this=0xd4ca00, w=0x22aa810, p=@0x7fff789db700) at /usr/src/debug/kdebase-4.2.0/apps/konqueror/src/konqtabs.cpp:400
#31 0x00007f437053e0c3 in KonqFrameTabs::qt_metacall (this=0xd4ca00, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff789db530)
    at /usr/src/debug/kdebase-4.2.0/build/apps/konqueror/src/konqtabs.moc:104
#32 0x00007f436e063284 in QMetaObject::activate (sender=0xd4ca00, from_signal_index=<value optimized out>, to_signal_index=42, argv=0xd4ca30) at kernel/qobject.cpp:3031
#33 0x00007f436ef2e867 in KTabWidget::contextMenu (this=0xd4ca00, _t1=0x22aa810, _t2=<value optimized out>) at /usr/src/debug/kdelibs-4.2.0/build/kdeui/ktabwidget.moc:239
#34 0x00007f436ef3066c in KTabWidget::qt_metacall (this=0xd4ca00, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff789db6a0)
    at /usr/src/debug/kdelibs-4.2.0/build/kdeui/ktabwidget.moc:151
#35 0x00007f437053df75 in KonqFrameTabs::qt_metacall (this=0xd4ca00, _c=13807944, _id=1952670047, _a=0xd4ca30) at /usr/src/debug/kdebase-4.2.0/build/apps/konqueror/src/konqtabs.moc:93
#36 0x00007f436e063284 in QMetaObject::activate (sender=0xd4ee40, from_signal_index=<value optimized out>, to_signal_index=32, argv=0xd4ca30) at kernel/qobject.cpp:3031
#37 0x00007f436ef2d133 in KTabBar::contextMenu (this=0xd4ca00, _t1=2, _t2=<value optimized out>) at /usr/src/debug/kdelibs-4.2.0/build/kdeui/ktabbar.moc:115
#38 0x00007f436ef2e292 in KTabBar::mousePressEvent (this=0xd4ee40, event=<value optimized out>) at /usr/src/debug/kdelibs-4.2.0/kdeui/widgets/ktabbar.cpp:134
#39 0x00007f436d3bd98f in QWidget::event (this=0xd4ca00, event=0x7fff789dbee0) at kernel/qwidget.cpp:7159
#40 0x00007f436d727211 in QTabBar::event (this=0xd4ee40, e=0x7fff789dbee0) at widgets/qtabbar.cpp:1204
#41 0x00007f436d36b17d in QApplicationPrivate::notify_helper (this=0x61f840, receiver=0xd4ee40, e=0x7fff789dbee0) at kernel/qapplication.cpp:3803
#42 0x00007f436d37379a in QApplication::notify (this=<value optimized out>, receiver=0xd4ee40, e=0x7fff789dbee0) at kernel/qapplication.cpp:3528
#43 0x00007f436ee46d4b in KApplication::notify (this=0x7fff789dcef0, receiver=0xd4ee40, event=0x7fff789dbee0) at /usr/src/debug/kdelibs-4.2.0/kdeui/kernel/kapplication.cpp:307
#44 0x00007f436e04ee81 in QCoreApplication::notifyInternal (this=0x7fff789dcef0, receiver=0xd4ee40, event=0x7fff789dbee0) at kernel/qcoreapplication.cpp:587
#45 0x00007f436d372b38 in QApplicationPrivate::sendMouseEvent (receiver=0xd4ee40, event=0x7fff789dbee0, alienWidget=0x0, nativeWidget=0xd4ee40, buttonDown=<value optimized out>, 
    lastMouseReceiver=@0x7f436dce8760) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:212
#46 0x00007f436d3d7299 in QETWidget::translateMouseEvent (this=0xd4ee40, event=<value optimized out>) at kernel/qapplication_x11.cpp:4042
#47 0x00007f436d3d5cb7 in QApplication::x11ProcessEvent (this=0x1a6, event=0x7fff789dc960) at kernel/qapplication_x11.cpp:3160
#48 0x00007f436d3fc59c in x11EventSourceDispatch (s=0x622ee0, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:142
#49 0x00007f4369d5b93a in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#50 0x00007f4369d5f040 in ?? () from /usr/lib64/libglib-2.0.so.0
#51 0x00007f4369d5f1dc in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#52 0x00007f436e0773af in QEventDispatcherGlib::processEvents (this=0x61f010, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:319
#53 0x00007f436d3fbd0f in QGuiEventDispatcherGlib::processEvents (this=0xd4ca00, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:198
#54 0x00007f436e04d782 in QEventLoop::processEvents (this=<value optimized out>, flags={i = 2023607376}) at kernel/qeventloop.cpp:143
#55 0x00007f436e04d90d in QEventLoop::exec (this=0x7fff789dcc90, flags={i = 2023607456}) at kernel/qeventloop.cpp:194
#56 0x00007f436e04fdfd in QCoreApplication::exec () at kernel/qcoreapplication.cpp:845
#57 0x00007f4370598729 in kdemain (argc=<value optimized out>, argv=<value optimized out>) at /usr/src/debug/kdebase-4.2.0/apps/konqueror/src/konqmain.cpp:257
#58 0x00007f436b57b436 in __libc_start_main () from /lib64/libc.so.6
#59 0x00000000004007d9 in _start ()
Comment 1 A. Spehr 2009-02-06 23:48:58 UTC
Can't confirm under r921975.
Comment 2 S. Burmeister 2009-02-07 00:23:39 UTC
If I disable the sidebar with bookmarks in it, it does not happen here either.
Comment 3 S. Burmeister 2009-02-07 00:29:09 UTC
I have to be more precise. If I start konqueror with opened bookmarks sidebar, open several of the bookmarks in different tabs and use "close all other tabs" it crashes.

If I start konq with the sidebar enabled, open the same websites but close the sidebar afterwards (F9), "close all other" does not crash konqueror. It does not crash either after re-enabling the sidebar.
Comment 4 Dario Andres 2009-04-17 16:49:04 UTC
*** Bug 189856 has been marked as a duplicate of this bug. ***
Comment 5 colour 2009-06-12 14:53:13 UTC
I have been seeing this bug for months quite reliably on three installations of Kubuntu Jaunty including most recently with the backported KDE 4.3 Beta 2. I only need to open a second blank tab and right click, close other tabs on that tab to crash Konqueror. There is no problem if the navigation panel is hidden. 

I say "quite" reliably because when experimenting with very simple cases I have occasionally been able to get it to not crash but I can't see a pattern to it.

I have this bug on all three of my Jaunty machines: one is a new Jaunty installation and two are upgrades from 3.5.10, although both upgrades have had legacy .kde/share/apps/konqsidebartng directories removed in order to get the navigation to work (#172516).
Comment 6 colour 2009-06-12 15:43:36 UTC
I should add that I also see that when starting with the sidebar enabled, hiding and then re-enabling the sidebar prevents crashes on subsequent use of Close Other Tabs.
Comment 7 David Faure 2009-08-27 16:16:37 UTC
SVN commit 1016317 by dfaure:

Fix crash in "close all other tabs". Fix will be in 4.3.1.
BUG: 183486


 M  +5 -0      konqframe.cpp  
 M  +1 -1      konqframe.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1016317