Skip to content

Fix cases when the reply is null

Aleix Pol Gonzalez requested to merge work/fix-null-qnetworkreply into master

I get it sometimes when creating and deleting Icon instances quickly.

  • 0 0x00007f47e630d615 in raise () at /usr/lib/libc.so.6
  • 1 0x00007f47e8800046 in KCrash::defaultCrashHandler(int) (sig=11) at /home/apol/devel/frameworks/kcrash/src/kcrash.cpp:555
  • 2 0x00007f47e630d6a0 in () at /usr/lib/libc.so.6
  • 3 0x00007f47e74aec12 in QHash<QNetworkRequest::Attribute, QVariant>::value(QNetworkRequest::Attribute const&) const (akey=: , this=) at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/tools/qhash.h:653
  • 4 QNetworkReply::attribute(QNetworkRequest::Attribute) const (this=0x0, code=QNetworkRequest::RedirectionTargetAttribute) at /home/apol/devel/frameworks/qt5/qtbase/src/network/access/qnetworkreply.cpp:700
  • 5 0x00007f47dadd5ac8 in Icon::handleFinished(QNetworkReply*) (this=0x55764ed61930, reply=0x0) at /home/apol/devel/frameworks/kirigami/src/icon.cpp:237
  • 6 0x00007f47dadd9a75 in Icon::findIcon(QSize const&)::$_2::operator()() const (this=0x55764f397b10) at /home/apol/devel/frameworks/kirigami/src/icon.cpp:405
  • 7 0x00007f47dadd9a06 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, Icon::findIcon(QSize const&)::$_2>::call(Icon::findIcon(QSize const&)::$_2&, void**) (f=..., arg=0x7ffc55ed14a0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:146
  • 8 0x00007f47dadd99d1 in QtPrivate::Functor<Icon::findIcon(QSize const&)::$_2, 0>::call<QtPrivate::List<>, void>(Icon::findIcon(QSize const&)::$_2&, void*, void**) (f=..., arg=0x7ffc55ed14a0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:256
  • 9 0x00007f47dadd997c in QtPrivate::QFunctorSlotObject<Icon::findIcon(QSize const&)::$_2, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x55764f397b00, r=0x55764ed61930, a=0x7ffc55ed14a0, ret=0x0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:443
  • 10 0x00007f47e6aedb06 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffc55ed14a0, r=0x55764ed61930, this=0x55764f397b00) at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:398
  • 11 doActivate(QObject*, int, void**) (sender=0x55764fb86d60, signal_index=10, argv=0x7ffc55ed14a0) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3886
  • 12 0x00007f47e6ac5c93 in QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (this=, object=0x55764fb86d60, connectionType=Qt::DirectConnection, returnValue=..., val0=..., val1=..., val2=..., val3=..., val4=..., val5=..., val6=..., val7=..., val8=..., val9=...) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qmetaobject.cpp:2303
  • 13 0x00007f47e6ac75ca in QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (obj=0x55764fb86d60, member=0x7f47e8c9d572 "finished", type=Qt::AutoConnection, ret=..., val0=..., val1=..., val2=..., val3=..., val4=..., val5=..., val6=..., val7=..., val8=..., val9=...) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qmetaobject.cpp:1515
  • 14 0x00007f47e8bbc41f in QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (obj=0x55764fb86d60, member=0x7f47e8c9d572 "finished", type=Qt::AutoConnection, val0=..., val1=..., val2=..., val3=..., val4=..., val5=..., val6=..., val7=..., val8=..., val9=...) at /home/apol/devel/kde5/include/QtCore/qobjectdefs.h:444
  • 15 0x00007f47e8bbc011 in KDEPrivate::AccessManagerReply::emitFinished(bool, Qt::ConnectionType) (this=0x55764fb86d60, state=true, type=Qt::AutoConnection) at /home/apol/devel/frameworks/kio/src/widgets/accessmanagerreply_p.cpp:518
  • 16 0x00007f47e8bbb733 in KDEPrivate::AccessManagerReply::slotResult(KJob*) (this=0x55764fb86d60, kJob=0x55764f397180) at /home/apol/devel/frameworks/kio/src/widgets/accessmanagerreply_p.cpp:460
  • 17 0x00007f47e8bbd87d in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<KJob>, void, void (KDEPrivate::AccessManagerReply::)(KJob*)>::call(void (KDEPrivate::AccessManagerReply::)(KJob), KDEPrivate::AccessManagerReply*, void**) (f= (void (KDEPrivate::AccessManagerReply::*)(KDEPrivate::AccessManagerReply * const, KJob *)) 0x7f47e8bbb60c KDEPrivate::AccessManagerReply::slotResult(KJob*), o=0x55764fb86d60, arg=0x7ffc55ed1f60) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:152
  • 18 0x00007f47e8bbd72a in QtPrivate::FunctionPointer<void (KDEPrivate::AccessManagerReply::)(KJob)>::call<QtPrivate::List<KJob>, void>(void (KDEPrivate::AccessManagerReply::)(KJob*), KDEPrivate::AccessManagerReply*, void**) (f= (void (KDEPrivate::AccessManagerReply::*)(KDEPrivate::AccessManagerReply * const, KJob *)) 0x7f47e8bbb60c KDEPrivate::AccessManagerReply::slotResult(KJob*), o=0x55764fb86d60, arg=0x7ffc55ed1f60) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:185
  • 19 0x00007f47e8bbd650 in QtPrivate::QSlotObject<void (KDEPrivate::AccessManagerReply::)(KJob), QtPrivate::List<KJob>, void>::impl(int, QtPrivate::QSlotObjectBase, QObject*, void**, bool*) (which=1, this_=0x55764f397a50, r=0x55764fb86d60, a=0x7ffc55ed1f60, ret=0x0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:418
  • 20 0x00007f47e6aedb06 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffc55ed1f60, r=0x55764fb86d60, this=0x55764f397a50) at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:398
  • 21 doActivate(QObject*, int, void**) (sender=0x55764f397180, signal_index=6, argv=0x7ffc55ed1f60) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3886
  • 22 0x00007f47e7a9248a in KJob::result(KJob*, KJob::QPrivateSignal) (this=0x55764f397180, _t1=0x55764f397180, _t2=...) at src/lib/KF5CoreAddons_autogen/include/moc_kjob.cpp:576
  • 23 0x00007f47e7a9038d in KJob::finishJob(bool) (this=0x55764f397180, emitResult=true) at /home/apol/devel/frameworks/kcoreaddons/src/lib/jobs/kjob.cpp:93
  • 24 0x00007f47e7a90aca in KJob::emitResult() (this=0x55764f397180) at /home/apol/devel/frameworks/kcoreaddons/src/lib/jobs/kjob.cpp:291
  • 25 0x00007f47e88e3204 in KIO::SimpleJob::slotFinished() (this=0x55764f397180) at /home/apol/devel/frameworks/kio/src/core/simplejob.cpp:220
  • 26 0x00007f47e88ee526 in KIO::TransferJob::slotFinished() (this=0x55764f397180) at /home/apol/devel/frameworks/kio/src/core/transferjob.cpp:159
  • 27 0x00007f47e88e6088 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (KIO::SimpleJob::)()>::call(void (KIO::SimpleJob::)(), KIO::SimpleJob*, void**) (f=&virtual KIO::SimpleJob::slotFinished(), o=0x55764f397180, arg=0x7ffc55ed22a0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:152
  • 28 0x00007f47e88e5de0 in QtPrivate::FunctionPointer<void (KIO::SimpleJob::)()>::call<QtPrivate::List<>, void>(void (KIO::SimpleJob::)(), KIO::SimpleJob*, void**) (f=&virtual KIO::SimpleJob::slotFinished(), o=0x55764f397180, arg=0x7ffc55ed22a0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:185
  • 29 0x00007f47e88e5c7c in QtPrivate::QSlotObject<void (KIO::SimpleJob::)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase, QObject*, void**, bool*) (which=1, this_=0x55764fcd01e0, r=0x55764f397180, a=0x7ffc55ed22a0, ret=0x0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:418
  • 30 0x00007f47e6aedb06 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffc55ed22a0, r=0x55764f397180, this=0x55764fcd01e0) at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:398
  • 31 doActivate(QObject*, int, void**) (sender=0x7f478c0e39b0, signal_index=7, argv=0x7ffc55ed22a0) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3886
  • 32 0x00007f47e88c5cf1 in KIO::SlaveInterface::finished() (this=0x7f478c0e39b0) at src/core/KF5KIOCore_autogen/include/moc_slaveinterface.cpp:464
  • 33 0x00007f47e88c3600 in KIO::SlaveInterface::dispatch(int, QByteArray const&) (this=0x7f478c0e39b0, _cmd=104, rawdata=...) at /home/apol/devel/frameworks/kio/src/core/slaveinterface.cpp:149
  • 34 0x00007f47e88c3207 in KIO::SlaveInterface::dispatch() (this=0x7f478c0e39b0) at /home/apol/devel/frameworks/kio/src/core/slaveinterface.cpp:78
  • 35 0x00007f47e88c832e in KIO::Slave::gotInput() (this=0x7f478c0e39b0) at /home/apol/devel/frameworks/kio/src/core/slave.cpp:402
  • 36 0x00007f47e88caf1a in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (KIO::Slave::)()>::call(void (KIO::Slave::)(), KIO::Slave*, void**) (f=(void (KIO::Slave::*)(KIO::Slave * const)) 0x7f47e88c82cc KIO::Slave::gotInput(), o=0x7f478c0e39b0, arg=0x7ffc55ed2620) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:152
  • 37 0x00007f47e88cadf1 in QtPrivate::FunctionPointer<void (KIO::Slave::)()>::call<QtPrivate::List<>, void>(void (KIO::Slave::)(), KIO::Slave*, void**) (f=(void (KIO::Slave::*)(KIO::Slave * const)) 0x7f47e88c82cc KIO::Slave::gotInput(), o=0x7f478c0e39b0, arg=0x7ffc55ed2620) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:185
  • 38 0x00007f47e88cabf2 in QtPrivate::QSlotObject<void (KIO::Slave::)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase, QObject*, void**, bool*) (which=1, this_=0x55764f38d6a0, r=0x7f478c0e39b0, a=0x7ffc55ed2620, ret=0x0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:418
  • 39 0x00007f47e6aedb06 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffc55ed2620, r=0x7f478c0e39b0, this=0x55764f38d6a0) at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:398
  • 40 doActivate(QObject*, int, void**) (sender=0x55764e87ef10, signal_index=3, argv=0x7ffc55ed2620) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3886
  • 41 0x00007f47e885c803 in KIO::Connection::readyRead() (this=0x55764e87ef10) at src/core/KF5KIOCore_autogen/include/moc_connection_p.cpp:148
  • 42 0x00007f47e885b51c in KIO::ConnectionPrivate::dequeue() (this=0x55764f539280) at /home/apol/devel/frameworks/kio/src/core/connection.cpp:32
  • 43 0x00007f47e885c616 in KIO::Connection::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x55764e87ef10, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0x55764f6bd408) at src/core/KF5KIOCore_autogen/include/moc_connection_p.cpp:88
  • 44 0x00007f47e6ae3551 in QObject::event(QEvent*) (this=0x55764e87ef10, e=0x55764f6bd3c0) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:1314
  • 45 0x00007f47e7c8614f in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=, receiver=0x55764e87ef10, e=0x55764f6bd3c0) at /home/apol/devel/frameworks/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3630
  • 46 0x00007f47e6ab752a in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55764e87ef10, event=0x55764f6bd3c0) at ../../include/QtCore/5.15.1/QtCore/private/../../../../../../../../devel/frameworks/qt5/qtbase/src/corelib/thread/qthread_p.h:325
  • 47 0x00007f47e6ab9f61 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0x55764dd2c880) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1817
  • 48 0x00007f47e6b0f3f3 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x55764dd561f0) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:277
  • 49 0x00007f47e36e6bfc in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
  • 50 0x00007f47e37381f9 in () at /usr/lib/libglib-2.0.so.0
  • 51 0x00007f47e36e5421 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
  • 52 0x00007f47e6b0ea7f in QEventDispatcherGlib::processEvents(QFlagsQEventLoop::ProcessEventsFlag) (this=0x55764dd6c3a0, flags=...) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:423
  • 53 0x00007f47e6ab5eeb in QEventLoop::exec(QFlagsQEventLoop::ProcessEventsFlag) (this=this@entry=0x7ffc55ed2ac0, flags=..., flags@entry=...) at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/global/qflags.h:141
  • 54 0x00007f47e6abe160 in QCoreApplication::exec() () at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/global/qflags.h:121
  • 55 0x000055764bda36fc in main(int, char**) (argc=5, argv=0x7ffc55ed3208) at /home/apol/devel/frameworks/discover/discover/main.cpp:171

Merge request reports