Akonadi server reproducibly eats 10+ GB of memory

Szőts Ákos szotsaki at gmail.com
Thu Nov 1 12:41:18 GMT 2018


Dear list members,

A memory leak is present in akonadi-server 18.08.2: whenever KMail rechecks 
all folders of my Google IMAP account, memory just grows but never shrinks.

I' ve created a heaptrack summary of the leak which shows that after ~10 
minutes server starts eating memory. Last time it went up to 12 GB when I 
stopped it.

You can reach the pictures showing the memory occupation (in this case with 2 
GB) and backtrace as well as the whole heaptrack file here:
https://mega.nz/#F!RQ4iBSRT!DmHq4qoDKpuVyewuAmazsA

Load it with heaptrack_gui <filename>.

One of the backtraces:

QArrayData::allocate(unsigned long, unsigned long, unsigned long, 
QFlags<QArrayData::AllocationOption>) in qarraydata.cpp:118 (libQt5Core.so.5)
QTypedArrayData<unsigned short>::allocate(unsigned long, 
QFlags<QArrayData::AllocationOption>) in qarraydata.h:222 (libQt5Core.so.5)
QString::reallocData(unsigned int, bool) in qstring.cpp:2147 (libQt5Core.so.5)
Akonadi::Server::QueryBuilder::exec() in qstring.h:1135 (akonadiserver)
Akonadi::Server::PimItem::flags() const in entities.cpp:4787 (akonadiserver)
Akonadi::Server::DataStore::setItemsFlags(QVector<Akonadi::Server::PimItem> 
const&, QVector<Akonadi::Server::Flag> const&, bool*, 
Akonadi::Server::Collection const&, bool) in datastore.cpp:260 (akonadiserver)
Akonadi::Server::AkAppend::mergeItem(Akonadi::Protocol::CreateItemCommand 
const&, Akonadi::Server::PimItem&, Akonadi::Server::PimItem&, 
Akonadi::Server::Collection const&) in akappend.cpp:218 (akonadiserver)
Akonadi::Server::AkAppend::parseStream() in akappend.cpp:431 (akonadiserver)
Akonadi::Server::Connection::handleIncomingData() in connection.cpp:287 
(akonadiserver)
QtPrivate::QSlotObjectBase::call(QObject*, void**) in qobjectdefs_impl.h:376 
(libQt5Core.so.5)
QSingleShotTimer::timerEvent(QTimerEvent*) in qtimer.cpp:318 (libQt5Core.so.5)
QObject::event(QEvent*) in qobject.cpp:1273 (libQt5Core.so.5)
doNotify in qcoreapplication.cpp:1138 (libQt5Core.so.5)
QCoreApplication::notify(QObject*, QEvent*) in qcoreapplication.cpp:1124 
(libQt5Core.so.5)
QCoreApplication::notifyInternal2(QObject*, QEvent*) in qcoreapplication.cpp:
1048 (libQt5Core.so.5)
QCoreApplication::sendEvent(QObject*, QEvent*) in qcoreapplication.h:234 
(libQt5Core.so.5)
QTimerInfoList::activateTimers() in qtimerinfo_unix.cpp:643 (libQt5Core.so.5)
timerSourceDispatch in qeventdispatcher_glib.cpp:182 (libQt5Core.so.5)
g_main_dispatch in gmain.c:3176 (libglib-2.0.so.0)
g_main_context_dispatch in gmain.c:3829 (libglib-2.0.so.0)
g_main_context_iterate in gmain.c:3902 (libglib-2.0.so.0)
g_main_context_iteration in gmain.c:3963 (libglib-2.0.so.0)
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) in 
qeventdispatcher_glib.cpp:422 (libQt5Core.so.5)
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) in qeventloop.cpp:214 
(libQt5Core.so.5)
QThread::exec() in qthread.cpp:525 (libQt5Core.so.5)
QThreadPrivate::start(void*) in qthread_unix.cpp:367 (libQt5Core.so.5)
start_thread in pthread_create.c:463 (libpthread.so.0)
__GI___clone in clone.S:95 (libc.so.6)

All the best,

Ákos
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kdepim-users/attachments/20181101/d4a625aa/attachment.sig>


More information about the kdepim-users mailing list