Bug 150162

Summary: Konqueror crashes when multiple Web tabs are closed in quick succession by the middle mouse button [KonqMainWindow::slotAddClosedUrl]
Product: [Applications] konqueror Reporter: Jacob D'Agostino <jdagostino1>
Component: generalAssignee: David Faure <faure>
Status: RESOLVED FIXED    
Severity: crash CC: aifesteves, andresbajotierra, bh.inbox, davide.bettio, faure, frank78ac, gatoso, ibc, jouni.karlsson, k00_fol, knurz, kollix, moilinki, null, p.varet, poskoc, racecar56, rohland.max, sdmoralesma, wandereroffullmoon
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In: 4.4.3
Sentry Crash Report:
Attachments: New crash information added by DrKonqi
New crash information added by DrKonqi

Description Jacob D'Agostino 2007-09-24 21:30:54 UTC
Version:            (using KDE KDE 3.5.7)
Installed from:    Ubuntu Packages
OS:                Linux

Description says it all, really. To reproduce: 

load up like a dozen or two tabs of different web pages (Internet forums are great for this)

close a few as fast as you can with the middle mouse button (the option to enable mmb-close is undocumented, I guess, but using tweaK enables it).

Konq will SIGABRT after four or five.

This does not seem to occur for tabs loaded to about:blank. 

This also does not occur when using the "close tab" button on the end of the tab bar.
Comment 1 Eduardo Robles Elvira 2008-06-05 22:43:29 UTC
I can confirm this bug in KDE > 4.1 beta 1 (SVN trunk rev 817151). This is the backtrace: 

Application: Konqueror (konqueror), signal SIGSEGV
[Thread debugging using libthread_db enabled]
[New Thread 0x7f9469cd8780 (LWP 10968)]
[KCrash handler]
#5  0x00007f9469864539 in KonqMainWindow::slotAddClosedUrl (this=0x73dcb0, 
    tab=0xad2b78)
    at /home/edulix/proyectos/kde4/kdesvn/kdebase/apps/konqueror/src/konqmainwindow.cpp:5078
#6  0x00007f9469882211 in KonqMainWindow::qt_metacall (this=0x73dcb0, 
    _c=QMetaObject::InvokeMetaMethod, _id=38, _a=0x7fff71d11590)
    at /home/edulix/proyectos/kde4/kdesvn/build/kdebase/apps/konqueror/src/konqmainwindow.moc:356
#7  0x00007f946749887b in QMetaObject::activate (sender=0x6d9b20, 
    from_signal_index=<value optimized out>, to_signal_index=10, argv=0x0)
    at kernel/qobject.cpp:2998
#8  0x00007f946983623f in KonqViewManager::aboutToRemoveTab (this=0x6d9b20, 
    _t1=0xad2b78)
    at /home/edulix/proyectos/kde4/kdesvn/build/kdebase/apps/konqueror/src/konqviewmanager.moc:107
#9  0x00007f946983b843 in KonqViewManager::removeTab (this=0x6d9b20, 
    currentFrame=0xad2b78, emitAboutToRemoveSignal=true)
    at /home/edulix/proyectos/kde4/kdesvn/kdebase/apps/konqueror/src/konqviewmanager.cpp:380
#10 0x00007f9469873ef2 in KonqMainWindow::slotRemoveTabPopupDelayed (
    this=0x73dcb0)
    at /home/edulix/proyectos/kde4/kdesvn/kdebase/apps/konqueror/src/konqmainwindow.cpp:2506
#11 0x00007f94698825df in KonqMainWindow::qt_metacall (this=0x73dcb0, 
    _c=QMetaObject::InvokeMetaMethod, _id=76, _a=0x7fff71d11870)
    at /home/edulix/proyectos/kde4/kdesvn/build/kdebase/apps/konqueror/src/konqmainwindow.moc:394
#12 0x00007f946749887b in QMetaObject::activate (sender=0x33bff70, 
    from_signal_index=<value optimized out>, to_signal_index=4, argv=0x0)
    at kernel/qobject.cpp:2998
