D14263: Don't attempt to clean up when the process is about to exit

Volker Krause noreply at phabricator.kde.org
Sat Jul 21 14:45:37 BST 2018


vkrause added a comment.


  In D14263#295602 <https://phabricator.kde.org/D14263#295602>, @dvratil wrote:
  
  > In this case, the session thread is destroyed from a slot connected to `QApplication::aboutToQuit()` signal (see `SessionPrivate` ctor), so I think just checking if `session->d->sessionThread()` returns a valid pointer in `ChangeNotificationDependenciesFactory` should do the job, without having the execution to actually enter a method with invalid `this` pointer.
  
  
  That doesn't seem to work, `this` isn't detectable as invalid at this point,
  
  #6  0x00000000000002a0 in  ()
  #7  0x00007f05e1ba0f43 in QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (obj=obj at entry=0x260e1c0, member=<optimized out>, member at entry=0x7f05e4f651e0 "doDestroyConnection", type=type at entry=Qt::BlockingQueuedConnection, ret=..., val0=..., val1=..., val2=..., val3=..., val4=..., val5=..., val6=..., val7=..., val8=..., val9=...) at /data2/k/qt5/src/qtbase/src/corelib/kernel/qmetaobject.cpp:1474
  #8  0x00007f05e4e61907 in QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (obj=obj at entry=0x260e1c0, member=member at entry=0x7f05e4f651e0 "doDestroyConnection", type=type at entry=Qt::BlockingQueuedConnection, val0=..., val1=..., val2=..., val3=..., val4=..., val5=..., val6=..., val7=..., val8=..., val9=...) at /k/qt5/inst/include/QtCore/qobjectdefs.h:444
  #9  0x00007f05e4ed36bf in Akonadi::SessionThread::destroyConnection(Akonadi::Connection*) (this=0x260e1c0, connection=<optimized out>) at /k/kde5/src/akonadi/src/core/sessionthread.cpp:85
  #10 0x00007f05e4eb02d7 in Akonadi::MonitorPrivate::~MonitorPrivate() (this=0x2523690, __in_chrg=<optimized out>) at /k/kde5/src/akonadi/src/core/monitor_p.cpp:66
  #11 0x00007f05e4eb03f9 in Akonadi::MonitorPrivate::~MonitorPrivate() (this=0x2523690, __in_chrg=<optimized out>) at /k/kde5/src/akonadi/src/core/monitor_p.cpp:64
  #12 0x00007f05e4ea3a46 in Akonadi::Monitor::~Monitor() (this=0x2561050, __in_chrg=<optimized out>) at /k/kde5/src/akonadi/src/core/monitor.cpp:61
  #13 0x00007f05e4ea3a59 in Akonadi::Monitor::~Monitor() (this=0x2561050, __in_chrg=<optimized out>) at /k/kde5/src/akonadi/src/core/monitor.cpp:57
  #14 0x00007f05e1bc172a in QObjectPrivate::deleteChildren() (this=this at entry=0x2600550) at /data2/k/qt5/src/qtbase/src/corelib/kernel/qobject.cpp:1997
  #15 0x00007f05e1bc2a9f in QObject::~QObject() (this=<optimized out>, __in_chrg=<optimized out>) at /data2/k/qt5/src/qtbase/src/corelib/kernel/qobject.cpp:1025
  #16 0x00007f05a6bdac39 in Akonadi::ETMCalendar::~ETMCalendar() (this=0x2550690, __in_chrg=<optimized out>) at /k/kde5/src/akonadi-calendar/src/etmcalendar.cpp:505

REPOSITORY
  R165 Akonadi

REVISION DETAIL
  https://phabricator.kde.org/D14263

To: vkrause, dvratil
Cc: dvratil, kde-pim, dvasin, rodsevich, winterz, vkrause, mlaurent, knauss
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-pim/attachments/20180721/6158d702/attachment.html>


More information about the kde-pim mailing list