Bug 279098 - Korganizer makes plasma crash when deleting a suspended reminder
Summary: Korganizer makes plasma crash when deleting a suspended reminder
Status: RESOLVED FIXED
Alias: None
Product: korganizer
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Arch Linux Linux
: NOR crash
Target Milestone: ---
Assignee: kdepim bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-08-01 21:51 UTC by Albert Astals Cid
Modified: 2012-01-28 00:21 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Albert Astals Cid 2011-08-01 21:51:34 UTC
Version:           unspecified (using KDE 4.7.0) 
OS:                Linux

Korganizer makes plasma crash when deleting a suspended reminder

Reproducible: Always

Steps to Reproduce:
* Create an event that starts in 17 minutes
* Add a reminder to bug you 15 min before the event
* Wait until the reminder dialog pops up
* When the dialog shows up suspend the reminder for 5 min
* Click on the event and press the delete key and confirm you want to delete the event
* See how plasma crashes


Expected Results:  
* Plasma does not crash

OS: Linux (x86_64) release 2.6.39-ARCH
Compiler: gcc
Comment 1 Sergio Martins 2011-08-01 22:45:20 UTC
I can't reproduce this. Tested archlinux packages and master.

Can you try to reproduce without the korgac step ? I don't think plasma knows about the reminder daemon, so suspending shouldn't influence plasma.
Comment 2 Albert Astals Cid 2011-08-01 23:02:03 UTC
Hmmm, i can also make it crash by adding and deleting events continously, attaching gdb doesn't give anything helpful
#0  0x00007f7d1703b795 in raise () from /lib/libc.so.6
#1  0x00007f7d1703cc0b in abort () from /lib/libc.so.6
#2  0x00007f7d17426e6d in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/libstdc++.so.6
#3  0x00007f7d17425016 in ?? () from /usr/lib/libstdc++.so.6
#4  0x00007f7d17425043 in std::terminate() () from /usr/lib/libstdc++.so.6
#5  0x00007f7d17425186 in __cxa_rethrow () from /usr/lib/libstdc++.so.6
#6  0x00007f7d186680ee in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#7  0x00007f7d1866c1ab in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#8  0x00007f7d08735f83 in kdemain () from /usr/lib/libkdeinit4_plasma-desktop.so
#9  0x0000000000408102 in _start ()
Comment 3 Albert Astals Cid 2011-08-01 23:07:42 UTC
Starting plasma-desktop from the shell says

Qt has caught an exception thrown from an event handler. Throwing
exceptions from an event handler is not supported in Qt. You must
reimplement QApplication::notify() and catch all exceptions there.

terminate called after throwing an instance of 'Akonadi::PayloadException'
  what():  Akonadi::PayloadException: No payload set
Comment 4 Sergio Martins 2011-08-01 23:51:42 UTC
Try starting plasma-desktop through gdb, and setting a breakpoint in __cxa_throw before making it crash.
Comment 5 Albert Astals Cid 2011-08-02 11:21:23 UTC
#0  0x00007f84962020e0 in __cxa_throw () from /usr/lib/libstdc++.so.6
#1  0x00007f8478e278ba in Akonadi::Item::throwPayloadException(int, int) const () from /usr/lib/libakonadi-kde.so.4
#2  0x00007f84796c74cf in QSharedPointer<KCalCore::Incidence> Akonadi::Item::payload<QSharedPointer<KCalCore::Incidence> >() const () from /usr/lib/kde4/plasma_engine_calendar.so
#3  0x00007f84796c0848 in ?? () from /usr/lib/kde4/plasma_engine_calendar.so
#4  0x00007f84796c1b3d in ?? () from /usr/lib/kde4/plasma_engine_calendar.so
#5  0x00007f84796a6464 in ?? () from /usr/lib/kde4/plasma_engine_calendar.so
#6  0x00007f84974587fa in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#7  0x00007f84974a11e4 in QAbstractItemModel::rowsAboutToBeRemoved(QModelIndex const&, int, int) () from /usr/lib/libQtCore.so.4
#8  0x00007f84974400d8 in QAbstractItemModel::beginRemoveRows(QModelIndex const&, int, int) () from /usr/lib/libQtCore.so.4
#9  0x00007f8478e0e13c in ?? () from /usr/lib/libakonadi-kde.so.4
#10 0x00007f8478dff527 in Akonadi::EntityTreeModel::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libakonadi-kde.so.4
#11 0x00007f84974587fa in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#12 0x00007f8478e48935 in Akonadi::Monitor::itemRemoved(Akonadi::Item const&) () from /usr/lib/libakonadi-kde.so.4
#13 0x00007f8478e4d26c in ?? () from /usr/lib/libakonadi-kde.so.4
#14 0x00007f8478e4e2a2 in ?? () from /usr/lib/libakonadi-kde.so.4
#15 0x00007f8478db30d1 in ?? () from /usr/lib/libakonadi-kde.so.4
#16 0x00007f8478e4dfe5 in ?? () from /usr/lib/libakonadi-kde.so.4
#17 0x00007f8478e4ef84 in ?? () from /usr/lib/libakonadi-kde.so.4
#18 0x00007f8478db3397 in ?? () from /usr/lib/libakonadi-kde.so.4
#19 0x00007f8478e48f95 in Akonadi::Monitor::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libakonadi-kde.so.4
#20 0x00007f8478db1628 in Akonadi::ChangeRecorder::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libakonadi-kde.so.4
#21 0x00007f84974587fa in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#22 0x00007f8478ec4502 in ?? () from /usr/lib/libakonadi-kde.so.4
#23 0x00007f8478ec4551 in ?? () from /usr/lib/libakonadi-kde.so.4
#24 0x00007f84942bc7c2 in ?? () from /usr/lib/libQtDBus.so.4
#25 0x00007f84942c60bf in ?? () from /usr/lib/libQtDBus.so.4
#26 0x00007f849745c39e in QObject::event(QEvent*) () from /usr/lib/libQtCore.so.4
#27 0x00007f8496606174 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#28 0x00007f849660afe1 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#29 0x00007f84981e3226 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#30 0x00007f8497445bbc in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#31 0x00007f8497448f2f in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQtCore.so.4
#32 0x00007f8497470413 in ?? () from /usr/lib/libQtCore.so.4
#33 0x00007f8492efd29d in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#34 0x00007f8492efda78 in ?? () from /usr/lib/libglib-2.0.so.0
#35 0x00007f8492efdd09 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#36 0x00007f8497470876 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#37 0x00007f84966a91be in ?? () from /usr/lib/libQtGui.so.4
#38 0x00007f8497444db2 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#39 0x00007f8497444fb7 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#40 0x00007f84974491ab in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#41 0x00007f8487512f83 in kdemain () from /usr/lib/libkdeinit4_plasma-desktop.so
#42 0x0000000000408102 in _start ()

