Bug 230898 - Crash when closing Konqueror window [KPixmapCache::Private::invalidateMmapFiles, KPixmapCache::recreateCacheFiles, KPixmapCache::Private::indexDevice]
Summary: Crash when closing Konqueror window [KPixmapCache::Private::invalidateMmapFil...
Status: RESOLVED FIXED
Alias: None
Product: kdelibs
Classification: Frameworks and Libraries
Component: kdeui (show other bugs)
Version: unspecified
Platform: openSUSE Linux
: NOR crash
Target Milestone: ---
Assignee: kdelibs bugs
URL:
Keywords:
: 231344 231486 (view as bug list)
Depends on:
Blocks:
 
Reported: 2010-03-15 23:54 UTC by Maarten ter Huurne
Modified: 2010-10-14 00:27 UTC (History)
6 users (show)

See Also:
Latest Commit:
Version Fixed In: 4.5.0


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Maarten ter Huurne 2010-03-15 23:54:40 UTC
Application: konqueror (4.4.1 (KDE 4.4.1) "release 225")
KDE Platform Version: 4.4.1 (KDE 4.4.1) "release 225"
Qt Version: 4.6.2
Operating System: Linux 2.6.31.12-0.1-default x86_64
Distribution (Platform): openSUSE RPMs

-- Information about the crash:
I clicked the close button on the Konqueror window title bar. The window closed immediately. A couple of seconds later I got a dialog saying that Konqueror had crashed.

The site I had open was one where I downloaded an autopackage application from, which during installation added an entry to the KDE3 menu directories. This entry was picked up by the KDE4 menu. Maybe this is relevant because it caused certain caches that are also used by Konqueror to be updated?


 -- Backtrace:
Application: Konqueror (kdeinit4), signal: Bus error
[KCrash Handler]
#5  0x00007f7e9da30cff in KPixmapCache::Private::invalidateMmapFiles() () from /usr/lib64/libkdeui.so.5
#6  0x00007f7e9da2f744 in KPixmapCache::recreateCacheFiles() () from /usr/lib64/libkdeui.so.5
#7  0x00007f7e9da364f6 in KPixmapCache::Private::indexDevice() () from /usr/lib64/libkdeui.so.5
#8  0x00007f7e9da368db in KPixmapCache::Private::writeIndex(QString const&, int) () from /usr/lib64/libkdeui.so.5
#9  0x00007f7e9da36c6e in KPixmapCache::insert(QString const&, QPixmap const&) () from /usr/lib64/libkdeui.so.5
#10 0x00007f7e9d9a989b in KIconCache::insert(QString const&, QPixmap const&, QString const&) () from /usr/lib64/libkdeui.so.5
#11 0x00007f7e9da34058 in KIconLoader::loadIcon(QString const&, KIconLoader::Group, int, int, QStringList const&, QString*, bool) const () from /usr/lib64/libkdeui.so.5
#12 0x00007f7e9da3ca1f in SmallIcon(QString const&, int, int, QStringList const&) () from /usr/lib64/libkdeui.so.5
#13 0x00007f7e9000ce6f in KonqPixmapProvider::loadIcon(QString const&, int) () from /usr/lib64/libkonquerorprivate.so.4
#14 0x00007f7e9000de95 in KonqPixmapProvider::pixmapFor(QString const&, int) () from /usr/lib64/libkonquerorprivate.so.4
#15 0x00007f7e902d9e48 in KConfigGroup::writeEntry(QString const&, QStringList const&, QFlags<KConfigBase::WriteConfigFlag>) () from /usr/lib64/libkdeinit4_konqueror.so
#16 0x00007f7e902e39f1 in KConfigGroup::writeEntry(QString const&, QStringList const&, QFlags<KConfigBase::WriteConfigFlag>) () from /usr/lib64/libkdeinit4_konqueror.so
#17 0x00007f7e90300caf in KConfigGroup::writeEntry(QString const&, QStringList const&, QFlags<KConfigBase::WriteConfigFlag>) () from /usr/lib64/libkdeinit4_konqueror.so
#18 0x00007f7e9d45578f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/libQtCore.so.4
#19 0x00007f7e9000d340 in KonqPixmapProvider::notifyChange(bool, QString const&, QString const&) () from /usr/lib64/libkonquerorprivate.so.4
#20 0x00007f7e9000d4a8 in KonqPixmapProvider::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib64/libkonquerorprivate.so.4
#21 0x00007f7e9d45578f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/libQtCore.so.4
#22 0x00007f7e90015ee9 in ?? () from /usr/lib64/libkonquerorprivate.so.4
#23 0x00007f7e9001625a in ?? () from /usr/lib64/libkonquerorprivate.so.4
#24 0x00007f7e9000d450 in KonqPixmapProvider::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib64/libkonquerorprivate.so.4
#25 0x00007f7e9b83a22e in ?? () from /usr/lib64/libQtDBus.so.4
#26 0x00007f7e9b845e6f in ?? () from /usr/lib64/libQtDBus.so.4
#27 0x00007f7e9d4526c9 in QObject::event(QEvent*) () from /usr/lib64/libQtCore.so.4
#28 0x00007f7e9c5e2e1c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/libQtGui.so.4
#29 0x00007f7e9c5e93fb in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/libQtGui.so.4
#30 0x00007f7e9d915456 in KApplication::notify(QObject*, QEvent*) () from /usr/lib64/libkdeui.so.5
#31 0x00007f7e9d44298c in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib64/libQtCore.so.4
#32 0x00007f7e9d445107 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib64/libQtCore.so.4
#33 0x00007f7e9d46c373 in ?? () from /usr/lib64/libQtCore.so.4
#34 0x00007f7e98698dee in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#35 0x00007f7e9869c7b8 in ?? () from /usr/lib64/libglib-2.0.so.0
#36 0x00007f7e9869c8e0 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#37 0x00007f7e9d46beb3 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#38 0x00007f7e9c69151e in ?? () from /usr/lib64/libQtGui.so.4
#39 0x00007f7e9d4412a2 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#40 0x00007f7e9d44167c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#41 0x00007f7e9d4453cb in QCoreApplication::exec() () from /usr/lib64/libQtCore.so.4
#42 0x00007f7e903279eb in kdemain () from /usr/lib64/libkdeinit4_konqueror.so
#43 0x00000000004073b8 in launch (argc=4, _name=<value optimized out>, args=<value optimized out>, cwd=<value optimized out>, envc=32, envs=<value optimized out>, reset_env=true, tty=0x0, 
    avoid_loops=false, startup_id_str=0x665738 "hyperion;1268239846;36280;3243_TIME543463912") at /usr/src/debug/kdelibs-4.4.1/kinit/kinit.cpp:717
