Bug 305584 - Calendar resource does not handle Akonadi::PayloadException
Summary: Calendar resource does not handle Akonadi::PayloadException
Alias: None
Product: Akonadi
Classification: Frameworks and Libraries
Component: Google Resource (show other bugs)
Version: 4.9
Platform: Ubuntu Linux
: NOR crash (vote)
Target Milestone: ---
Assignee: Daniel Vrátil
: 306218 307378 308801 308929 310213 (view as bug list)
Depends on:
Reported: 2012-08-22 09:44 UTC by Loïc Grobol
Modified: 2012-11-22 15:28 UTC (History)
8 users (show)

See Also:
Latest Commit:
Version Fixed In: 4.9.3

New crash information added by DrKonqi (1.80 KB, text/plain)
2012-08-25 15:15 UTC, Loïc Grobol

Note You need to log in before you can comment on or make changes to this bug.
Description Loïc Grobol 2012-08-22 09:44:24 UTC
Application: akonadi_googlecalendar_resource (4.9)
KDE Platform Version: 4.9.00
Qt Version: 4.8.1
Operating System: Linux 3.2.0-30-generic x86_64
Distribution: Ubuntu 12.04.1 LTS

-- Information about the crash:
- What I was doing when the application crashed:
Right after logging in, the Crash Reporting Assistant showed up, telling me that the ressource had crashed. But everything seems to be working fine, and KMail and Calendar had no problem using the Google ressources.

-- Backtrace:
Application: Google Calendars and Tasks (akonadi_googlecalendar_resource), signal: Aborted
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[KCrash Handler]
#6  0x00007fe80467e445 in __GI_raise (sig=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#7  0x00007fe804681bab in __GI_abort () at abort.c:91
#8  0x00007fe804cd269d in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#9  0x00007fe804cd0846 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#10 0x00007fe804cd0873 in std::terminate() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#11 0x00007fe804cd09b6 in __cxa_rethrow () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#12 0x00007fe806d9e16c in QEventLoop::exec (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:218
#13 0x00007fe806da2f67 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1148
#14 0x00007fe807511576 in Akonadi::ResourceBase::init(Akonadi::ResourceBase*) () from /usr/lib/libakonadi-kde.so.4
#15 0x0000000000416606 in int Akonadi::ResourceBase::init<CalendarResource>(int, char**) ()
#16 0x00007fe80466976d in __libc_start_main (main=0x40da00, argc=3, ubp_av=0x7fffa2a65b28, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffa2a65b18) at libc-start.c:226
#17 0x000000000040da31 in _start ()

Possible duplicates by query: bug 305530, bug 305122, bug 304756, bug 304424, bug 303616.

Reported using DrKonqi
Comment 1 Daniel Vrátil 2012-08-22 09:54:59 UTC
Could you check your $HOME/.xsession-errors if there are any information about the crash?

You can search for line similar to "KCrash: Application 'akonadi_googlecalendar_resource' crashing...", which will be followed by information about unhandled exception. It would really help me to track down what exactly happened.
Comment 2 Loïc Grobol 2012-08-22 10:08:35 UTC
Here's what seem to be relevant (it was after 

terminate called after throwing an instance of 'Akonadi::PayloadException'
  what():  Akonadi::PayloadException: No payload set
KCrash: Application 'akonadi_googlecalendar_resource' crashing...
KCrash: Attempting to start /usr/lib/kde4/libexec/drkonqi from kdeinit
X Error: BadWindow (invalid Window parameter) 3
  Major opcode: 20 (X_GetProperty)
  Resource id:  0x3e00022
ProcessControl: Application '/usr/bin/akonadi_googlecalendar_resource' returned with exit code 253 (Unknown error)
"/usr/bin/akonadi_googlecalendar_resource" crashed too often and will not be restarted! 
kontact(3116)/kdeui (KWindowInfo) KWindowInfo::state: Pass NET::WMState to KWindowInfo
Comment 3 Myriam Schweingruber 2012-08-25 14:38:02 UTC
Also, installing debugging symbols for Akonadi would be a good idea, you apparently don't have them installed. See also http://techbase.kde.org/Development/Tutorials/Debugging/How_to_create_useful_crash_reports
Comment 4 Loïc Grobol 2012-08-25 15:15:41 UTC
Created attachment 73465 [details]
New crash information added by DrKonqi

akonadi_googlecalendar_resource (4.9) on KDE Platform 4.9.00 using Qt 4.8.1

- What I was doing when the application crashed: Now with the backtrace with akonadi-dbg and kdepimlibs-dbg.

-- Backtrace (Reduced):
#6  0x00007f5836fae445 in __GI_raise (sig=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#7  0x00007f5836fb1bab in __GI_abort () at abort.c:91
#12 0x00007f58396ce16c in QEventLoop::exec (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:218
#13 0x00007f58396d2f67 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1148
#14 0x00007f5839e41576 in Akonadi::ResourceBase::init (r=0x1119460) at ../../akonadi/resourcebase.cpp:451
Comment 5 Myriam Schweingruber 2012-08-27 22:37:45 UTC
Thank you for the fast feedback.
Comment 6 Myriam Schweingruber 2012-09-06 21:28:27 UTC
*** Bug 306218 has been marked as a duplicate of this bug. ***
Comment 7 Myriam Schweingruber 2012-09-06 21:29:01 UTC
Confirmed by duplicates
Comment 8 Daniel Vrátil 2012-09-25 15:28:04 UTC
*** Bug 307378 has been marked as a duplicate of this bug. ***
Comment 9 Daniel Vrátil 2012-10-22 12:59:19 UTC
*** Bug 308801 has been marked as a duplicate of this bug. ***
Comment 10 Daniel Vrátil 2012-10-22 13:09:44 UTC
Git commit a81eb36d7db664dc7615addf0cd28fb6e0cb663a by Dan Vrátil.
Committed on 22/10/2012 at 14:54.
Pushed by dvratil into branch 'KDE/4.9'.

Verify payload type before calling Akonadi::Item::payload()

Apparently Akonadi sometimes sends us Item with an invalid
or empty payload, so direct access to it throws PayloadException.

The only place where we can't use hasPayload() is in itemRemoved()
since removed items don't have payload.
FIXED-IN: 4.9.3

M  +4    -4    resources/google/calendar/calendarresource.cpp
M  +5    -0    resources/google/calendar/resource_tasks.cpp

Comment 11 Daniel Vrátil 2012-10-24 14:12:06 UTC
*** Bug 308929 has been marked as a duplicate of this bug. ***
Comment 12 Daniel Vrátil 2012-11-22 15:28:21 UTC
*** Bug 310213 has been marked as a duplicate of this bug. ***