Bug 226788

Summary: Crash in KDirWatch on exporting contact in KAddressBook (and other situations) [null KDirWatchPrivate::Entry::removeClient, KDirWatchPrivate::removeEntry, KDirWatchPrivate::slotRemoveDelayed]
Product: [Unmaintained] kdelibs Reporter: Tobias Koenig <tokoe>
Component: kdecoreAssignee: kdelibs bugs <kdelibs-bugs>
Status: RESOLVED FIXED    
Severity: crash CC: alex.merry, andresbajotierra, asokolik, azuriel, bitdealer, caidoberco, crandrad, cuciferus, dplater, einixx, faure, grabner, herr-schneider.m, jason.mours, kuningaz, reavertm, slashdevdsp, sven.burmeister, xtom.vavra
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Tobias Koenig 2010-02-14 11:59:51 UTC
Version:            (using Devel)
Compiler:          gcc 
OS:                Linux
Installed from:    Compiled sources

Steps to reproduce:
In current SVN trunk version open KAddressBook
  - select a contact
  - choose File -> Export VCard 3.0
  - choose 'Selected contacts' -> Ok
  - click Ok again
  - choose a filename that does not already exists
  - click Ok again
after exporting the contact, KAddressBook crashes with the following bt:
Application: KAddressBook (kaddressbook), signal: Segmentation fault
The current source language is "auto; currently c".
[KCrash Handler]
#5  QList<KDirWatchPrivate::Client*>::detach (this=0x0, instance=0x0) at /opt/qt-kde-trunk/include/QtCore/qlist.h:122
#6  QList<KDirWatchPrivate::Client*>::begin (this=0x0, instance=0x0) at /opt/qt-kde-trunk/include/QtCore/qlist.h:248
#7  KDirWatchPrivate::Entry::removeClient (this=0x0, instance=0x0) at /mnt/archive/src/kde-trunk/src/kdelibs/kio/kio/kdirwatch.cpp:456
#8  0x00007f086cb068c0 in KDirWatchPrivate::removeEntry (this=0x1a46480, instance=0x0, e=0x0, sub_entry=0x0) at /mnt/archive/src/kde-trunk/src/kdelibs/kio/kio/kdirwatch.cpp:890
#9  0x00007f086cb0900e in KDirWatchPrivate::slotRemoveDelayed (this=0x1a46480) at /mnt/archive/src/kde-trunk/src/kdelibs/kio/kio/kdirwatch.cpp:1313
#10 0x00007f086cb0d29c in KDirWatchPrivate::qt_metacall (this=0x1a46480, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff9e51ee00)
    at /mnt/archive/src/kde-trunk/build/kdelibs/kio/kdirwatch_p.moc:84
#11 0x00007f086a380889 in QMetaObject::metacall (object=0x1a46480, cl=QMetaObject::InvokeMetaMethod, idx=7, argv=0x7fff9e51ee00)
    at /mnt/archive/src/qt-kde-trunk/src/src/corelib/kernel/qmetaobject.cpp:237
#12 0x00007f086a396c9f in QMetaObject::activate (sender=0x18f08a0, m=0x7f086a4fb0e0, local_signal_index=0, argv=0x0) at /mnt/archive/src/qt-kde-trunk/src/src/corelib/kernel/qobject.cpp:3275
#13 0x00007f086a3a082d in QSingleShotTimer::timeout (this=0x18f08a0) at .moc/debug-shared/qtimer.moc:82
#14 0x00007f086a3a06fd in QSingleShotTimer::timerEvent (this=0x18f08a0) at /mnt/archive/src/qt-kde-trunk/src/src/corelib/kernel/qtimer.cpp:308
#15 0x00007f086a3924d1 in QObject::event (this=0x18f08a0, e=0x7fff9e51f7c0) at /mnt/archive/src/qt-kde-trunk/src/src/corelib/kernel/qobject.cpp:1212
#16 0x00007f086aa74310 in QApplicationPrivate::notify_helper (this=0x12e60b0, receiver=0x18f08a0, e=0x7fff9e51f7c0) at /mnt/archive/src/qt-kde-trunk/src/src/gui/kernel/qapplication.cpp:4298
#17 0x00007f086aa717ae in QApplication::notify (this=0x7fff9e51fbe0, receiver=0x18f08a0, e=0x7fff9e51f7c0) at /mnt/archive/src/qt-kde-trunk/src/src/gui/kernel/qapplication.cpp:3702
#18 0x00007f086c4e3c96 in KApplication::notify (this=0x7fff9e51fbe0, receiver=0x18f08a0, event=0x7fff9e51f7c0) at /mnt/archive/src/kde-trunk/src/kdelibs/kdeui/kernel/kapplication.cpp:302
#19 0x00007f086a37882c in QCoreApplication::notifyInternal (this=0x7fff9e51fbe0, receiver=0x18f08a0, event=0x7fff9e51f7c0)
    at /mnt/archive/src/qt-kde-trunk/src/src/corelib/kernel/qcoreapplication.cpp:704
