[Akonadi] Add test to verify Session crash during quick subsequent restarts of Server
Open, Needs TriagePublic

Description

Millian reported a weird crash in Session, is most probably due to null-ptr somewhere. I fixed some parts of it, but there still can be a problem if the server crashes twice in a row very quickly, as everything in the session is async...

#6  0x0000000000000000 in ?? ()
#7  0x00007f9d768a05b9 in QObject::disconnect(QObject const*, char const*, QObject const*, char const*) () from /usr/lib/libQt5Core.so.5
#8  0x00007f9d78f1187f in QObject::disconnect (this=0x7f9d50002f00, receiver=0x1e53a30, member=0x0) at /usr/include/qt/QtCore/qobject.h:361
#9  0x00007f9d78f0f654 in Akonadi::ConnectionThread::quit (this=0x1e53a30) at /home/milian/projects/kf5/src/kde/kdepimlibs/akonadi/src/core/connectionthread.cpp:75
#10 0x00007f9d78f8694d in Akonadi::SessionPrivate::~SessionPrivate (this=0x1e534d0, __in_chrg=<optimized out>) at /home/milian/projects/kf5/src/kde/kdepimlibs/akonadi/src/core/session.cpp:288
#11 0x00007f9d78f6234c in Akonadi::NotificationBusPrivate::~NotificationBusPrivate (this=0x1e534c0, __in_chrg=<optimized out>) at /home/milian/projects/kf5/src/kde/kdepimlibs/akonadi/src/core/notificationbus_p.cpp:38
#12 0x00007f9d78f6238e in Akonadi::NotificationBusPrivate::~NotificationBusPrivate (this=0x1e534c0, __in_chrg=<optimized out>) at /home/milian/projects/kf5/src/kde/kdepimlibs/akonadi/src/core/notificationbus_p.cpp:40
#13 0x00007f9d78f8728c in Akonadi::Session::~Session (this=0x1e3a580, __in_chrg=<optimized out>) at /home/milian/projects/kf5/src/kde/kdepimlibs/akonadi/src/core/session.cpp:366
#14 0x00007f9d78f872c8 in Akonadi::Session::~Session (this=0x1e3a580, __in_chrg=<optimized out>) at /home/milian/projects/kf5/src/kde/kdepimlibs/akonadi/src/core/session.cpp:367
#15 0x00007f9d78f518a7 in Akonadi::MonitorPrivate::connectToNotificationManager (this=0x1e52360) at /home/milian/projects/kf5/src/kde/kdepimlibs/akonadi/src/core/monitor_p.cpp:102
#16 0x00007f9d78f519db in Akonadi::MonitorPrivate::serverStateChanged (this=0x1e52360, state=Akonadi::ServerManager::Running) at /home/milian/projects/kf5/src/kde/kdepimlibs/akonadi/src/core/monitor_p.cpp:119
#17 0x00007f9d78f493ce in Akonadi::Monitor::qt_static_metacall (_o=0x1e51db0, _c=QMetaObject::InvokeMetaMethod, _id=38, _a=0x7ffee1c426a0) at /ssd/milian/projects/kf5/build-dbg/kde/kdepimlibs/akonadi/src/core/moc_monitor.cpp:305
#18 0x00007f9d7689bfea in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQt5Core.so.5
#19 0x00007f9d78f84496 in Akonadi::ServerManager::stateChanged (this=0x1e5adc0, _t1=Akonadi::ServerManager::Running) at /ssd/milian/projects/kf5/build-dbg/kde/kdepimlibs/akonadi/src/core/moc_servermanager.cpp:188
#20 0x00007f9d78f84925 in Akonadi::ServerManagerPrivate::setState (this=0x7f9d79106d20 <(anonymous namespace)::Q_QGS_sInstance::innerFunction()::holder>, state=Akonadi::ServerManager::Running) at /home/milian/projects/kf5/src/kde/kdepimlibs/akonadi/src/core/servermanager.cpp:94
#21 0x00007f9d78f848c7 in Akonadi::ServerManagerPrivate::checkStatusChanged (this=0x7f9d79106d20 <(anonymous namespace)::Q_QGS_sInstance::innerFunction()::holder>) at /home/milian/projects/kf5/src/kde/kdepimlibs/akonadi/src/core/servermanager.cpp:86
#22 0x00007f9d78f84879 in Akonadi::ServerManagerPrivate::serviceOwnerChanged (this=0x7f9d79106d20 <(anonymous namespace)::Q_QGS_sInstance::innerFunction()::holder>, name=..., oldOwner=..., newOwner=...) at /home/milian/projects/kf5/src/kde/kdepimlibs/akonadi/src/core/servermanager.cpp:81
#23 0x00007f9d78f84180 in Akonadi::ServerManager::qt_static_metacall (_o=0x1e5adc0, _c=QMetaObject::InvokeMetaMethod, _id=3, _a=0x1edf550) at /ssd/milian/projects/kf5/build-dbg/kde/kdepimlibs/akonadi/src/core/moc_servermanager.cpp:96
#24 0x00007f9d7689ceb1 in QObject::event(QEvent*) () from /usr/lib/libQt5Core.so.5
#25 0x00007f9d778df00c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#26 0x00007f9d778e44e6 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#27 0x00007f9d7686d89b in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#28 0x00007f9d7686fc96 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQt5Core.so.5
#29 0x00007f9d768c3e33 in ?? () from /usr/lib/libQt5Core.so.5
#30 0x00007f9d7215d9fd in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#31 0x00007f9d7215dce0 in ?? () from /usr/lib/libglib-2.0.so.0
#32 0x00007f9d7215dd8c in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#33 0x00007f9d768c423f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#34 0x00007f9d7686b26a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#35 0x00007f9d7687320c in QCoreApplication::exec() () from /usr/lib/libQt5Core.so.5
#36 0x00007f9d792e47de in Akonadi::ResourceBase::init (r=0x1e3a230) at /home/milian/projects/kf5/src/kde/kdepimlibs/akonadi/src/agentbase/resourcebase.cpp:603
#37 0x000000000043ce68 in Akonadi::ResourceBase::init<AkonotesResource> (argc=3, argv=0x7ffee1c43008) at /ssd/milian/projects/compiled/kf5/include/KF5/AkonadiAgentBase/resourcebase.h:196
#38 0x000000000043cd77 in main (argc=3, argv=0x7ffee1c43008) at /home/milian/projects/kf5/src/kde/kdepim-runtime/resources/akonotes/akonotesresource.cpp:49
dvratil created this task.Sep 2 2015, 9:50 AM
dvratil updated the task description. (Show Details)
dvratil raised the priority of this task from to Needs Triage.
dvratil added a project: KDE PIM.
dvratil moved this task to Backlog on the KDE PIM board.
dvratil added a subscriber: dvratil.
dkurz added a subscriber: dkurz.Oct 31 2018, 6:29 PM