Summary: | Crash on switching between Summary and To-do within Kontact | ||
---|---|---|---|
Product: | [Frameworks and Libraries] Akonadi | Reporter: | René Krell <renda.krell> |
Component: | KResource compat bridges | Assignee: | Kevin Krammer <krammer> |
Status: | VERIFIED FIXED | ||
Severity: | crash | CC: | smartins, vkrause |
Priority: | NOR | ||
Version First Reported In: | unspecified | ||
Target Milestone: | --- | ||
Platform: | unspecified | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: |
Some columns of interest of my current To-do list
Valgrind report - crash after switching in Kontact from KMail to To-do and Summary |
Description
René Krell
2009-02-09 18:50:23 UTC
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. *** |