#20 0x00007f086c941789 in QCoreApplication::sendEvent (receiver=0x18f08a0, event=0x7fff9e51f7c0) at ../../include/QtCore/../../../src/src/corelib/kernel/qcoreapplication.h:215
#21 0x00007f086a3b8e53 in QTimerInfoList::activateTimers (this=0x12eb0b0) at /mnt/archive/src/qt-kde-trunk/src/src/corelib/kernel/qeventdispatcher_unix.cpp:603
#22 0x00007f086a3b4203 in timerSourceDispatch (source=0x12eb050) at /mnt/archive/src/qt-kde-trunk/src/src/corelib/kernel/qeventdispatcher_glib.cpp:184
#23 0x00007f086a3b42ea in idleTimerSourceDispatch (source=0x12eb110) at /mnt/archive/src/qt-kde-trunk/src/src/corelib/kernel/qeventdispatcher_glib.cpp:231
#24 0x00007f0865e708fe in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#25 0x00007f0865e742b8 in ?? () from /lib/libglib-2.0.so.0
#26 0x00007f0865e743e0 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#27 0x00007f086a3b569b in QEventDispatcherGlib::processEvents (this=0x12bbe50, flags=...) at /mnt/archive/src/qt-kde-trunk/src/src/corelib/kernel/qeventdispatcher_glib.cpp:412
#28 0x00007f086ab5aee4 in QGuiEventDispatcherGlib::processEvents (this=0x12bbe50, flags=...) at /mnt/archive/src/qt-kde-trunk/src/src/gui/kernel/qguieventdispatcher_glib.cpp:204
#29 0x00007f086a375824 in QEventLoop::processEvents (this=0x7fff9e51fb80, flags=...) at /mnt/archive/src/qt-kde-trunk/src/src/corelib/kernel/qeventloop.cpp:149
#30 0x00007f086a37597a in QEventLoop::exec (this=0x7fff9e51fb80, flags=...) at /mnt/archive/src/qt-kde-trunk/src/src/corelib/kernel/qeventloop.cpp:201
#31 0x00007f086a378f2e in QCoreApplication::exec () at /mnt/archive/src/qt-kde-trunk/src/src/corelib/kernel/qcoreapplication.cpp:981
#32 0x00007f086aa71320 in QApplication::exec () at /mnt/archive/src/qt-kde-trunk/src/src/gui/kernel/qapplication.cpp:3577
#33 0x0000000000404b4d in main (argc=<value optimized out>, argv=<value optimized out>) at /mnt/archive/src/kde-trunk/src/kdepim/kaddressbook/main.cpp:51

The crash doesn't happen if you choose a filename that already exists, in this case a 'Are your sure to overwrite' dialog is presented and KAddressBook doesn't crash.

My guess is that the KIO::NetAccess::upload() in VCardXXPort::doExport() might have some influence, however it worked before, so it must be a change somewhere down in KIO or KDirWatch
Comment 1 Maciej Mrozowski 2010-02-15 03:42:25 UTC
I confirm the exact same bug that crashed Dolphin for me.

Happened after I navigated to some directory and created new folder using dolphin in there.
My kdelibs is built with inotify support and I guess it's what triggered this crash within kdelibs code just after new directory (successfully created) appeared.

This is KDE 4.4 (4.4 branch), Qt4 4.6.1