#13 0x00007f94674a096f in QSingleShotTimer::timerEvent (this=0x33bff70)
    at kernel/qtimer.cpp:300
#14 0x00007f9467497015 in QObject::event (this=0x33bff70, e=0x7fff71d11110)
    at kernel/qobject.cpp:1096
#15 0x00007f9464725a1f in QApplicationPrivate::notify_helper (this=0x620750, 
    receiver=0x33bff70, e=0x7fff71d11ee0) at kernel/qapplication.cpp:3772
#16 0x00007f946472cc25 in QApplication::notify (this=0x7fff71d12330, 
    receiver=0x33bff70, e=0x7fff71d11ee0) at kernel/qapplication.cpp:3739
#17 0x00007f9468843d5c in KApplication::notify (this=0x7fff71d12330, 
    receiver=0x33bff70, event=0x7fff71d11ee0)
    at /home/edulix/proyectos/kde4/kdesvn/kdelibs/kdeui/kernel/kapplication.cpp:311
#18 0x00007f9467488fe4 in QCoreApplication::notifyInternal (
    this=0x7fff71d12330, receiver=0x33bff70, event=0x7fff71d11ee0)
    at kernel/qcoreapplication.cpp:583
#19 0x00007f94674af009 in QTimerInfoList::activateTimers (this=0x623c60)
    at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#20 0x00007f94674acdad in timerSourceDispatch (source=<value optimized out>)
    at kernel/qeventdispatcher_glib.cpp:166
#21 0x00007f9461ec7262 in g_main_context_dispatch ()
   from /usr/lib/libglib-2.0.so.0
#22 0x00007f9461eca516 in ?? () from /usr/lib/libglib-2.0.so.0
#23 0x00007f9461eca9af in g_main_context_iteration ()
   from /usr/lib/libglib-2.0.so.0
#24 0x00007f94674ad3cf in QEventDispatcherGlib::processEvents (this=0x61c500, 
    flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:325
#25 0x00007f946479f68f in QGuiEventDispatcherGlib::processEvents (
    this=0x7f9469aebca0, flags=<value optimized out>)
    at kernel/qguieventdispatcher_glib.cpp:204
#26 0x00007f94674883d5 in QEventLoop::processEvents (
    this=<value optimized out>, flags=@0x7fff71d12130)
    at kernel/qeventloop.cpp:149
#27 0x00007f9467488547 in QEventLoop::exec (this=0x7fff71d12170, 
    flags=@0x7fff71d12180) at kernel/qeventloop.cpp:196
#28 0x00007f946748a551 in QCoreApplication::exec ()
    at kernel/qcoreapplication.cpp:845
#29 0x00007f94698ae519 in kdemain (argc=1, argv=0x7fff71d12ce8)
    at /home/edulix/proyectos/kde4/kdesvn/kdebase/apps/konqueror/src/konqmain.cpp:239
#30 0x0000000000400933 in main (argc=1, argv=0x7fff71d12ce8)
    at /home/edulix/proyectos/kde4/kdesvn/build/kdebase/apps/konqueror/src/konqueror_dummy.cpp:3
#0  0x00007f9462ed6b81 in nanosleep () from /lib/libc.so.6
Comment 2 Christophe Marin 2008-07-18 10:37:29 UTC
*** Bug 166891 has been marked as a duplicate of this bug. ***
Comment 3 Frank Reininghaus 2009-06-12 16:46:07 UTC
*** Bug 196172 has been marked as a duplicate of this bug. ***
Comment 4 Dario Andres 2009-06-12 16:54:25 UTC
*** Bug 183288 has been marked as a duplicate of this bug. ***
Comment 5 FiNeX 2009-08-12 17:04:41 UTC
*** Bug 203483 has been marked as a duplicate of this bug. ***
Comment 6 Dario Andres 2009-09-06 16:06:59 UTC
*** Bug 206470 has been marked as a duplicate of this bug. ***
Comment 7 Frank Reininghaus 2009-09-14 09:57:16 UTC
*** Bug 207303 has been marked as a duplicate of this bug. ***
Comment 8 Dario Andres 2009-09-30 23:06:30 UTC
*** Bug 208030 has been marked as a duplicate of this bug. ***
Comment 9 Dario Andres 2009-09-30 23:06:37 UTC
*** Bug 207605 has been marked as a duplicate of this bug. ***
Comment 10 Dario Andres 2009-10-09 01:55:18 UTC
Updated backtrace from KDE4.3.1:
---

 -- Backtrace:
