Bug 246124

Summary: Akonadi crashes when sharing .cal File with ktimetracker
Product: [Frameworks and Libraries] Akonadi Reporter: Matthias Horn <matthias.horn>
Component: generalAssignee: Volker Krause <vkrause>
Status: RESOLVED NOT A BUG    
Severity: crash CC: kdepim-bugs, krammer, matthias.horn
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: New crash information added by DrKonqi

Description Matthias Horn 2010-07-29 08:30:02 UTC
Application: akonadi_kcal_resource (0.1)
KDE Platform Version: 4.4.4 (KDE 4.4.4) "release 2"
Qt Version: 4.6.3
Operating System: Linux 2.6.34-12-desktop x86_64
Distribution: "openSUSE 11.3 (x86_64)"

-- Information about the crash:
after using ktimtracker, akonadi crashes when sharing resourcefile with akonadi.

 -- Backtrace:
Application: Akonadi Resource (akonadi_kcal_resource), signal: Segmentation fault
[KCrash Handler]
#5  begin (this=0x105e5b0, incidence=0xcd5380) at /usr/include/QtCore/qlist.h:93
#6  contains (this=0x105e5b0, incidence=0xcd5380) at /usr/include/QtCore/qlist.h:757
#7  removeRef (this=0x105e5b0, incidence=0xcd5380) at /usr/src/debug/kdepimlibs-4.4.4/kcal/listbase.h:118
#8  KCal::Incidence::removeRelation (this=0x105e5b0, incidence=0xcd5380) at /usr/src/debug/kdepimlibs-4.4.4/kcal/incidence.cpp:529
#9  0x00007f8b77123850 in KCal::Incidence::~Incidence (this=0xcd5380, __in_chrg=<value optimized out>) at /usr/src/debug/kdepimlibs-4.4.4/kcal/incidence.cpp:201
#10 0x00007f8b77123bc9 in KCal::Event::~Event (this=0xcd5380, __in_chrg=<value optimized out>) at /usr/src/debug/kdepimlibs-4.4.4/kcal/event.cpp:79
#11 0x000000000041288a in _start ()

Possible duplicates by query: bug 238029, bug 236997, bug 236996, bug 231840, bug 229440.

Reported using DrKonqi
Comment 1 Matthias Horn 2010-07-29 08:39:23 UTC
Created attachment 49621 [details]
New crash information added by DrKonqi

Crashed again. I just opened ical file in ktimetracker and when saving it (without chan
ching anything, akonadi crashed.
Comment 2 Tobias Koenig 2010-08-02 20:27:57 UTC
Hej Matthias,

you should _not_ let two applications (Akonadi KCal Resource and KTimeTracker) access the same file. This will lead to data corruption, because there is no locking mechanism available between these two applications.
KTimeTracker should use Akonadi to access the ical file, then Akonadi can do proper locking and conflict resolution.

Ciao,
Tobias
Comment 3 Kevin Krammer 2010-08-02 21:03:11 UTC
I don't think this is invalid.

The reported version is 4.4, which means even KOrganizer would still be accessing the calendar files along side any Akonadi resource.

And there shouldn't be any data corruption if the two using parties write to a temporary file and rename to the orginal name (which is likely for ical).

There could be entries lost if both write at the same time due to overwriting each others changes, but the resulting data should still be readable.

I see that the first backtrace is from the Akonadi KCal Resource, while the second is from Kontact.

Matthias: you have the calendar files used by all three apps, right?
KTimetracker, Kontact and the Akonadi resource?

If you don't need it in Akonadi, you could remove the Akonadi resource and reassign this to Kontact/KOrganizer.

If you need it, try using an Akonadi ICal resource instead (the KCal one needs to go through compatibility wrappers and can get into corner cases where plugins behave strangely).