Multiple resources crashing when Akonadi Console is running

Krzysztof Nowicki krissn at op.pl
Wed Apr 2 12:24:01 BST 2025


Hi,

I have observed an avalanche of crashes in Akonadi resources after switching to latest master branch. The stack trace is always the same:

> Thread 1 "akonadi_ews_res" received signal SIGABRT, Aborted.
> 0x00007fffe8697cfc in ?? () from /usr/lib64/libc.so.6
> (gdb) bt
> #0  0x00007fffe8697cfc in ??? () at /usr/lib64/libc.so.6
> #1  0x00007fffe8640c26 in raise () at /usr/lib64/libc.so.6
> #2  0x00007fffe86288fa in abort () at /usr/lib64/libc.so.6
> #3  0x00007fffe8ad7daf in std::__glibcxx_assert_fail(char const*, int, char const*, char const*) () at /usr/lib/gcc/x86_64-pc-linux-gnu/14/libstdc++.so.6
> #4  0x00007ffff7a51d9f in std::span<Akonadi::Item, 18446744073709551615ul>::front (this=0x555556da6c60) at /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/span:270
> #5  0x00007ffff7a4e89b in Akonadi::ItemModifyJobPrivate::fullCommand (this=0x555556da6bf0) at /home/knowicki/workspace/akonadi-ews/akonadi/src/core/jobs/itemmodifyjob.cpp:169
> #6  0x00007ffff7a4e005 in Akonadi::ItemModifyJobPrivate::jobDebuggingString (this=0x555556da6bf0) at /home/knowicki/workspace/akonadi-ews/akonadi/src/core/jobs/itemmodifyjob.cpp:91
> #7  0x00007ffff7a5a3fe in Akonadi::JobPrivate::signalCreationToJobTracker (this=0x555556da6bf0) at /home/knowicki/workspace/akonadi-ews/akonadi/src/core/jobs/job.cpp:140
> #8  0x00007ffff7a5bf24 in Akonadi::Job::qt_static_metacall (_o=0x555556d9cb50, _c=QMetaObject::InvokeMetaMethod, _id=4, _a=0x555556d4ba08) at /home/knowicki/workspace/akonadi-ews/akonadi-build/src/core/KPim6AkonadiCore_autogen/include/moc_job.cpp:134
> #9  0x00007fffe90b12d0 in QObject::event(QEvent*) () at /usr/lib64/libQt6Core.so.6
> #10 0x00007fffeb561291 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt6Widgets.so.6
> #11 0x00007fffe9137ef8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib64/libQt6Core.so.6
> #12 0x00007fffe915bdc9 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib64/libQt6Core.so.6
> #13 0x00007fffe8ec96a7 in ??? () at /usr/lib64/libQt6Core.so.6
> #14 0x00007fffe827702a in ??? () at /usr/lib64/libglib-2.0.so.0
> #15 0x00007fffe82eb950 in ??? () at /usr/lib64/libglib-2.0.so.0
> #16 0x00007fffe8274042 in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
> #17 0x00007fffe8ec9833 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt6Core.so.6
> #18 0x00007fffe9160a7a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt6Core.so.6
> #19 0x00007fffe9160c30 in QCoreApplication::exec() () at /usr/lib64/libQt6Core.so.6
> #20 0x00007ffff7d57857 in Akonadi::AgentBase::init (r=...) at /home/knowicki/workspace/akonadi-ews/akonadi/src/agentbase/agentbase.cpp:856
> #21 0x00005555556be9f3 in Akonadi::ResourceWidgetBase::init<EwsResource> (argc=3, argv=0x7fffffffd328) at /usr/include/KPim6/AkonadiAgentWidgetBase/akonadi/resourcewidgetbase.h:66
> #22 0x00005555556b3d1d in main (argc=3, argv=0x7fffffffd328) at /home/knowicki/workspace/akonadi-ews/kdepim-runtime/resources/ews/ewsresource.cpp:1538

Everything works fine after I close Akonadi Console.

I suspect that this is a regression from this commit [1].

The job splitting introduced in this change doesn't take into account the use of jobDebuggingString(), which is faced with mRemainingItems being uninitialized. This method is most likely unused normally, but starts being used when Akonadi Console is monitoring the Akonadi server requests.

I don't feel competent enough to make a fix attempt myself.

Chris

[1] https://invent.kde.org/pim/akonadi/-/commit/616151f991096ffd3143ee749a70c1361646bca0

-- 





More information about the kde-pim mailing list