#44 0x0000000000408070 in handle_launcher_request (sock=74, who=<value optimized out>) at /usr/src/debug/kdelibs-4.4.1/kinit/kinit.cpp:1209
#45 0x00000000004084d8 in handle_requests (waitForPid=0) at /usr/src/debug/kdelibs-4.4.1/kinit/kinit.cpp:1393
#46 0x00000000004091f2 in main (argc=4, argv=<value optimized out>, envp=<value optimized out>) at /usr/src/debug/kdelibs-4.4.1/kinit/kinit.cpp:1841

Reported using DrKonqi
Comment 1 Dario Andres 2010-03-20 14:33:28 UTC
From bug 231344:
-- Information about the crash:
Konqueror crashed. At the time, I was looking at thsi website.
http://subscriber.e-mark.nl/online.php?db=185V1809698083&mailing=943V195&user=459185V183566230.
Comment 2 Dario Andres 2010-03-20 14:33:33 UTC
*** Bug 231344 has been marked as a duplicate of this bug. ***
Comment 3 Christoph Feck 2010-03-22 15:16:26 UTC
I got that crash quite frequently BEFORE the fix to bug 182026, so I suspect the patch for it also fixed this crash.
Comment 4 Maarten ter Huurne 2010-03-22 15:30:42 UTC
(In reply to comment #3)
> I got that crash quite frequently BEFORE the fix to bug 182026, so I suspect
> the patch for it also fixed this crash.

In that bug report, Michael Pyne wrote that the fix only applies to crashes that start from "KPixmapCache::discard". Since that method is not in the stack trace, I think this is a different bug.
Comment 5 Christoph Feck 2010-03-22 18:25:26 UTC
*** Bug 231486 has been marked as a duplicate of this bug. ***
Comment 6 Christoph Feck 2010-10-14 00:27:32 UTC
(I quickly reviewed the backtrace of this crash, and it appears to be caused by KIconCache memory corruption. If this is not the case, please reopen.)

Closing all KIconCache crashes as fixed, because the KIconLoader in KDE SC 4.5 now uses KSharedDataCache to cache icons, and it is believed that the new class is less prone to random crashes or memory corruption.

If you still can reproduce a crash with version 4.5, please report it separately. If you cannot upgrade to 4.5 yet, you should be able to work around this crash by deleting the icon cache files in /var/tmp/kdecache-<user>/kpc