So probably needs to be reassinged?
Comment 6 Albert Astals Cid 2011-08-02 14:11:59 UTC
When using the debug build of the plasma dataengine it asserts instead of throwing the exception

ASSERT: "oldItem.hasPayload<KCalCore::Incidence::Ptr>()" in file /home/kdestable/kde-workspace/plasma/generic/dataengines/calendar/akonadi/calendar.cpp, line 591

Program received signal SIGABRT, Aborted.
0x00007ffff7619795 in raise () from /lib/libc.so.6
(gdb) bt
#0  0x00007ffff7619795 in raise () from /lib/libc.so.6
#1  0x00007ffff761ac0b in abort () from /lib/libc.so.6
#2  0x00007ffff4497a2f in qt_message_output(QtMsgType, char const*) () from /usr/lib/libQtCore.so.4
#3  0x00007ffff4497baf in ?? () from /usr/lib/libQtCore.so.4
#4  0x00007ffff4497d54 in qFatal(char const*, ...) () from /usr/lib/libQtCore.so.4
#5  0x00007fffd80979aa in CalendarSupport::Calendar::Private::itemsRemoved (this=0xf78970, items=...) at /home/kdestable/kde-workspace/plasma/generic/dataengines/calendar/akonadi/calendar.cpp:591
#6  0x00007fffd8093c48 in CalendarSupport::Calendar::Private::rowsAboutToBeRemoved (this=0xf78970, parent=..., start=0, end=0) at /home/kdestable/kde-workspace/plasma/generic/dataengines/calendar/akonadi/calendar.cpp:128
#7  0x00007fffd808527a in CalendarSupport::Calendar::Private::qt_metacall (this=0xf78970, _c=QMetaObject::InvokeMetaMethod, _id=5, _a=0x7fffffffca80) at /home/kdestable/build/kde-workspace/plasma/generic/dataengines/calendar/moc_calendar_p.cpp:152
#8  0x00007ffff459a7fa in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#9  0x00007ffff45e31e4 in QAbstractItemModel::rowsAboutToBeRemoved(QModelIndex const&, int, int) () from /usr/lib/libQtCore.so.4
#10 0x00007ffff45820d8 in QAbstractItemModel::beginRemoveRows(QModelIndex const&, int, int) () from /usr/lib/libQtCore.so.4
#11 0x00007fffd7510a6f in Akonadi::EntityTreeModelPrivate::monitoredItemRemoved (this=0xf9da70, item=...) at /home/kdestable/kdepimlibs/akonadi/entitytreemodel_p.cpp:1020
#12 0x00007fffd7508267 in Akonadi::EntityTreeModel::qt_metacall (this=0xfb3360, _c=QMetaObject::InvokeMetaMethod, _id=26, _a=0x7fffffffcd50) at /home/kdestable/build/kdepimlibs/akonadi/entitytreemodel.moc:168
#13 0x00007fffd8085476 in CalendarSupport::CalendarModel::qt_metacall (this=0xfb3360, _c=QMetaObject::InvokeMetaMethod, _id=50, _a=0x7fffffffcd50) at /home/kdestable/build/kde-workspace/plasma/generic/dataengines/calendar/moc_calendarmodel.cpp:66
#14 0x00007ffff459a7fa in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#15 0x00007fffd75515e5 in Akonadi::Monitor::itemRemoved (this=0xa8dbb0, _t1=...) at /home/kdestable/build/kdepimlibs/akonadi/monitor.moc:190
#16 0x00007fffd755521d in Akonadi::MonitorPrivate::emitItemNotification (this=0xfd8020, msg=..., item=..., collection=..., collectionDest=...) at /home/kdestable/kdepimlibs/akonadi/monitor_p.cpp:525
#17 0x00007fffd7553a9b in Akonadi::MonitorPrivate::emitNotification (this=0xfd8020, msg=...) at /home/kdestable/kdepimlibs/akonadi/monitor_p.cpp:284
#18 0x00007fffd74bd2fe in Akonadi::ChangeRecorderPrivate::emitNotification (this=0xfd8020, msg=...) at /home/kdestable/kdepimlibs/akonadi/changerecorder_p.h:60
#19 0x00007fffd755472c in Akonadi::MonitorPrivate::dispatchNotifications (this=0xfd8020) at /home/kdestable/kdepimlibs/akonadi/monitor_p.cpp:443
#20 0x00007fffd7554575 in Akonadi::MonitorPrivate::slotNotify (this=0xfd8020, msgs=...) at /home/kdestable/kdepimlibs/akonadi/monitor_p.cpp:414
#21 0x00007fffd74bd27e in Akonadi::ChangeRecorderPrivate::slotNotify (this=0xfd8020, msgs=...) at /home/kdestable/kdepimlibs/akonadi/changerecorder_p.h:51
#22 0x00007fffd7551432 in Akonadi::Monitor::qt_metacall (this=0xa8dbb0, _c=QMetaObject::InvokeMetaMethod, _id=22, _a=0x7fffffffd390) at /home/kdestable/build/kdepimlibs/akonadi/monitor.moc:155
#23 0x00007fffd74bcb5e in Akonadi::ChangeRecorder::qt_metacall (this=0xa8dbb0, _c=QMetaObject::InvokeMetaMethod, _id=26, _a=0x7fffffffd390) at /home/kdestable/build/kdepimlibs/akonadi/changerecorder.moc:72
#24 0x00007ffff459a7fa in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#25 0x00007fffd75c7bf5 in OrgFreedesktopAkonadiNotificationSourceInterface::notify (this=0xc342c0, _t1=...) at /home/kdestable/build/kdepimlibs/akonadi/notificationsourceinterface.moc:91
#26 0x00007fffd75c7b41 in OrgFreedesktopAkonadiNotificationSourceInterface::qt_metacall (this=0xc342c0, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x7fffffffd440) at /home/kdestable/build/kdepimlibs/akonadi/notificationsourceinterface.moc:77
#27 0x00007ffff48d77c2 in ?? () from /usr/lib/libQtDBus.so.4
#28 0x00007ffff48e10bf in ?? () from /usr/lib/libQtDBus.so.4
#29 0x00007ffff459e39e in QObject::event(QEvent*) () from /usr/lib/libQtCore.so.4
#30 0x00007ffff3748174 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#31 0x00007ffff374cfe1 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#32 0x00007ffff530b81b in KApplication::notify (this=0x6ba6b0, receiver=0xc342c0, event=0x12a8860) at /home/kdestable/kdelibs/kdeui/kernel/kapplication.cpp:311
#33 0x00007ffff4587bbc in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#34 0x00007ffff458af2f in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQtCore.so.4
#35 0x00007ffff45b2413 in ?? () from /usr/lib/libQtCore.so.4
#36 0x00007fffea85429d in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#37 0x00007fffea854a78 in ?? () from /usr/lib/libglib-2.0.so.0
#38 0x00007fffea854d09 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#39 0x00007ffff45b2876 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#40 0x00007ffff37eb1be in ?? () from /usr/lib/libQtGui.so.4
#41 0x00007ffff4586db2 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#42 0x00007ffff4586fb7 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#43 0x00007ffff458b1ab in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#44 0x00007ffff7b98f83 in kdemain () from /usr/lib/libkdeinit4_plasma-desktop.so
#45 0x00007ffff760617d in __libc_start_main () from /lib/libc.so.6
#46 0x0000000000400611 in _start ()
Comment 7 Allen Winter 2012-01-13 23:27:48 UTC
Albert,  is this still happening?
Comment 8 Albert Astals Cid 2012-01-15 14:53:17 UTC
Sadly i had to stop using korganizer as it did not work at all for me, but anyway now  when adding and deleting events continously i get to a situation plasma says "Could not load personal calendar" instead of crashing.
Comment 9 Allen Winter 2012-01-28 00:21:32 UTC
so I will close this then since the original bug is not happening.