[kdepim] [Bug 364994] New: Kmail crash when deleting message in thread view

Chao Feng via KDE Bugzilla bugzilla_noreply at kde.org
Sat Jul 2 08:28:47 BST 2016


https://bugs.kde.org/show_bug.cgi?id=364994

            Bug ID: 364994
           Summary: Kmail crash when deleting message in thread view
           Product: kdepim
           Version: GIT (master)
          Platform: Compiled Sources
                OS: Linux
            Status: UNCONFIRMED
          Severity: crash
          Priority: NOR
         Component: messagelist
          Assignee: kdepim-bugs at kde.org
          Reporter: chaofeng111 at gmail.com

In thread view, delete a message in a thread. It will crash.
In thread view, delete a single message which is not belong to any thread, it
will not crash.
Delete messages in flat(non-threading) mode, it works well.

I build and run kmail through kde-src build in Arch linux. No crash a month
ago. I suspect it is highly related to client-side threading catch. See
https://phabricator.kde.org/D1636.

It crash because when checking pParent status, pParent is not valid any and it
is not null.  
I am reading messagelib code but still not fully grasp the concurrency up till
now.

(gdb) l
453         }
454     }
455
456     qint32 Akonadi::MessageStatus::toQInt32() const
457     {
458         return mStatus;
459     }
460
461     void Akonadi::MessageStatus::fromQInt32(qint32 status)
462     {
(gdb) p mStatus
Cannot access memory at address 0x100000060




Reproducible: Always

Steps to Reproduce:
1. Set a folder in thread view
2. Open message a in thread
3. Delete the message


Actual Results:  
Thread 1 "kmail" received signal SIGSEGV, Segmentation fault.

Expected Results:  
Message delete success.

Thread 1 "kmail" received signal SIGSEGV, Segmentation fault.
Akonadi::MessageStatus::toQInt32 (this=0x100000060) at
/home/chaos/kdesrc/kde/kdepimlibs/akonadi-mime/src/messagestatus.cpp:458
458         return mStatus;
(gdb) bt
#0  Akonadi::MessageStatus::toQInt32 (this=0x100000060) at
/home/chaos/kdesrc/kde/kdepimlibs/akonadi-mime/src/messagestatus.cpp:458
#1  0x00007ffff00001b6 in
MessageList::Core::ModelPrivate::attachMessageToParent
(this=this at entry=0xb4c6f0, pParent=pParent at entry=0x1f46120, 
    mi=<optimized out>,
attachOptions=attachOptions at entry=MessageList::Core::ModelPrivate::SkipCacheUpdate)
    at
/home/chaos/kdesrc/kde/pim/messagelib/messagelist/src/core/model.cpp:2181
#2  0x00007ffff0001741 in
MessageList::Core::ModelPrivate::viewItemJobStepInternalForJobPass2
(this=this at entry=0xb4c6f0, job=job at entry=0x1d30f00, 
    elapsedTimer=...) at
/home/chaos/kdesrc/kde/pim/messagelib/messagelist/src/core/model.cpp:2635
#3  0x00007ffff00038d4 in
MessageList::Core::ModelPrivate::viewItemJobStepInternalForJob
(this=this at entry=0xb4c6f0, job=job at entry=0x1d30f00, elapsedTimer=...)
    at
/home/chaos/kdesrc/kde/pim/messagelib/messagelist/src/core/model.cpp:3471
#4  0x00007ffff0003dc3 in
MessageList::Core::ModelPrivate::viewItemJobStepInternal
(this=this at entry=0xb4c6f0)
    at
/home/chaos/kdesrc/kde/pim/messagelib/messagelist/src/core/model.cpp:3758
#5  0x00007ffff000448c in MessageList::Core::ModelPrivate::viewItemJobStep
(this=0xb4c6f0)
    at
/home/chaos/kdesrc/kde/pim/messagelib/messagelist/src/core/model.cpp:3938
#6  0x00007ffff164585e in QMetaObject::activate(QObject*, int, int, void**) ()
from /usr/lib/libQt5Core.so.5
#7  0x00007ffff1652568 in QTimer::timerEvent(QTimerEvent*) () from
/usr/lib/libQt5Core.so.5
#8  0x00007ffff1646303 in QObject::event(QEvent*) () from
/usr/lib/libQt5Core.so.5
#9  0x00007ffff22f9e3c in QApplicationPrivate::notify_helper(QObject*, QEvent*)
() from /usr/lib/libQt5Widgets.so.5
#10 0x00007ffff23015b1 in QApplication::notify(QObject*, QEvent*) () from
/usr/lib/libQt5Widgets.so.5
#11 0x00007ffff1619c80 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
() from /usr/lib/libQt5Core.so.5
#12 0x00007ffff166d51e in QTimerInfoList::activateTimers() () from
/usr/lib/libQt5Core.so.5
#13 0x00007ffff166da41 in ?? () from /usr/lib/libQt5Core.so.5
#14 0x00007fffdc9e0dd7 in g_main_context_dispatch () from
/usr/lib/libglib-2.0.so.0
#15 0x00007fffdc9e1040 in ?? () from /usr/lib/libglib-2.0.so.0
#16 0x00007fffdc9e10ec in g_main_context_iteration () from
/usr/lib/libglib-2.0.so.0
#17 0x00007ffff166e57f in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
from /usr/lib/libQt5Core.so.5
---Type <return> to continue, or q <return> to quit---

-- 
You are receiving this mail because:
You are the assignee for the bug.



More information about the Kdepim-bugs mailing list