Application: Dolphin (dolphin), signal: Segmentation fault
[Current thread is 1 (Thread 0x7f1d5cf98740 (LWP 12100))]

Thread 2 (Thread 0x7f1d4e4a7910 (LWP 12104)):
#0  0x00007f1d58e507b2 in select () from /lib64/libc.so.6
#1  0x00007f1d5a05e327 in ?? () from /usr/lib64/qt4/libQtCore.so.4
#2  0x00007f1d59f9e491 in ?? () from /usr/lib64/qt4/libQtCore.so.4
#3  0x00007f1d56a3e8dc in start_thread () from /lib64/libpthread.so.0
#4  0x00007f1d58e5819d in clone () from /lib64/libc.so.6
#5  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f1d5cf98740 (LWP 12100)):
[KCrash Handler]
#5  QList<KDirWatchPrivate::Client*>::detach (this=0x0, instance=0x0) at /usr/include/qt4/QtCore/qlist.h:122
#6  QList<KDirWatchPrivate::Client*>::begin (this=0x0, instance=0x0) at /usr/include/qt4/QtCore/qlist.h:248
#7  KDirWatchPrivate::Entry::removeClient (this=0x0, instance=0x0) at /var/tmp/portage/kde-base/kdelibs-4.4.9999/work/kdelibs-4.4.9999/kio/kio/kdirwatch.cpp:456
#8  0x00007f1d5b1bb02e in KDirWatchPrivate::removeEntry (this=0x10b71b0, instance=0x0, e=0x0, sub_entry=0x0)
    at /var/tmp/portage/kde-base/kdelibs-4.4.9999/work/kdelibs-4.4.9999/kio/kio/kdirwatch.cpp:890
#9  0x00007f1d5b1bb2a0 in KDirWatchPrivate::slotRemoveDelayed (this=0x10b71b0) at /var/tmp/portage/kde-base/kdelibs-4.4.9999/work/kdelibs-4.4.9999/kio/kio/kdirwatch.cpp:1313
#10 0x00007f1d5b1c0f7a in KDirWatchPrivate::qt_metacall (this=0x10b71b0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffe5f50560)
    at /var/tmp/portage/kde-base/kdelibs-4.4.9999/work/kdelibs-4.4.9999_build/kio/kdirwatch_p.moc:84
#11 0x00007f1d5a08fe3c in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/qt4/libQtCore.so.4
#12 0x00007f1d5a09664d in ?? () from /usr/lib64/qt4/libQtCore.so.4
#13 0x00007f1d5a08cbec in QObject::event(QEvent*) () from /usr/lib64/qt4/libQtCore.so.4
#14 0x00007f1d595aa95f in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#15 0x00007f1d595b29ec in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#16 0x00007f1d5ac95994 in KApplication::notify (this=0x7fffe5f51110, receiver=0x26ed8f0, event=0x7fffe5f50dd0)
    at /var/tmp/portage/kde-base/kdelibs-4.4.9999/work/kdelibs-4.4.9999/kdeui/kernel/kapplication.cpp:302
#17 0x00007f1d5a07e744 in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib64/qt4/libQtCore.so.4
#18 0x00007f1d5a0a78be in ?? () from /usr/lib64/qt4/libQtCore.so.4
#19 0x00007f1d5a0a4421 in ?? () from /usr/lib64/qt4/libQtCore.so.4
#20 0x00007f1d5529ca13 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#21 0x00007f1d5529f96c in ?? () from /usr/lib/libglib-2.0.so.0
#22 0x00007f1d5529faee in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#23 0x00007f1d5a0a4174 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#24 0x00007f1d59639a26 in ?? () from /usr/lib64/qt4/libQtGui.so.4
#25 0x00007f1d5a07d404 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#26 0x00007f1d5a07d74f in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#27 0x00007f1d5a07f72e in QCoreApplication::exec() () from /usr/lib64/qt4/libQtCore.so.4
#28 0x0000000000439b05 in _start ()
Comment 2 Tobias Koenig 2010-02-15 09:12:09 UTC
Hej again,

I came accross this crash on other locations as well.
Mostly when closing a KFileDialog somewhere.

