Version: 4.2.1 (using 4.2.00 (KDE 4.2.0) "release 90.1", KDE:KDE4:Factory:Desktop / openSUSE_11.1) Compiler: gcc OS: Linux (i686) release 2.6.27.7-9-default After adding a To-do entry and switched from To-do to the Summary and back Kontact crashed. My computer was under quite heavy CPU load (90-100%) during that, caused by some other processes. Backtrace: Application: Kontact (kontact), signal SIGSEGV [?1034h[Thread debugging using libthread_db enabled] [Current thread is 1 (Thread 0xb49ae700 (LWP 29646))] Thread 1 (Thread 0xb49ae700 (LWP 29646)): [KCrash Handler] #6 0xb734199a in KCal::Incidence::summaryIsRich (this=0xbfb48348) at /usr/src/debug/kdepimlibs-4.2.0/kcal/incidence.cpp:421 #7 0xb627abde in QSortFilterProxyModel::data (this=0x8a4ff58, index=@0xbfb481fc, role=34) at itemviews/qsortfilterproxymodel.cpp:1505 #8 0xb087c923 in KOTodoRichTextDelegate::paint (this=0x9446ee8, painter=0xbfb487d8, option=@0xbfb48464, index=@0xbfb48570) at /usr/include/QtCore/qabstractitemmodel.h:367 #9 0xb6230a5b in QTreeView::drawRow (this=0x8747e80, painter=0xbfb487d8, option=@0xbfb48684, index=@0x9ee99b0) at itemviews/qtreeview.cpp:1594 #10 0xb62379e7 in QTreeView::drawTree (this=0x8747e80, painter=0xbfb487d8, region=@0xbfb48ff8) at itemviews/qtreeview.cpp:1357 #11 0xb6237dcb in QTreeView::paintEvent (this=0x8747e80, event=0xbfb48fdc) at itemviews/qtreeview.cpp:1267 #12 0xb5d8785b in QWidget::event (this=0x8747e80, event=0xbfb48fdc) at kernel/qwidget.cpp:7301 #13 0xb60bdb03 in QFrame::event (this=0x8747e80, e=0xbfb48fdc) at widgets/qframe.cpp:651 #14 0xb615423f in QAbstractScrollArea::viewportEvent (this=0x8747e80, e=0x0) at widgets/qabstractscrollarea.cpp:943 #15 0xb61fefbf in QAbstractItemView::viewportEvent (this=0x8747e80, event=0xbfb48fdc) at itemviews/qabstractitemview.cpp:1429 #16 0xb6236b14 in QTreeView::viewportEvent (this=0x8747e80, event=0xbfb48fdc) at itemviews/qtreeview.cpp:1252 #17 0xb61567e5 in QAbstractScrollAreaFilter::eventFilter (this=0x8b343a0, o=0x87e9d68, e=0xbfb48fdc) at widgets/qabstractscrollarea_p.h:96 #18 0xb6799b3a in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=0x8077c98, receiver=0x87e9d68, event=0xbfb48fdc) at kernel/qcoreapplication.cpp:694 #19 0xb5d2f8da in QApplicationPrivate::notify_helper (this=0x8077c98, receiver=0x87e9d68, e=0xbfb48fdc) at kernel/qapplication.cpp:3799 #20 0xb5d3782a in QApplication::notify (this=0xbfb4b6f8, receiver=0x87e9d68, e=0xbfb48fdc) at kernel/qapplication.cpp:3768 #21 0xb6d3a93d in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5 #22 0xb679a961 in QCoreApplication::notifyInternal (this=0xbfb4b6f8, receiver=0x87e9d68, event=0xbfb48fdc) at kernel/qcoreapplication.cpp:587 #23 0xb5d904ce in qt_sendSpontaneousEvent (receiver=0x87e9d68, event=0x0) at ../../src/corelib/kernel/qcoreapplication.h:212 #24 0xb5d86220 in QWidgetPrivate::drawWidget (this=0x9e4b508, pdev=0x80e316c, rgn=@0xbfb4917c, offset=@0xbfb49174, flags=<value optimized out>, sharedPainter=0x8ab3bf8) at kernel/qwidget.cpp:4636 #25 0xb5d869cd in QWidgetPrivate::paintSiblingsRecursive (this=0x89b5e50, pdev=0x80e316c, siblings=@0xbfb49430, index=2, rgn=@0xbfb4922c, offset=@0xbfb494f4, flags=4, sharedPainter=0x8ab3bf8) at kernel/qwidget.cpp:4735 #26 0xb5d868d9 in QWidgetPrivate::paintSiblingsRecursive (this=0x89b5e50, pdev=0x80e316c, siblings=@0xbfb49430, index=3, rgn=@0xbfb492dc, offset=@0xbfb494f4, flags=4, sharedPainter=0x8ab3bf8) at kernel/qwidget.cpp:4725 #27 0xb5d868d9 in QWidgetPrivate::paintSiblingsRecursive (this=0x89b5e50, pdev=0x80e316c, siblings=@0xbfb49430, index=10, rgn=@0xbfb494fc, offset=@0xbfb494f4, flags=4, sharedPainter=0x8ab3bf8) at kernel/qwidget.cpp:4725 #28 0xb5d85e98 in QWidgetPrivate::drawWidget (this=0x89b5e50, pdev=0x80e316c, rgn=@0xbfb494fc, offset=@0xbfb494f4, flags=4, sharedPainter=0x8ab3bf8) at kernel/qwidget.cpp:4677 #29 0xb5d869cd in QWidgetPrivate::paintSiblingsRecursive (this=0x8939de8, pdev=0x80e316c, siblings=@0xbfb497b0, index=3, rgn=@0xbfb495ac, offset=@0xbfb49874, flags=4, sharedPainter=0x8ab3bf8) at kernel/qwidget.cpp:4735 #30 0xb5d868d9 in QWidgetPrivate::paintSiblingsRecursive (this=0x8939de8, pdev=0x80e316c, siblings=@0xbfb497b0, index=4, rgn=@0xbfb4965c, offset=@0xbfb49874, flags=4, sharedPainter=0x8ab3bf8) at kernel/qwidget.cpp:4725 #31 0xb5d868d9 in QWidgetPrivate::paintSiblingsRecursive (this=0x8939de8, pdev=0x80e316c, siblings=@0xbfb497b0, index=5, rgn=@0xbfb4987c, offset=@0xbfb49874, flags=4, sharedPainter=0x8ab3bf8) at kernel/qwidget.cpp:4725 #32 0xb5d85e98 in QWidgetPrivate::drawWidget (this=0x8939de8, pdev=0x80e316c, rgn=@0xbfb4987c, offset=@0xbfb49874, flags=4, sharedPainter=0x8ab3bf8) at kernel/qwidget.cpp:4677 #33 0xb5d869cd in QWidgetPrivate::paintSiblingsRecursive (this=0x8e826d0, pdev=0x80e316c, siblings=@0xbfb499d0, index=3, rgn=@0xbfb49a9c, offset=@0xbfb49a94, flags=4, sharedPainter=0x8ab3bf8) at kernel/qwidget.cpp:4735 #34 0xb5d85e98 in QWidgetPrivate::drawWidget (this=0x8e826d0, pdev=0x80e316c, rgn=@0xbfb49a9c, offset=@0xbfb49a94, flags=4, sharedPainter=0x8ab3bf8) at kernel/qwidget.cpp:4677 #35 0xb5d869cd in QWidgetPrivate::paintSiblingsRecursive (this=0x8e3fe38, pdev=0x80e316c, siblings=@0xbfb49bf0, index=2, rgn=@0xbfb49cbc, offset=@0xbfb49cb4, flags=4, sharedPainter=0x8ab3bf8) at kernel/qwidget.cpp:4735 #36 0xb5d85e98 in QWidgetPrivate::drawWidget (this=0x8e3fe38, pdev=0x80e316c, rgn=@0xbfb49cbc, offset=@0xbfb49cb4, flags=4, sharedPainter=0x8ab3bf8) at kernel/qwidget.cpp:4677 #37 0xb5d869cd in QWidgetPrivate::paintSiblingsRecursive (this=0x884e048, pdev=0x80e316c, siblings=@0xbfb49e10, index=3, rgn=@0xbfb49edc, offset=@0xbfb49ed4, flags=4, sharedPainter=0x8ab3bf8) at kernel/qwidget.cpp:4735 #38 0xb5d85e98 in QWidgetPrivate::drawWidget (this=0x884e048, pdev=0x80e316c, rgn=@0xbfb49edc, offset=@0xbfb49ed4, flags=4, sharedPainter=0x8ab3bf8) at kernel/qwidget.cpp:4677 #39 0xb5d869cd in QWidgetPrivate::paintSiblingsRecursive (this=0x884fcd0, pdev=0x80e316c, siblings=@0xbfb4a030, index=5, rgn=@0xbfb4a0fc, offset=@0xbfb4a0f4, flags=4, sharedPainter=0x8ab3bf8) at kernel/qwidget.cpp:4735 #40 0xb5d85e98 in QWidgetPrivate::drawWidget (this=0x884fcd0, pdev=0x80e316c, rgn=@0xbfb4a0fc, offset=@0xbfb4a0f4, flags=4, sharedPainter=0x8ab3bf8) at kernel/qwidget.cpp:4677 #41 0xb5d869cd in QWidgetPrivate::paintSiblingsRecursive (this=0x884fb00, pdev=0x80e316c, siblings=@0xbfb4a250, index=1, rgn=@0xbfb4a31c, offset=@0xbfb4a314, flags=4, sharedPainter=0x8ab3bf8) at kernel/qwidget.cpp:4735 #42 0xb5d85e98 in QWidgetPrivate::drawWidget (this=0x884fb00, pdev=0x80e316c, rgn=@0xbfb4a31c, offset=@0xbfb4a314, flags=4, sharedPainter=0x8ab3bf8) at kernel/qwidget.cpp:4677 #43 0xb5d869cd in QWidgetPrivate::paintSiblingsRecursive (this=0x806e138, pdev=0x80e316c, siblings=@0xbfb4a470, index=7, rgn=@0xbfb4a53c, offset=@0xbfb4a534, flags=4, sharedPainter=0x8ab3bf8) at kernel/qwidget.cpp:4735 #44 0xb5d85e98 in QWidgetPrivate::drawWidget (this=0x806e138, pdev=0x80e316c, rgn=@0xbfb4a53c, offset=@0xbfb4a534, flags=4, sharedPainter=0x8ab3bf8) at kernel/qwidget.cpp:4677 #45 0xb5d869cd in QWidgetPrivate::paintSiblingsRecursive (this=0x8139228, pdev=0x80e316c, siblings=@0xbfb4a740, index=2, rgn=@0xbfb4a5ec, offset=@0xbfb4a804, flags=4, sharedPainter=0x8ab3bf8) at kernel/qwidget.cpp:4735 #46 0xb5d868d9 in QWidgetPrivate::paintSiblingsRecursive (this=0x8139228, pdev=0x80e316c, siblings=@0xbfb4a740, index=3, rgn=@0xbfb4a80c, offset=@0xbfb4a804, flags=4, sharedPainter=0x8ab3bf8) at kernel/qwidget.cpp:4725 #47 0xb5d85e98 in QWidgetPrivate::drawWidget (this=0x8139228, pdev=0x80e316c, rgn=@0xbfb4a80c, offset=@0xbfb4a804, flags=4, sharedPainter=0x8ab3bf8) at kernel/qwidget.cpp:4677 #48 0xb5d869cd in QWidgetPrivate::paintSiblingsRecursive (this=0x8138fa0, pdev=0x80e316c, siblings=@0xbfb4a960, index=1, rgn=@0xbfb4aa2c, offset=@0xbfb4aa24, flags=4, sharedPainter=0x8ab3bf8) at kernel/qwidget.cpp:4735 #49 0xb5d85e98 in QWidgetPrivate::drawWidget (this=0x8138fa0, pdev=0x80e316c, rgn=@0xbfb4aa2c, offset=@0xbfb4aa24, flags=4, sharedPainter=0x8ab3bf8) at kernel/qwidget.cpp:4677 #50 0xb5d869cd in QWidgetPrivate::paintSiblingsRecursive (this=0x8145780, pdev=0x80e316c, siblings=@0xbfb4ad90, index=15, rgn=@0xbfb4aadc, offset=@0x80b392c, flags=4, sharedPainter=0x8ab3bf8) at kernel/qwidget.cpp:4735 #51 0xb5d868d9 in QWidgetPrivate::paintSiblingsRecursive (this=0x8145780, pdev=0x80e316c, siblings=@0xbfb4ad90, index=16, rgn=@0xbfb4ab8c, offset=@0x80b392c, flags=4, sharedPainter=0x8ab3bf8) at kernel/qwidget.cpp:4725 #52 0xb5d868d9 in QWidgetPrivate::paintSiblingsRecursive (this=0x8145780, pdev=0x80e316c, siblings=@0xbfb4ad90, index=20, rgn=@0xbfb4ac3c, offset=@0x80b392c, flags=4, sharedPainter=0x8ab3bf8) at kernel/qwidget.cpp:4725 #53 0xb5d868d9 in QWidgetPrivate::paintSiblingsRecursive (this=0x8145780, pdev=0x80e316c, siblings=@0xbfb4ad90, index=58, rgn=@0xbfb4ae84, offset=@0x80b392c, flags=4, sharedPainter=0x8ab3bf8) at kernel/qwidget.cpp:4725 #54 0xb5d85e98 in QWidgetPrivate::drawWidget (this=0x8145780, pdev=0x80e316c, rgn=@0xbfb4ae84, offset=@0x80b392c, flags=4, sharedPainter=0x8ab3bf8) at kernel/qwidget.cpp:4677 #55 0xb5ef46ee in QWidgetBackingStore::cleanRegion (this=0x80b3920, rgn=@0xbfb4aed8, widget=0x8145698, recursiveCopyToScreen=true) at painting/qbackingstore.cpp:1038 #56 0xb5ef4be7 in qt_syncBackingStore (widget=0x8145698) at painting/qbackingstore.cpp:313 #57 0xb5d87686 in QWidget::event (this=0x8145698, event=0x91db0f0) at kernel/qwidget.cpp:7447 #58 0xb60d9ff7 in QMainWindow::event (this=0x8145698, event=0x91db0f0) at widgets/qmainwindow.cpp:1268 #59 0xb6e159c7 in KMainWindow::event(QEvent*) () from /usr/lib/libkdeui.so.5 #60 0xb6e59dbc in KXmlGuiWindow::event(QEvent*) () from /usr/lib/libkdeui.so.5 #61 0xb5d2f8fc in QApplicationPrivate::notify_helper (this=0x8077c98, receiver=0x8145698, e=0x91db0f0) at kernel/qapplication.cpp:3803 #62 0xb5d3782a in QApplication::notify (this=0xbfb4b6f8, receiver=0x8145698, e=0x91db0f0) at kernel/qapplication.cpp:3768 #63 0xb6d3a93d in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5 #64 0xb679a961 in QCoreApplication::notifyInternal (this=0xbfb4b6f8, receiver=0x8145698, event=0x91db0f0) at kernel/qcoreapplication.cpp:587 #65 0xb679b5d5 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x80504a0) at kernel/qcoreapplication.h:209 #66 0xb679b7cd in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1091 #67 0xb67c536f in postEventSourceDispatch (s=0x8079f20) at kernel/qcoreapplication.h:214 #68 0xb51429a8 in IA__g_main_context_dispatch (context=0x8079e98) at gmain.c:2144 #69 0xb5146063 in g_main_context_iterate (context=0x8079e98, block=1, dispatch=1, self=0x806bf08) at gmain.c:2778 #70 0xb5146221 in IA__g_main_context_iteration (context=0x8079e98, may_block=1) at gmain.c:2841 #71 0xb67c4fb8 in QEventDispatcherGlib::processEvents (this=0x8077d58, flags={i = -1078676024}) at kernel/qeventdispatcher_glib.cpp:319 #72 0xb5dc87c5 in QGuiEventDispatcherGlib::processEvents (this=0x8077d58, flags={i = -1078675976}) at kernel/qguieventdispatcher_glib.cpp:198 #73 0xb679901a in QEventLoop::processEvents (this=0xbfb4b670, flags={i = -1078675912}) at kernel/qeventloop.cpp:143 #74 0xb67991da in QEventLoop::exec (this=0xbfb4b670, flags={i = -1078675848}) at kernel/qeventloop.cpp:194 #75 0xb679b895 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:845 #76 0xb5d2f777 in QApplication::exec () at kernel/qapplication.cpp:3331 #77 0x0804bf8f in main (argc=1, argv=0xbfb4b9f4) at /usr/src/debug/kdepim-4.2.0/kontact/src/main.cpp:218
I've seen this bug, it was 100% reproducible at the time, but now I can't make it crash, I'm using trunk. How many to-do's do you see in "Summary"? Do you have sub-to-dos? When are they due? Can you reproduce it with a normal CPU load?
(In reply to comment #1) > I've seen this bug, it was 100% reproducible at the time, but now I can't make > it crash, I'm using trunk. It seems to be 100% reproducible for me at the moment (still having the heavy CPU load during this, if this was important). It crashes over and over after switching from To-do to Summary and back to To-do again. > > How many to-do's do you see in "Summary"? 22 > Do you have sub-to-dos? no > When are they due? Different, I'll add an attachment. > Can you reproduce it with a normal CPU load? Tell you tomorrow, don't want to stop this now :-)
Created attachment 31158 [details] Some columns of interest of my current To-do list
I deleted my kde-devel's ~/.kde folder and I now get a crash, unfortunately it's a different backtrace. What kind of resource are you using? When you start kontact, which is the first view you see? Can you get a valgrind report? 1. Install valgrind and close kontact 2. Run: valgrind korganizer --nofork &> report.txt 3. Make it crash 4. Attach the report valgrind is very CPU intensive, be patient :)
(In reply to comment #2) > > > Can you reproduce it with a normal CPU load? > > Tell you tomorrow, don't want to stop this now :-) The rest of the answer I promised to give: I can reproduce the crash even on low CPU load, doesn't matter. Start Kontact, switch To-Do, switch Summary, switch back To-do -> Boom! :-)
(In reply to comment #4) > I deleted my kde-devel's ~/.kde folder and I now get a crash, unfortunately > it's a different backtrace. > > What kind of resource are you using? Akonadi compatibility resource. After upgrading to KDE 4.2 Beta2 from KDE 4.1 I had to repair it in systemsettings to use my earlier std.ics. BTW: Is there anything else you recommend to use? What's the best resource? > When you start kontact, which is the first view you see? > Can you get a valgrind report? > > 1. Install valgrind and close kontact > 2. Run: valgrind korganizer --nofork &> report.txt > 3. Make it crash > 4. Attach the report > > valgrind is very CPU intensive, be patient :) > I'll attach the result.
Created attachment 31183 [details] Valgrind report - crash after switching in Kontact from KMail to To-do and Summary Unfortunately, the crash which I appended the Valgrind report for already happened on switching from To-do to Summary view. Hopefully this is the same crash I reported. Will try to repeat this, but here you are with the first results. The initial view on starting Kontact is KMail.
Comment on attachment 31183 [details] Valgrind report - crash after switching in Kontact from KMail to To-do and Summary Command was: valgrind kontact --nofork &> report.txt
If I start valgrind korganizer --nofork &> report.txt followed by a normal kickoff start of Kontact instead of directly valgrind kontact --nofork &> report.txt The crash doesn't happen. Hopefully the above report.txt helps, otherwise ask for more tests with a detailed description how to to them.
Thanks for the report, it's the same as the one I got yesterday. ==10465== Invalid read of size 1 ==10465== at 0x109C7218: KOTodoModel::flags(QModelIndex const&) const (kotodomodel.cpp:525) ==10465== by 0x61C0F1F: QSortFilterProxyModel::flags(QModelIndex const&) const (qsortfilterproxymodel.cpp:1775) ==10465== by 0x6176775: QTreeView::drawRow(QPainter*, QStyleOptionViewItem const&, QModelIndex const&) const (qtreeview.cpp:1534) ==10465== by 0x617D9E6: QTreeView::drawTree(QPainter*, QRegion const&) const (qtreeview.cpp:1357) ==10465== by 0x617DDCA: QTreeView::paintEvent(QPaintEvent*) (qtreeview.cpp:1267) ==10465== by 0x5CCD85A: QWidget::event(QEvent*) (qwidget.cpp:7301) ==10465== by 0x6003B02: QFrame::event(QEvent*) (qframe.cpp:651) ==10465== by 0x609A23E: QAbstractScrollArea::viewportEvent(QEvent*) (qabstractscrollarea.cpp:943) ==10465== by 0x6144FBE: QAbstractItemView::viewportEvent(QEvent*) (qabstractitemview.cpp:1429) ==10465== by 0x617CB13: QTreeView::viewportEvent(QEvent*) (qtreeview.cpp:1252) ==10465== by 0x609C7E4: QAbstractScrollAreaFilter::eventFilter(QObject*, QEvent*) (qabstractscrollarea_p.h:96) ==10465== by 0x5910B39: QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) (qcoreapplication.cpp:694) ==10465== Address 0x10e79cb8 is 8 bytes inside a block of size 28 free'd ==10465== at 0x402679A: operator delete(void*) (in /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so) ==10465== by 0x4C9A65D: KCal::Todo::~Todo() (todo.cpp:102) ==10465== by 0x4CC0546: KCal::CalendarLocal::deleteAllTodos() (qalgorithms.h:346) ==10465== by 0x4CBDCF8: KCal::CalendarLocal::close() (calendarlocal.cpp:168) ==10465== by 0x10BD8C70: KCal::ResourceAkonadi::doLoad(bool) (resourceakonadi.cpp:661) ==10465== by 0x4CFF3EC: KCal::ResourceCalendar::load() (resourcecalendar.cpp:168) ==10465== by 0x4D116E0: KCal::CalendarResources::load() (calendarresources.cpp:272) ==10465== by 0xC9FA2E2: SDSummaryWidget::SDSummaryWidget(Kontact::Plugin*, QWidget*) (sdsummarywidget.cpp:124) ==10465== by 0xC9F48DA: SpecialdatesPlugin::createSummaryWidget(QWidget*) (specialdates_plugin.cpp:50) ==10465== by 0xCC500A4: SummaryViewPart::updateWidgets() (summaryview_part.cpp:164) ==10465== by 0xCC50E0F: SummaryViewPart::initGUI(Kontact::Core*) (summaryview_part.cpp:485) ==10465== by 0xCC513FA: SummaryViewPart::SummaryViewPart(Kontact::Core*, char const*, KAboutData const*, QObject*) (summaryview_part.cpp:74) Something is closing our calendar making the incidence invalid. I suggest disable "Summary" component for now.
Here's the problem, both Summary and Calendar component of kontact call KOrg::StdCalendar::self()->load() that will call ResourceAkonadi::doLoad(). Resource::Akonadi::doLoad() closes the calendar resource before loading, freeing incidences that are being used. =================================================================== --- resourceakonadi.cpp (revision 924721) +++ resourceakonadi.cpp (working copy) @@ -763,7 +763,7 @@ // clear local caches d->mInternalCalendarModification = true; - d->mCalendar.close(); + // d->mCalendar.close(); d->mInternalCalendarModification = false; d->mItems.clear(); Although this fixes the problem I don't know if ResourceAkonadi::doLoad() should/shouldn't close the calendar.
SVN commit 924888 by krake: Backport of r924887 Emit resourceChanged() when we delete currently held incidences as required by API contract BUG: 183807 M +6 -3 resourceakonadi.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=924888
Works for me with the latest KDE 4.2 Factory / OpenSuSE 11.1 upstream packages from 18th of February. Hopefully this situation is caused by your fix :-) Thanks
*** Bug 187925 has been marked as a duplicate of this bug. ***