Bug 191091 - korganizer crashes when filtering involves sub-to-dos
Summary: korganizer crashes when filtering involves sub-to-dos
Status: RESOLVED WORKSFORME
Alias: None
Product: korganizer
Classification: Applications
Component: general (show other bugs)
Version: 4.2.2
Platform: unspecified Linux
: NOR crash
Target Milestone: ---
Assignee: kdepim bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-04-30 00:31 UTC by Vitor M. Pereira
Modified: 2011-01-27 00:15 UTC (History)
1 user (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 Vitor M. Pereira 2009-04-30 00:31:21 UTC
Version:           4.2.2 (using 4.2.2 (KDE 4.2.2), 4.2.2-7.fc10 Fedora)
Compiler:          gcc
OS:                Linux (i686) release 2.6.27.21-170.2.56.fc10.i686

When I try to select a view filter that tries to filter sub-to-dos korganizer crashes always.

1. Create a to-do;
2. Create a sub-to-do of the one above;
3. Assign a category to that sub-to-do, say "Meeting";
4. Create a view filter that shows only the category "Meeting";
5. Go to a view without any filter and select this filter through "View->Filter";
6. korganizer crashes with the backtrace given below.

What is even stranger is that the crash only occurs if I select the filter starting from a "No filter" situation. For example if I select another view filter (not involving sub-to-dos) and, immediately after, select the filter constructed as described above, korganizer doesn't crash. It only happens if I select the filter from a "No filter" view.


<backtrace>
Application: KOrganizer (korganizer), signal SIGSEGV
[Current thread is 1 (Thread 0xb7f4a770 (LWP 3738))]

Thread 1 (Thread 0xb7f4a770 (LWP 3738)):
[KCrash Handler]
#6  0x022cda4a in KCal::Incidence::relatedTo () from /usr/lib/libkcal.so.4
#7  0x02b71645 in QWidget::setUpdatesEnabled () from /usr/lib/libkorganizerprivate.so.4
#8  0x02b7229a in QWidget::setUpdatesEnabled () from /usr/lib/libkorganizerprivate.so.4
#9  0x02b7a210 in QWidget::setUpdatesEnabled () from /usr/lib/libkorganizerprivate.so.4
#10 0x02b97dfe in CalendarView::updateView () from /usr/lib/libkorganizerprivate.so.4
#11 0x02b99b1d in CalendarView::updateView () from /usr/lib/libkorganizerprivate.so.4
#12 0x02b979b2 in CalendarView::filterActivated () from /usr/lib/libkorganizerprivate.so.4
#13 0x02ba51f6 in CalendarView::qt_metacall () from /usr/lib/libkorganizerprivate.so.4
#14 0x066c4a08 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#15 0x066c6192 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#16 0x0765cbe3 in KSelectAction::triggered () from /usr/lib/libkdeui.so.5
#17 0x0765e65f in KSelectAction::actionTriggered () from /usr/lib/libkdeui.so.5
#18 0x0765f924 in KSelectAction::qt_metacall () from /usr/lib/libkdeui.so.5
#19 0x066c4a08 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#20 0x066c6192 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#21 0x06cb4423 in QActionGroup::triggered () from /usr/lib/libQtGui.so.4
#22 0x06cb4ca8 in ?? () from /usr/lib/libQtGui.so.4
#23 0x06cb4ebe in QActionGroup::qt_metacall () from /usr/lib/libQtGui.so.4
#24 0x066c4a08 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#25 0x066c4e40 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#26 0x06caf6b1 in QAction::triggered () from /usr/lib/libQtGui.so.4
#27 0x06cb0c2f in QAction::activate () from /usr/lib/libQtGui.so.4
#28 0x0712977c in ?? () from /usr/lib/libQtGui.so.4
#29 0x0712febb in ?? () from /usr/lib/libQtGui.so.4
#30 0x07130992 in QMenu::mouseReleaseEvent () from /usr/lib/libQtGui.so.4
#31 0x0780dfd5 in KMenu::mouseReleaseEvent () from /usr/lib/libkdeui.so.5
#32 0x06d0c943 in QWidget::event () from /usr/lib/libQtGui.so.4
#33 0x07132d79 in QMenu::event () from /usr/lib/libQtGui.so.4
#34 0x06cb5cec in QApplicationPrivate::notify_helper () from /usr/lib/libQtGui.so.4
#35 0x06cbe941 in QApplication::notify () from /usr/lib/libQtGui.so.4
#36 0x0772e17d in KApplication::notify () from /usr/lib/libkdeui.so.5
#37 0x066ae75b in QCoreApplication::notifyInternal () from /usr/lib/libQtCore.so.4
#38 0x06cbd9ae in QApplicationPrivate::sendMouseEvent () from /usr/lib/libQtGui.so.4
#39 0x06d2d7e6 in ?? () from /usr/lib/libQtGui.so.4
#40 0x06d2c887 in QApplication::x11ProcessEvent () from /usr/lib/libQtGui.so.4
#41 0x06d55f6a in ?? () from /usr/lib/libQtGui.so.4
#42 0x009f5258 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#43 0x009f8903 in ?? () from /lib/libglib-2.0.so.0
#44 0x009f8ac1 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#45 0x066da188 in QEventDispatcherGlib::processEvents () from /usr/lib/libQtCore.so.4
#46 0x06d55665 in ?? () from /usr/lib/libQtGui.so.4
#47 0x066acd8a in QEventLoop::processEvents () from /usr/lib/libQtCore.so.4
#48 0x066ad1ca in QEventLoop::exec () from /usr/lib/libQtCore.so.4
#49 0x07132ab1 in QMenu::exec () from /usr/lib/libQtGui.so.4
#50 0x07180bba in ?? () from /usr/lib/libQtGui.so.4
#51 0x071812c2 in ?? () from /usr/lib/libQtGui.so.4
#52 0x07181556 in QToolButton::qt_metacall () from /usr/lib/libQtGui.so.4
#53 0x066c4a08 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#54 0x066c6192 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#55 0x0736aa57 in QAbstractButton::pressed () from /usr/lib/libQtGui.so.4
#56 0x07095419 in ?? () from /usr/lib/libQtGui.so.4
#57 0x070955fe in QAbstractButton::mousePressEvent () from /usr/lib/libQtGui.so.4
#58 0x07181f9b in QToolButton::mousePressEvent () from /usr/lib/libQtGui.so.4
#59 0x06d0ca46 in QWidget::event () from /usr/lib/libQtGui.so.4
#60 0x0709570e in QAbstractButton::event () from /usr/lib/libQtGui.so.4
#61 0x071819ca in QToolButton::event () from /usr/lib/libQtGui.so.4
#62 0x06cb5cec in QApplicationPrivate::notify_helper () from /usr/lib/libQtGui.so.4
#63 0x06cbe941 in QApplication::notify () from /usr/lib/libQtGui.so.4
#64 0x0772e17d in KApplication::notify () from /usr/lib/libkdeui.so.5
#65 0x066ae75b in QCoreApplication::notifyInternal () from /usr/lib/libQtCore.so.4
#66 0x06cbd9ae in QApplicationPrivate::sendMouseEvent () from /usr/lib/libQtGui.so.4
#67 0x06d2d55e in ?? () from /usr/lib/libQtGui.so.4
#68 0x06d2c887 in QApplication::x11ProcessEvent () from /usr/lib/libQtGui.so.4
#69 0x06d55f6a in ?? () from /usr/lib/libQtGui.so.4
#70 0x009f5258 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#71 0x009f8903 in ?? () from /lib/libglib-2.0.so.0
#72 0x009f8ac1 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#73 0x066da188 in QEventDispatcherGlib::processEvents () from /usr/lib/libQtCore.so.4
#74 0x06d55665 in ?? () from /usr/lib/libQtGui.so.4
#75 0x066acd8a in QEventLoop::processEvents () from /usr/lib/libQtCore.so.4
#76 0x066ad1ca in QEventLoop::exec () from /usr/lib/libQtCore.so.4
#77 0x066af679 in QCoreApplication::exec () from /usr/lib/libQtCore.so.4
#78 0x06cb5b67 in QApplication::exec () from /usr/lib/libQtGui.so.4
#79 0x08050744 in _start ()

</backtrace>
Comment 1 Sergio Martins 2009-04-30 00:48:21 UTC
1. Which resource are you using? (Akonadi, local ics file, remote, etc)

2. Can you install debug symbols and get a new backtrace? http://techbase.kde.org/Development/Tutorials/Debugging/How_to_create_useful_crash_reports
Comment 2 Vitor M. Pereira 2009-04-30 01:13:51 UTC
> 1. Which resource are you using? (Akonadi, local ics file, remote, etc)

Sorry for forgetting to mention. I'm using a local ics file and standalone korganizer (not from kontact).

> 2. Can you install debug symbols and get a new backtrace?

I'll take a look on how to do that in fedora and report back.
Comment 3 Vitor M. Pereira 2009-05-02 01:58:55 UTC
>> 2. Can you install debug symbols and get a new backtrace?

>I'll take a look on how to do that in fedora and report back.

OK. I see that in fedora here I need to install ~600MB in debuginfo packages to get debug symbols for kdepim. 

At the moment this is prohibitive for me since I've got KDE 4 only on my laptop, which is already slightly constrained in HD space. 

Could perhaps someone with debuginfo already set up try to reproduce the crash from the steps above?
Comment 4 Sergio Martins 2009-06-20 14:12:00 UTC
What view did you use in step 5?

Do you have the mini-to-do view in the side bar?

Is the sub-todo visible or hidden (parent expanded))
Comment 5 Vitor M. Pereira 2009-06-20 23:00:54 UTC
For example: 

- I disable all sidebars;
- I follow the steps above to create the sub-todo, and assign the category to the sub-todo only.
- I select view -> day, and, just to make sure, go to one day where there is nothing listed (no events, no to-dos, nothing);
- I apply the filter for the category of the sub-todo just created.
- Since the day I have selected to see has nothing, nothing visibly happens.
- Afterwards, I apply any other filter and korganizer crashes.

So, this example shows that it does not seem related to whether the item is visible or not.

In addition, it doesn't matter whether I am in the day, week, to-do, what's next or any other view. Nor whether I have sidebars on or off. The above sequence of filtering that particular category and then selecting another filter always crashes korganizer.

As soon as I delete the sub-todo. All works as expected in any view and side views. I can filter, un-filter, re-filter endlessly and korganizer responds as expected.

NOTE: The crash only happens when the sub-todo has a category, but the parent todo doesn't. If I assign the category to the parent todo, and then create the sub-todo (which inherits the category), there is no crash and korganizer seems to behave as expected. So it seems something related to the fact that the parent has no category.
Comment 6 Sergio Martins 2011-01-27 00:15:40 UTC
Incidence::relatedTo() crashes were fixed in 4.6 with the use of shared pointers.