Application: Konqueror (kdeinit4), signal: Segmentation fault
[Current thread is 1 (Thread 0xb5e8f700 (LWP 1726))]

Thread 2 (Thread 0xae1ffb70 (LWP 2217)):
#0  0xb805a424 in __kernel_vsyscall ()
#1  0xb7dffec2 in pthread_cond_timedwait@@GLIBC_2.3.2 () from
/lib/libpthread.so.0
#2  0xb7e5dfdf in QWaitCondition::wait(QMutex*, unsigned long) () from
/usr/lib/libQtCore.so.4
#3  0xb7e5382e in ?? () from /usr/lib/libQtCore.so.4
#4  0xb7e5d042 in ?? () from /usr/lib/libQtCore.so.4
#5  0xb7dfb65c in start_thread () from /lib/libpthread.so.0
#6  0xb68971fe in clone () from /lib/libc.so.6

Thread 1 (Thread 0xb5e8f700 (LWP 1726)):
[KCrash Handler]
#6  KonqMainWindow::slotAddClosedUrl (this=0x88a8870, tab=0xad0c0734) at
/home/jofko/kdemod/core/kdebase/src/kdebase-4.3.1/apps/konqueror/src/konqmainwindow.cpp:5189
#7  0xb48d3550 in KonqMainWindow::qt_metacall (this=0x88a8870,
_c=QMetaObject::InvokeMetaMethod, _id=44, _a=0xbf845578)
    at
/home/jofko/kdemod/core/kdebase/src/kdebase-4.3.1/apps/konqueror/src/konqmainwindow.moc:379
#8  0xb7f60fcc in QMetaObject::activate(QObject*, int, int, void**) () from
/usr/lib/libQtCore.so.4
#9  0xb7f61c02 in QMetaObject::activate(QObject*, QMetaObject const*, int,
void**) () from /usr/lib/libQtCore.so.4
#10 0xb4876fb3 in KonqViewManager::aboutToRemoveTab (this=0x88e7b00,
_t1=0xad0c0734) at
/home/jofko/kdemod/core/kdebase/src/kdebase-4.3.1/apps/konqueror/src/konqviewmanager.moc:106
#11 0xb4877d67 in KonqViewManager::removeTab (this=0x88e7b00,
currentFrame=0xad0c0734, emitAboutToRemoveSignal=true)
    at
/home/jofko/kdemod/core/kdebase/src/kdebase-4.3.1/apps/konqueror/src/konqviewmanager.cpp:389
#12 0xb48ab475 in KonqMainWindow::slotRemoveTabPopupDelayed (this=0x88a8870) at
/home/jofko/kdemod/core/kdebase/src/kdebase-4.3.1/apps/konqueror/src/konqmainwindow.cpp:2559
#13 0xb48d3858 in KonqMainWindow::qt_metacall (this=0x88a8870,
_c=QMetaObject::InvokeMetaMethod, _id=82, _a=0xbf84571c)
    at
/home/jofko/kdemod/core/kdebase/src/kdebase-4.3.1/apps/konqueror/src/konqmainwindow.moc:417
Comment 11 Dario Andres 2009-10-09 01:55:27 UTC
*** Bug 209826 has been marked as a duplicate of this bug. ***
Comment 12 Dario Andres 2009-10-11 19:55:15 UTC
*** Bug 210154 has been marked as a duplicate of this bug. ***
Comment 13 Tommi Tervo 2009-10-23 21:53:49 UTC
*** Bug 211585 has been marked as a duplicate of this bug. ***
Comment 14 Dario Andres 2009-10-25 22:35:58 UTC
*** Bug 211830 has been marked as a duplicate of this bug. ***
Comment 15 Joel 2009-12-04 21:56:16 UTC
You don't really have to use the middle button to experience a crash. I'm a layman and guess it's some race condition when closing "tabs".

