Skip to content

Revert "Delete networkAccessManagerFactory when we delete the engine"

David Faure requested to merge work/dfaure/fix_crash into master

This reverts commit 0943bbf5.

This was crashing on plasmashell startup
 #0  0x0000000001bd9e8b in ?? ()
 #1  0x00007ffff7bb5cc2 in KDeclarative::KDeclarative::~KDeclarative (this=0xc2d1a0, __in_chrg=<optimized out>) at /d/kde/src/5/frameworks/kdeclarative/src/kdeclarative/kdeclarative.cpp:37
 #2  0x00007ffff7bb8abe in KDeclarative::QmlObjectPrivate::~QmlObjectPrivate (this=0xc2d160, __in_chrg=<optimized out>) at /d/kde/src/5/frameworks/kdeclarative/src/kdeclarative/qmlobject.cpp:61
 #3  KDeclarative::QmlObject::~QmlObject (this=0xc2fb40, __in_chrg=<optimized out>) at /d/kde/src/5/frameworks/kdeclarative/src/kdeclarative/qmlobject.cpp:190
 #4  0x00007ffff7bb96e9 in KDeclarative::QmlObjectSharedEngine::~QmlObjectSharedEngine (this=0xc2fb40, __in_chrg=<optimized out>) at /d/kde/src/5/frameworks/kdeclarative/src/kdeclarative/qmlobjectsharedengine.cpp:63
 #5  0x00007ffff48cecf3 in qDeleteInEventHandler (o=0xc2fb40) at /d/qt/5/kde/qtbase/src/corelib/kernel/qobject.cpp:4815

valgrind says

==21322== Invalid read of size 8
==21322==    at 0x4C5DCBC: KDeclarative::KDeclarative::~KDeclarative() (kdeclarative.cpp:37)
==21322==    by 0x4C60ABD: ~QmlObjectPrivate (qmlobject.cpp:61)
==21322==    by 0x4C60ABD: KDeclarative::QmlObject::~QmlObject() (qmlobject.cpp:190)
==21322==    by 0x4C616E8: KDeclarative::QmlObjectSharedEngine::~QmlObjectSharedEngine() (qmlobjectsharedengine.cpp:63)
==21322==    by 0x7F28CF2: qDeleteInEventHandler(QObject*) (qobject.cpp:4815)
==21322==    by 0x7F2047C: QObject::event(QEvent*) (qobject.cpp:1301)
==21322==    by 0x6563B62: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:3632)
==21322==    by 0x6560F4C: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:2972)
==21322==    by 0x7EDCC9B: QCoreApplication::notifyInternal2(QObject*, QEvent*) (qcoreapplication.cpp:1064)
==21322==    by 0x7EDD663: QCoreApplication::sendEvent(QObject*, QEvent*) (qcoreapplication.cpp:1462)
==21322==    by 0x7EDE348: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (qcoreapplication.cpp:1821)
==21322==    by 0x7EDDCE9: QCoreApplication::sendPostedEvents(QObject*, int) (qcoreapplication.cpp:1680)
==21322==    by 0x7F6C3FD: postEventSourceDispatch(_GSource*, int (*)(void*), void*) (qeventdispatcher_glib.cpp:277)
==21322==    by 0x9739D5E: g_main_dispatch (gmain.c:3381)
==21322==    by 0x9739D5E: g_main_context_dispatch (gmain.c:4099)
==21322==    by 0x973A0E7: g_main_context_iterate.constprop.0 (gmain.c:4175)
==21322==    by 0x973A19E: g_main_context_iteration (gmain.c:4240)
==21322==    by 0x7F6CB39: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventdispatcher_glib.cpp:423)
==21322==    by 0xC956265: QXcbGlibEventDispatcher::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qxcbeventdispatcher.cpp:143)
==21322==    by 0x7ED962A: QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:139)
==21322==    by 0x7ED9934: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:232)
==21322==    by 0x7EDD4B3: QCoreApplication::exec() (qcoreapplication.cpp:1375)
==21322==    by 0x748D7E7: QGuiApplication::exec() (qguiapplication.cpp:1867)
==21322==    by 0x6560948: QApplication::exec() (qapplication.cpp:2824)
==21322==    by 0x4241F4: main (main.cpp:238)
==21322==  Address 0xd8f7cc0 is 0 bytes inside an unallocated block of size 16 in arena "client"
Edited by David Faure

Merge request reports