Summary: | Plasma-desktop crashes regularly (again suspect Akonadi and remote iCal) | ||
---|---|---|---|
Product: | [Frameworks and Libraries] Akonadi | Reporter: | Matija Šuklje <matija> |
Component: | libakonadi | Assignee: | kdepim bugs <kdepim-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | aseigo, david.narvaez, smartins |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Gentoo Packages | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Matija Šuklje
2011-05-19 22:55:22 UTC
As requested by aseigo, adding him to CC. The crash occured again after the same amount of time — 2h exactly. I have both remote iCal sources set to refresh after 60 minutes. Another BT from another crash: Application: Delovno okolje Plasma Desktop (kdeinit4), signal: Aborted [Current thread is 1 (Thread 0x7fdf49ecb760 (LWP 6943))] Thread 3 (Thread 0x7fdf23a48700 (LWP 7052)): #0 0xffffffffff600132 in ?? () #1 0x00007fffdf1ed771 in ?? () #2 0x00007fdf445e42f8 in clock_gettime (clock_id=597981984, tp=0x7fdf23a47b20) at ../sysdeps/unix/clock_gettime.c:100 #3 0x00007fdf48a50a72 in do_gettime () at tools/qelapsedtimer_unix.cpp:123 #4 qt_gettime () at tools/qelapsedtimer_unix.cpp:140 #5 0x00007fdf48b1be8d in QTimerInfoList::updateCurrentTime (this=0x7fdf23a47b20) at kernel/qeventdispatcher_unix.cpp:339 #6 0x00007fdf48b1beb5 in QTimerInfoList::timerWait (this=0x7fdf23a47b20, tm=...) at kernel/qeventdispatcher_unix.cpp:442 #7 0x00007fdf48b1a06d in timerSourcePrepareHelper (src=<value optimized out>, timeout=0x7fdf23a47c4c) at kernel/qeventdispatcher_glib.cpp:136 #8 0x00007fdf48b1a115 in timerSourcePrepare (source=0x7fdf23a47b20, timeout=0x7fdf23a47b20) at kernel/qeventdispatcher_glib.cpp:169 #9 0x00007fdf44312da8 in g_main_context_prepare (context=0x3369c80, priority=<value optimized out>) at gmain.c:2761 #10 0x00007fdf44313208 in g_main_context_iterate (context=0x3369c80, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at gmain.c:3071 #11 0x00007fdf443137ec in g_main_context_iteration (context=0x3369c80, may_block=1) at gmain.c:3154 #12 0x00007fdf48b19e76 in QEventDispatcherGlib::processEvents (this=0x33587f0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:424 #13 0x00007fdf48aeca92 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149 #14 0x00007fdf48aece74 in QEventLoop::exec (this=0x7fdf23a47de0, flags=) at kernel/qeventloop.cpp:201 #15 0x00007fdf489f949d in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:492 #16 0x00007fdf48accaa8 in QInotifyFileSystemWatcherEngine::run (this=0x3302880) at io/qfilesystemwatcher_inotify.cpp:248 #17 0x00007fdf489fc4c5 in QThreadPrivate::start (arg=0x3302880) at thread/qthread_unix.cpp:320 #18 0x00007fdf4876a914 in start_thread (arg=<value optimized out>) at pthread_create.c:297 #19 0x00007fdf4751441d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 2 (Thread 0x7fdf1a0ef700 (LWP 7063)): #0 pthread_cond_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162 #1 0x00007fdf489fd08b in wait (this=<value optimized out>, mutex=0x3515510, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:88 #2 QWaitCondition::wait (this=<value optimized out>, mutex=0x3515510, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:160 #3 0x00007fdf2cbe892c in ?? () from /usr/lib64/python2.7/site-packages/PyQt4/QtCore.so #4 0x00007fdf2d2812e3 in call_function (f=0x3afa8d0, throwflag=<value optimized out>) at Python/ceval.c:4012 #5 PyEval_EvalFrameEx (f=0x3afa8d0, throwflag=<value optimized out>) at Python/ceval.c:2665 #6 0x00007fdf2d282bd0 in PyEval_EvalCodeEx (co=0x3d8beb0, globals=<value optimized out>, locals=<value optimized out>, args=0x0, argcount=0, kws=<value optimized out>, kwcount=0, defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:3252 #7 0x00007fdf2d20de21 in function_call (func=0x3d952a8, arg=0x2f4a910, kw=0x0) at Objects/funcobject.c:526 #8 0x00007fdf2d1e5542 in PyObject_Call (func=0x3d952a8, arg=0x80, kw=0xf3) at Objects/abstract.c:2529 #9 0x00007fdf2d1f817d in instancemethod_call (func=0x3d952a8, arg=0x2f4a910, kw=0x0) at Objects/classobject.c:2578 #10 0x00007fdf2d1e5542 in PyObject_Call (func=0x2a88640, arg=0x80, kw=0xf3) at Objects/abstract.c:2529 #11 0x00007fdf2d27aab2 in PyEval_CallObjectWithKeywords (func=0x2a88640, arg=0x29d0050, kw=0xf3) at Python/ceval.c:3881 #12 0x00007fdf2c9258eb in ?? () from /usr/lib64/python2.7/site-packages/sip.so #13 0x00007fdf2cbc94d7 in ?? () from /usr/lib64/python2.7/site-packages/PyQt4/QtCore.so #14 0x00007fdf2cbfc780 in ?? () from /usr/lib64/python2.7/site-packages/PyQt4/QtCore.so #15 0x00007fdf489fc4c5 in QThreadPrivate::start (arg=0x3375390) at thread/qthread_unix.cpp:320 #16 0x00007fdf4876a914 in start_thread (arg=<value optimized out>) at pthread_create.c:297 #17 0x00007fdf4751441d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 1 (Thread 0x7fdf49ecb760 (LWP 6943)): [KCrash Handler] #6 0x00007fdf47475065 in raise (sig=<value optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 #7 0x00007fdf474762ff in abort () at abort.c:92 #8 0x00007fdf47867d95 in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/gcc/x86_64-pc-linux-gnu/4.4.5/libstdc++.so.6 #9 0x00007fdf478661c6 in ?? () from /usr/lib/gcc/x86_64-pc-linux-gnu/4.4.5/libstdc++.so.6 #10 0x00007fdf478661f3 in std::terminate() () from /usr/lib/gcc/x86_64-pc-linux-gnu/4.4.5/libstdc++.so.6 #11 0x00007fdf47866275 in __cxa_rethrow () from /usr/lib/gcc/x86_64-pc-linux-gnu/4.4.5/libstdc++.so.6 #12 0x00007fdf48aecfc3 in QEventLoop::exec (this=<value optimized out>, flags=<value optimized out>) at kernel/qeventloop.cpp:214 #13 0x00007fdf48af0eeb in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1008 #14 0x00007fdf39b82583 in kdemain (argc=<value optimized out>, argv=<value optimized out>) at /var/tmp/portage/kde-base/plasma-workspace-4.6.9999/work/plasma-workspace-4.6.9999/plasma/desktop/shell/main.cpp:120 #15 0x0000000000407f33 in launch (argc=1, _name=<value optimized out>, args=<value optimized out>, cwd=<value optimized out>, envc=0, envs=<value optimized out>, reset_env=false, tty=0x0, avoid_loops=false, startup_id_str=0x40b26b "0") at /var/tmp/portage/kde-base/kdelibs-4.6.2-r3/work/kdelibs-4.6.2/kinit/kinit.cpp:734 #16 0x0000000000408b30 in handle_launcher_request (sock=7, who=<value optimized out>) at /var/tmp/portage/kde-base/kdelibs-4.6.2-r3/work/kdelibs-4.6.2/kinit/kinit.cpp:1226 #17 0x000000000040905b in handle_requests (waitForPid=6342368) at /var/tmp/portage/kde-base/kdelibs-4.6.2-r3/work/kdelibs-4.6.2/kinit/kinit.cpp:1419 #18 0x0000000000409c01 in main (argc=2, argv=<value optimized out>, envp=<value optimized out>) at /var/tmp/portage/kde-base/kdelibs-4.6.2-r3/work/kdelibs-4.6.2/kinit/kinit.cpp:1907 given testing done (discussed with reporter on irc) this looks like an uncaught exception from kdepimlibs, likely libakonadi. there are no exceptions in plasma code, the 3rd party add-on being used does not throw exceptions either and where it is segfaulting is due to an uncaught signal in an event handler. to quote qcoreapplication.cpp: qWarning("Qt has caught an exception thrown from an event handler. Throwing\n" "exceptions from an event handler is not supported in Qt. You must\n" "reimplement QApplication::notify() and catch all exceptions there.\n"); exceptions should not be bubbling out of the library. kde apps do not generally catch exceptions, so this will cause issues for any such app that would wish to use this library. Which version of kdepim-runtime/kdepim are you using? Which version of kdepimlibs are you using? Bug was initially reported using these versions (all from Gentoo portage): * plasma-workspace (kde workspace) pulled from Git Revision 2ce0f3a5 https://projects.kde.org/projects/kde/kdebase/kde-workspace/repository/revisions/2ce0f3a54915742f929d52b81653f8fc153a8fb8 ← Gentoo's KDE repository * KDEPIM 4.5.96 ← Gentoo's KDE repository * rest of KDE 4.6.2 ← official Gentoo (stable) repository But I can still replicate it on yesterday's code from Git: * KDEPIM 4.6.9999 ← Gentoo's KDE repository, pulls code from KDEPIM Git: - kdepimlibs revision 2df008156da8295153a103c8ea56398369a7f9b8 - kdepim-runtime revision 8700a77cd62096451534e34a018b7ab6b99d8fbe Did you/gentoo build tests? Can you run: build/kdepim-runtime/plugins/tests $ ./kcalcoreserializertest Also, where do you have akonadi_serializer_kcalcore.desktop installed ? (In reply to comment #7) > Did you/gentoo build tests? What do you mean with that? If you mean debugging information, I do have debugging information compiled and use: CFLAGS="-march=native -O2 -pipe -ggdb" If you mean debugging calls and tools, I have them disabled by default. > Can you run: > build/kdepim-runtime/plugins/tests $ ./kcalcoreserializertest I don't see this file/folder anywhere. > Also, where do you have akonadi_serializer_kcalcore.desktop installed ? Yes, I do. If you open akonadiconsole, on the browser tab, can you see your events? Then, if you select an event, what appears on the payload tab? (In reply to comment #9) > If you open akonadiconsole, on the browser tab, can you see your events? I can see all events and todos from all my calendar resources — local (four, including a KMyMoney generated schedule) and remote (two, mentioned above in comment #1). Also events and todos also show just as well in Kontact's summary view, KOrganizer and the Eventlist plasmoid. > Then, if you select an event, what appears on the payload tab? Again, all events and todos from all resources show as expected in the Payload tab. Now I managed to recreate the crash even when I remove the two remote iCal resources from the Eventlist plasmoid. I'll try again now with just an empty, recently created local iCal file to see if that still triggers it. If so, I'll try what happens now if I remove the Eventlist plasmoid altogether. Crashes also when Eventlist only has an empty iCal loaded. Oddly enough, (now) even when no Eventlist plasmoid is loaded it crashes after 2 hours ...I am genuinely confused now. Can you run it under gdb, and set a breakpoint at: __cxa_throw Then, give us a new backtrace. (In reply to comment #13) > Can you run it under gdb, and set a breakpoint at: __cxa_throw If you can tell me what exactly to run and what to type, I'd be glad to! I'm pretty new to gdb... After I killed plasma with 'kquitapp plasma-desktop' I ran 'gdb plasma-desktop' and issued to it: * 'break __cxa_throw' * made breakpoint pending on future shared library load. * 'run' * after it crashed (seems unrelated to the breakpoint): 'stop' * 'bt' results in only "No stack" But here are the last few lines of the output anyway: QPainter::begin: Paint device returned engine == 0, type: 2 QPainter::begin: Paint device returned engine == 0, type: 2 QPainter::begin: Paint device returned engine == 0, type: 2 QPainter::begin: Paint device returned engine == 0, type: 2 plasma-desktop(28492)/plasma Battery::dataUpdated: Remaining msecs on battery: 0 plasma-desktop(28492)/plasma Battery::dataUpdated: Remaining msecs on battery: 0 Qt has caught an exception thrown from an event handler. Throwing exceptions from an event handler is not supported in Qt. You must reimplement QApplication::notify() and catch all exceptions there. terminate called after throwing an instance of 'Akonadi::PayloadException' what(): Akonadi::PayloadException: No payload set KCrash: Attempting to start /usr/bin/plasma-desktop from kdeinit sock_file=/home/hook/.kde4/socket-faunus/kdeinit4__0 KCrash: Application 'plasma-desktop' crashing... KCrash: Attempting to start /usr/lib64/kde4/libexec/drkonqi from kdeinit sock_file=/home/hook/.kde4/socket-faunus/kdeinit4__0 QSocketNotifier: Invalid socket 17 and type 'Read', disabling... I still didn't manage to pin-point the bug. But just to be sure I tried (again) what happens if I try to replicate it with Akonadi stopped (I left Nepomuk to run). As expected the result is that even after more then 4 hours, Plasma has not crashed. After that I needed e-mail, so I started Akonadi again. So at least, we can be sure that Akonadi has something to do with triggering the Plasma crash. Hi Matija, what version of Plasma/Akonadi are you using now? Can you replicate this on your current version? Thanks! (In reply to comment #17) > Hi Matija, what version of Plasma/Akonadi are you using now? Can you replicate > this on your current version? Currently I'm on a freshly re-emerged ('emerge -e system world'; David will know what that means): app-office/akonadi-server-1.6.0-r1 kde-base/plasma-runtime-4.7.0 ...the rest of KDE (including KDEPIM) is also 4.7.0 I am rather waiting for KDE 4.7.x to become stable in Gentoo. But if you give me a good reason to upgrade to 4.7.3, I'll do it by the end of the week. (In reply to comment #18) > Currently I'm on a freshly re-emerged ('emerge -e system world'; David will > know what that means): > > app-office/akonadi-server-1.6.0-r1 > kde-base/plasma-runtime-4.7.0 > > ...the rest of KDE (including KDEPIM) is also 4.7.0 Still having the problem reported here? (In reply to comment #19) > > app-office/akonadi-server-1.6.0-r1 > > kde-base/plasma-runtime-4.7.0 > > > > ...the rest of KDE (including KDEPIM) is also 4.7.0 > > Still having the problem reported here? Plasma still crashes on rare occasions for no apparent reason and sometimes when I start KDE it still eats up 100% of CPU and needs to be killed and restarted several times before it runs normally... But to be honest, I cannot replicate it anymore by the method I described above. I'm marking this as FIXED then, but I'm currently having other types of issues with remote iCal so if this error pops up again, please let us know. Thanks! (In reply to comment #21) > I'm marking this as FIXED then, but I'm currently having other types of issues > with remote iCal so if this error pops up again, please let us know. Just wanted to suggest the same thing. Thank you for looking into this :) |