Ciao,
Tobias
Comment 3 Dario Andres 2010-02-15 15:10:16 UTC
From bug 226608:
-- Information about the crash:
I added an iCal file based resource using the Akondai KCM (and gave it a
filename that did not exist in a folder that did exist) and got the following
crash report.

The other resources I have are Local Folders (offline) and Personal Contacts
(has a green dot, but no status message, and I've just imported a bunch of
contacts from a VCF file successfully).  The KCM also has a green dot (and no
status message) for the iCal resource.  The iCal file seems to have been
created successfully.

From bug 227004:
-- Information about the crash:
The attachment is a .txt file. I click on it, select the place where to save it
and click the save button and then Kontact crashes. The attachment is correctly
saved to disk though.

The crash can be reproduced every time.
Comment 4 Dario Andres 2010-02-15 15:10:18 UTC
*** Bug 226608 has been marked as a duplicate of this bug. ***
Comment 5 Dario Andres 2010-02-15 15:10:23 UTC
*** Bug 227004 has been marked as a duplicate of this bug. ***
Comment 6 Dario Andres 2010-02-15 15:56:49 UTC
From bug 226643:
-- Information about the crash:
Dolphin crashed with embedded konsole running sudo mplayer file

From bug 226679:
-- Information about the crash:
(on Dolphin) Simply clicked to change directory and this crash appeared.
Comment 7 Dario Andres 2010-02-15 15:56:53 UTC
*** Bug 226643 has been marked as a duplicate of this bug. ***
Comment 8 Dario Andres 2010-02-15 15:56:56 UTC
*** Bug 226679 has been marked as a duplicate of this bug. ***
Comment 9 Dario Andres 2010-02-15 20:03:49 UTC
From bug 227056:
-- Information about the crash:
Double-clicked an .xls file on a mounted drive and Dolphin crashed. Calc opened
fine
Comment 10 Dario Andres 2010-02-15 20:03:53 UTC
*** Bug 227056 has been marked as a duplicate of this bug. ***
Comment 11 David Faure 2010-02-15 23:49:13 UTC
Was my bad commit r1088544. Fixed in r1090728
Comment 12 David Faure 2010-02-15 23:51:00 UTC
*** Bug 226911 has been marked as a duplicate of this bug. ***
Comment 13 Dario Andres 2010-02-16 15:44:19 UTC
*** Bug 227190 has been marked as a duplicate of this bug. ***
Comment 14 Dario Andres 2010-02-16 21:58:35 UTC
*** Bug 227250 has been marked as a duplicate of this bug. ***
Comment 15 Dario Andres 2010-02-16 22:39:30 UTC
*** Bug 227249 has been marked as a duplicate of this bug. ***
Comment 16 Dario Andres 2010-02-17 13:08:49 UTC
*** Bug 227292 has been marked as a duplicate of this bug. ***
Comment 17 Dario Andres 2010-02-17 16:00:28 UTC
*** Bug 227371 has been marked as a duplicate of this bug. ***
Comment 18 Christoph Feck 2010-02-18 01:25:49 UTC
*** Bug 227455 has been marked as a duplicate of this bug. ***
Comment 19 Frank Reininghaus 2010-02-18 11:30:22 UTC
*** Bug 227477 has been marked as a duplicate of this bug. ***
Comment 20 Frank Reininghaus 2010-02-18 11:31:22 UTC
*** Bug 227458 has been marked as a duplicate of this bug. ***
Comment 21 Frank Reininghaus 2010-02-18 16:38:25 UTC
*** Bug 227518 has been marked as a duplicate of this bug. ***
Comment 22 Frank Reininghaus 2010-02-18 16:38:51 UTC
*** Bug 227489 has been marked as a duplicate of this bug. ***
Comment 23 Michał Małek 2010-02-19 21:45:11 UTC
*** Bug 227583 has been marked as a duplicate of this bug. ***
Comment 24 Dario Andres 2010-02-19 22:42:22 UTC
*** Bug 227611 has been marked as a duplicate of this bug. ***
Comment 25 David Faure 2010-02-26 17:16:28 UTC
*** Bug 228638 has been marked as a duplicate of this bug. ***