Bug 301974

Summary: Konqueror crash after using Edit - Undo Close Window multiple times
Product: [Applications] konqueror Reporter: Joachim Mairböck <j.mairboeck>
Component: generalAssignee: Konqueror Developers <konq-bugs>
Status: RESOLVED FIXED    
Severity: crash CC: adawit
Priority: NOR    
Version: 5.0.97   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In: 4.12.1
Sentry Crash Report:
Attachments: DrKonqi info (stack trace)

Description Joachim Mairböck 2012-06-15 16:40:19 UTC
Application: konqueror (4.8.4 (4.8.4))
KDE Platform Version: 4.8.4 (4.8.4)
Qt Version: 4.8.2
Operating System: Linux 3.1.10-1.9-pae i686
Distribution: "openSUSE 12.1 (i586)"

-- Information about the crash:
- What I was doing when the application crashed:
Opened the last closed window via undo after a reboot.
The second time, this yielded an about:blank window with default toolbar layout (I've customized mine). This isn't what I wanted, so I closed both windows again and tried undoing again twice. The first window came correctly, the second time it crashed.

It seems that Undo Close Window only works reliably for 1 window.

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

Thread 2 (Thread 0xb04cdb70 (LWP 3281)):
#0  0xb6c36a80 in __pthread_mutex_unlock_usercnt () from /lib/libpthread.so.0
#1  0xb5998aef in g_main_context_check (context=0xafb004e0, max_priority=2147483647, fds=0xafb00de8, n_fds=1) at gmain.c:2941
#2  0xb59994c0 in g_main_context_iterate (context=0xafb004e0, block=-1248166064, dispatch=1, self=<optimized out>) at gmain.c:3070
#3  0xb59997fa in g_main_context_iteration (context=0xafb004e0, may_block=1) at gmain.c:3136
#4  0xb6dfeb47 in QEventDispatcherGlib::processEvents (this=0xafb00468, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#5  0xb6dca64d in QEventLoop::processEvents (this=0xb04cd2b0, flags=...) at kernel/qeventloop.cpp:149
#6  0xb6dca8e9 in QEventLoop::exec (this=0xb04cd2b0, flags=...) at kernel/qeventloop.cpp:204
#7  0xb6cb3dac in QThread::exec (this=0x81ddc80) at thread/qthread.cpp:501
#8  0xb54935cf in KIO::NameLookUpThread::run (this=0x81ddc80) at /usr/src/debug/kdelibs-4.8.4/kio/kio/hostinfo.cpp:226
#9  0xb6cb7290 in QThreadPrivate::start (arg=0x81ddc80) at thread/qthread_unix.cpp:307
#10 0xb6c33a7d in start_thread () from /lib/libpthread.so.0
#11 0xb5fc3abe in clone () from /lib/libc.so.6

Thread 1 (Thread 0xb5720710 (LWP 3236)):
[KCrash Handler]
#6  UndoCommand (this=0xbfc65b08) at /usr/src/debug/kdelibs-4.8.4/kio/kio/fileundomanager_p.h:55
#7  KIO::FileUndoManager::undo (this=0x837f0a0) at /usr/src/debug/kdelibs-4.8.4/kio/kio/fileundomanager.cpp:327
#8  0xb1b0137d in KonqUndoManager::undo (this=0x147cf508) at /usr/src/debug/kde-baseapps-4.8.4/konqueror/src/konqundomanager.cpp:139
#9  0xb6de269f in QMetaObject::activate (sender=0x11765ee8, m=0xb6c0c3b8, local_signal_index=1, argv=0xbfc65c78) at kernel/qobject.cpp:3556
#10 0xb628f1bd in QAction::triggered (this=0x11765ee8, _t1=false) at .moc/release-shared/moc_qaction.cpp:277
#11 0xb628f45b in QAction::activate (this=0x11765ee8, event=QAction::Trigger) at kernel/qaction.cpp:1257
#12 0xb628f7b8 in trigger (this=0x11765ee8) at kernel/qaction.h:218
#13 qt_static_metacall (_a=0x1477fbb8, _id=8, _o=0x11765ee8, _c=<optimized out>) at .moc/release-shared/moc_qaction.cpp:151
#14 QAction::qt_static_metacall (_o=0x11765ee8, _c=QMetaObject::InvokeMetaMethod, _id=8, _a=0x1477fbb8) at .moc/release-shared/moc_qaction.cpp:137
#15 0xb6dddbc1 in QMetaCallEvent::placeMetaCall (this=0x128f0d00, object=0x11765ee8) at kernel/qobject.cpp:525
#16 0xb6de6d2b in QObject::event (this=0x11765ee8, e=0x128f0d00) at kernel/qobject.cpp:1204
#17 0xb628f531 in event (e=<optimized out>, this=<optimized out>) at kernel/qaction.cpp:1187
#18 QAction::event (this=0x805432c, e=0x0) at kernel/qaction.cpp:1172
#19 0xb744035f in KAction::event (this=0x11765ee8, event=0x128f0d00) at /usr/src/debug/kdelibs-4.8.4/kdeui/actions/kaction.cpp:131
#20 0xb6296404 in notify_helper (e=0x128f0d00, receiver=0x11765ee8, this=0x8118910) at kernel/qapplication.cpp:4551
#21 QApplicationPrivate::notify_helper (this=0x8118910, receiver=0x11765ee8, e=0x128f0d00) at kernel/qapplication.cpp:4523
#22 0xb629b743 in QApplication::notify (this=0x128f0d00, receiver=0x11765ee8, e=0x128f0d00) at kernel/qapplication.cpp:4280
#23 0xb7546491 in KApplication::notify (this=0xbfc66644, receiver=0x11765ee8, event=0x128f0d00) at /usr/src/debug/kdelibs-4.8.4/kdeui/kernel/kapplication.cpp:311
#24 0xb6dcbdce in QCoreApplication::notifyInternal (this=0xbfc66644, receiver=0x11765ee8, event=0x128f0d00) at kernel/qcoreapplication.cpp:915
#25 0xb6dcfa48 in sendEvent (event=<optimized out>, receiver=<optimized out>) at kernel/qcoreapplication.h:231
#26 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x805ae68) at kernel/qcoreapplication.cpp:1539
#27 0xb6dcfd7c in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1432
#28 0xb6dfe6f4 in sendPostedEvents () at kernel/qcoreapplication.h:236
#29 postEventSourceDispatch (s=0x8119880) at kernel/qeventdispatcher_glib.cpp:279
#30 0xb5998e2f in g_main_dispatch (context=0x811aa00) at gmain.c:2425
#31 g_main_context_dispatch (context=0x811aa00) at gmain.c:2995
#32 0xb5999560 in g_main_context_iterate (context=0x811aa00, block=-1248166064, dispatch=1, self=<optimized out>) at gmain.c:3073
#33 0xb59997fa in g_main_context_iteration (context=0x811aa00, may_block=1) at gmain.c:3136
#34 0xb6dfeae7 in QEventDispatcherGlib::processEvents (this=0x80dd2b8, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#35 0xb634a40a in QGuiEventDispatcherGlib::processEvents (this=0x80dd2b8, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#36 0xb6dca64d in QEventLoop::processEvents (this=0xbfc66504, flags=...) at kernel/qeventloop.cpp:149
#37 0xb6dca8e9 in QEventLoop::exec (this=0xbfc66504, flags=...) at kernel/qeventloop.cpp:204
#38 0xb6dcfe2a in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1187
#39 0xb62942a4 in QApplication::exec () at kernel/qapplication.cpp:3812
#40 0xb1b154d7 in kdemain (argc=2, argv=0x80daf98) at /usr/src/debug/kde-baseapps-4.8.4/konqueror/src/konqmain.cpp:227
#41 0x0804fc3f in launch (argc=2, _name=0x80e496c "konqueror", args=<optimized out>, cwd=0x80e4994 "/home/joachim/Documents", envc=89, envs=<optimized out>, reset_env=true, tty=0x0, avoid_loops=false, startup_id_str=0x80e54b4 "joachimasus.site;1339777499;167149;2663_TIME346635") at /usr/src/debug/kdelibs-4.8.4/kinit/kinit.cpp:734
#42 0x08050cdc in handle_launcher_request (sock=<optimized out>, who=<optimized out>) at /usr/src/debug/kdelibs-4.8.4/kinit/kinit.cpp:1226
#43 0x0805129d in handle_requests (waitForPid=<optimized out>) at /usr/src/debug/kdelibs-4.8.4/kinit/kinit.cpp:1410
#44 0x0804c6f8 in main (argc=-1252370328, argv=0x83db2a8, envp=0x0) at /usr/src/debug/kdelibs-4.8.4/kinit/kinit.cpp:1907

Reported using DrKonqi
Comment 1 Dawit Alemayehu 2012-09-24 20:36:17 UTC
Cannot reproduce this problem. Do you still see this issue in the latest stable version of KDE, v4.9 or higher ?
Comment 2 Joachim Mairböck 2012-09-25 19:58:33 UTC
Ok, it seems to work now, using KDE 4.9.1. For some windows it seems to confuse whether it was a popup or not (given the toolbar layout which is sometimes still a bit wrong), but I could not make it crash any more.
Comment 3 Joachim Mairböck 2012-10-16 17:00:35 UTC
I just got a crash again, with version 4.9.2:

I had a konqueror window open with an image, coming from an HTML page, so I did some navigation but not open a second tab. I clicked on Edit - Undo close window, but there came just an empty window (although I am sure I had some tabs open last time). So I tried it again, in the new empty window, the other one still open, and it crashed instantly. In the new Konqueror after restarting it, the menu item was disabled.
Comment 4 Dawit Alemayehu 2014-01-01 13:59:10 UTC
Ok. I am able to reproduce this crash, but I had to do the undo multiple times:

Application: Konqueror (konqueror), signal: Segmentation fault
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[Current thread is 1 (Thread 0x7fc3f3783780 (LWP 1648))]

Thread 6 (Thread 0x7fc3da2ab700 (LWP 1649)):
#0  0x00007fc3edfe203f in pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib/libpthread.so.0
#1  0x00007fc3dec3b94d in ?? () from /usr/lib/libQtWebKit.so.4
#2  0x00007fc3dec3b989 in ?? () from /usr/lib/libQtWebKit.so.4
#3  0x00007fc3edfde0a2 in start_thread () from /usr/lib/libpthread.so.0
#4  0x00007fc3ed2793dd in clone () from /usr/lib/libc.so.6

Thread 5 (Thread 0x7fc39979b700 (LWP 1650)):
#0  0x00007fc3edfe203f in pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib/libpthread.so.0
#1  0x00007fc3de97d44d in ?? () from /usr/lib/libQtWebKit.so.4
#2  0x00007fc3dec6b0e6 in ?? () from /usr/lib/libQtWebKit.so.4
#3  0x00007fc3edfde0a2 in start_thread () from /usr/lib/libpthread.so.0
#4  0x00007fc3ed2793dd in clone () from /usr/lib/libc.so.6

Thread 4 (Thread 0x7fc398b3d700 (LWP 1652)):
#0  0x00007fc3ea5c7fba in ?? () from /usr/lib/libglib-2.0.so.0
#1  0x00007fc3ea5c8299 in g_mutex_unlock () from /usr/lib/libglib-2.0.so.0
#2  0x00007fc3ea587c20 in g_main_context_prepare () from /usr/lib/libglib-2.0.so.0
#3  0x00007fc3ea5884a3 in ?? () from /usr/lib/libglib-2.0.so.0
#4  0x00007fc3ea58868c in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#5  0x00007fc3ee39ab46 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#6  0x00007fc3ee36cb1f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#7  0x00007fc3ee36ce15 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#8  0x00007fc3ee26b6ef in QThread::exec() () from /usr/lib/libQtCore.so.4
#9  0x00007fc3ee26dd8f in ?? () from /usr/lib/libQtCore.so.4
#10 0x00007fc3edfde0a2 in start_thread () from /usr/lib/libpthread.so.0
#11 0x00007fc3ed2793dd in clone () from /usr/lib/libc.so.6

Thread 3 (Thread 0x7fc38a7c7700 (LWP 1653)):
#0  0x00007fc3ed27091d in poll () from /usr/lib/libc.so.6
#1  0x00007fc3ea588584 in ?? () from /usr/lib/libglib-2.0.so.0
#2  0x00007fc3ea58868c in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#3  0x00007fc3ee39ab46 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#4  0x00007fc3ee36cb1f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#5  0x00007fc3ee36ce15 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#6  0x00007fc3ee26b6ef in QThread::exec() () from /usr/lib/libQtCore.so.4
#7  0x00007fc3ee26dd8f in ?? () from /usr/lib/libQtCore.so.4
#8  0x00007fc3edfde0a2 in start_thread () from /usr/lib/libpthread.so.0
#9  0x00007fc3ed2793dd in clone () from /usr/lib/libc.so.6

Thread 2 (Thread 0x7fc3898f6700 (LWP 1655)):
#0  0x00007fc3ed272593 in select () from /usr/lib/libc.so.6
#1  0x00007fc3ee34b013 in ?? () from /usr/lib/libQtCore.so.4
#2  0x00007fc3ee26dd8f in ?? () from /usr/lib/libQtCore.so.4
#3  0x00007fc3edfde0a2 in start_thread () from /usr/lib/libpthread.so.0
#4  0x00007fc3ed2793dd in clone () from /usr/lib/libc.so.6

Thread 1 (Thread 0x7fc3f3783780 (LWP 1648)):
[KCrash Handler]
#6  UndoCommand (this=0x7fff350c0750) at /usr/local/src/KDE/git/kdelibs/kio/kio/fileundomanager_p.h:55
#7  KIO::FileUndoManager::undo (this=0xd01130) at /usr/local/src/KDE/git/kdelibs/kio/kio/fileundomanager.cpp:328
#8  0x00007fc3f3368aa8 in KonqUndoManager::undo (this=<optimized out>) at /usr/local/src/KDE/git/kdebase/kde-baseapps/konqueror/src/konqundomanager.cpp:139
#9  0x00007fc3f3368c85 in KonqUndoManager::qt_static_metacall (_o=<optimized out>, _id=<optimized out>, _a=<optimized out>, _c=<optimized out>) at /usr/local/build/KDE/git/kdebase/kde-baseapps/konqueror/src/konqundomanager.moc:90
#10 0x00007fc3ee381b48 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#11 0x00007fc3f0125f82 in QAction::triggered(bool) () from /usr/lib/libQtGui.so.4
#12 0x00007fc3f0127953 in QAction::activate(QAction::ActionEvent) () from /usr/lib/libQtGui.so.4
#13 0x00007fc3f0550d79 in ?? () from /usr/lib/libQtGui.so.4
#14 0x00007fc3f05552a9 in ?? () from /usr/lib/libQtGui.so.4
#15 0x00007fc3f115b555 in KMenu::mouseReleaseEvent (this=0x15e9f00, e=0x7fff350c1030) at /usr/local/src/KDE/git/kdelibs/kdeui/widgets/kmenu.cpp:464
#16 0x00007fc3f017b62e in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4
#17 0x00007fc3f055907b in QMenu::event(QEvent*) () from /usr/lib/libQtGui.so.4
#18 0x00007fc3f012c0dc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#19 0x00007fc3f01327dd in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#20 0x00007fc3f10a4b3a in KApplication::notify (this=0x7fff350c1930, receiver=0x15e9f00, event=0x7fff350c1030) at /usr/local/src/KDE/git/kdelibs/kdeui/kernel/kapplication.cpp:311
#21 0x00007fc3ee36debd in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#22 0x00007fc3f0131f93 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/libQtGui.so.4
#23 0x00007fc3f01a3edc in ?? () from /usr/lib/libQtGui.so.4
#24 0x00007fc3f01a261c in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/libQtGui.so.4
#25 0x00007fc3f01c9162 in ?? () from /usr/lib/libQtGui.so.4
#26 0x00007fc3ea588296 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#27 0x00007fc3ea5885e8 in ?? () from /usr/lib/libglib-2.0.so.0
#28 0x00007fc3ea58868c in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#29 0x00007fc3ee39ab25 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#30 0x00007fc3f01c9216 in ?? () from /usr/lib/libQtGui.so.4
#31 0x00007fc3ee36cb1f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#32 0x00007fc3ee36ce15 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#33 0x00007fc3ee371f4b in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#34 0x00007fc3f33797fe in kdemain (argc=<optimized out>, argv=<optimized out>) at /usr/local/src/KDE/git/kdebase/kde-baseapps/konqueror/src/konqmain.cpp:227
#35 0x00007fc3ed1b5b05 in __libc_start_main () from /usr/lib/libc.so.6
#36 0x000000000040084e in _start ()
Comment 5 Dawit Alemayehu 2014-01-01 15:35:20 UTC
Git commit 81e488b69e749db3995740e81401b8afd35c8ad4 by Dawit Alemayehu.
Committed on 01/01/2014 at 15:07.
Pushed by adawit into branch 'KDE/4.12'.

Do not call QList.last without checking for empty.

M  +4    -0    kio/kio/fileundomanager.cpp

http://commits.kde.org/kdelibs/81e488b69e749db3995740e81401b8afd35c8ad4
Comment 6 Dawit Alemayehu 2014-01-01 19:59:18 UTC
Git commit ce040ab74f812cca04ed6f7dae02e8a13cfcfc04 by Dawit Alemayehu.
Committed on 01/01/2014 at 15:02.
Pushed by adawit into branch 'KDE/4.12'.

Remove the Undo closed window entry from the manager before opening the closed window.
REVIEW: 114780
FIXED-IN: 4.12.1

M  +4    -4    konqueror/src/konqundomanager.cpp

http://commits.kde.org/kde-baseapps/ce040ab74f812cca04ed6f7dae02e8a13cfcfc04
Comment 7 Joachim Mairböck 2017-11-17 19:04:23 UTC
I just got a similar (if not the same) crash again with Konqueror 5.
Comment 8 Joachim Mairböck 2017-11-17 19:06:08 UTC
Created attachment 108928 [details]
DrKonqi info (stack trace)
Comment 9 Justin Zobel 2020-12-17 05:32:45 UTC
Thank you for the crash report.

As it has been a while since this was reported, can you please test and confirm if this issue is still occurring or if this bug report can be marked as resolved.

I have set the bug status to "needsinfo" pending your response, please change back to "reported" or "resolved/worksforme" when you respond, thank you.
Comment 10 Joachim Mairböck 2020-12-17 18:32:23 UTC
this has not happened for a long time now, resolving as fixed.