Here's how I think I can reproduce it:

1) start konqueror from the console
2) Open up three tabs, (in my case opened Fedora release notes in all taps)
3) Ctrl-z to put konq to sleep (displays stopped)
3) In konqueror, click the red cross to close two of the tabs. Nothing will happen until...
4) In console, type "fg" to wake up konqueror again, and make it crash.
Comment 16 Joel 2009-12-04 22:12:43 UTC
Oh, by the way. This happens on Fedora core 12 and I usually don't put konqueror to sleep when it happens. It's enough if the computer is under some load so that konqueror start to be enough unresponsive and does not have time to close the first tab before I have clicked the next one.

(Flash and javascript seems to help making konqueror a bit laggy and prone to this bug)

Happened just now on:
Qt: 4.5.3
KDE: 4.3.3 (KDE 4.3.3)
Konqueror: 4.3.3 (KDE 4.3.3)

And with the ctrl-z trick, it crash even blank tabs.
-Joel
Comment 17 Dario Andres 2009-12-17 00:30:25 UTC
From bug 218981:
---
Application: konqueror (4.3.80 (KDE 4.3.80 (KDE 4.4 Beta1)))
KDE Platform Version: 4.3.80 (KDE 4.3.80 (KDE 4.4 Beta1))
Qt Version: 4.6.0

-- Information about the crash:
Random crashes with Konqueror when closing tabs.

I get best repetitions of this crash when closing tabs while there is still
being content loaded in them but still is very random.
Comment 18 Dario Andres 2009-12-17 00:30:28 UTC
*** Bug 218981 has been marked as a duplicate of this bug. ***
Comment 19 Tommi Tervo 2010-01-27 18:42:07 UTC
*** Bug 224478 has been marked as a duplicate of this bug. ***
Comment 20 Tommi Tervo 2010-02-04 21:01:57 UTC
*** Bug 225540 has been marked as a duplicate of this bug. ***
Comment 21 P. Varet 2010-02-10 20:06:58 UTC
Created attachment 40646 [details]
New crash information added by DrKonqi

Added traceback for same issue in 4.4rc2.
Comment 22 Frank Reininghaus 2010-02-11 10:01:21 UTC
*** Bug 224452 has been marked as a duplicate of this bug. ***
Comment 23 David Faure 2010-03-03 16:43:41 UTC
SVN commit 1098373 by dfaure:

Fix crash when closing tabs fast: don't keep pointers to tabs/frames across event loop returns,
keep ints instead (tab numbers)
Fixed for: 4.5 with this commit, to be backported if it proves stable enough.
BUG: 210551
BUG: 150162


 M  +36 -14    konqmainwindow.cpp  
 M  +7 -4      konqmainwindow.h  
 M  +8 -8      konqtabs.cpp  
 M  +8 -1      konqtabs.h  
 M  +10 -12    konqviewmanager.cpp  
 M  +2 -2      konqviewmanager.h  
 M  +19 -1     tests/konqviewmgrtest.cpp  
 M  +1 -0      tests/konqviewmgrtest.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1098373
Comment 24 Tommi Tervo 2010-05-21 17:47:53 UTC
*** Bug 238401 has been marked as a duplicate of this bug. ***
Comment 25 André Esteves 2010-07-14 02:17:26 UTC
Created attachment 49136 [details]
New crash information added by DrKonqi

Konqueror crashesd when closing multiple tabs in sucesion. There were more tabs than a window could take.
Comment 26 Frank Reininghaus 2010-07-14 14:25:18 UTC
Fixed in 4.4.3 (see bug 210551).