https://bugs.kde.org/show_bug.cgi?id=467434
Bug ID: 467434 Summary: NeoChat crashes and accounts are deleted from config when server is unreachable on startup Classification: Applications Product: NeoChat Version: unspecified Platform: Compiled Sources OS: Linux Status: REPORTED Keywords: drkonqi Severity: crash Priority: NOR Component: General Assignee: fe...@posteo.de Reporter: kw...@redhat.com CC: c...@carlschwan.eu Target Milestone: --- Application: neochat (23.03.70) (Compiled from sources) Qt Version: 5.15.8 Frameworks Version: 5.103.0 Operating System: Linux 6.1.15-200.fc37.x86_64 x86_64 Windowing System: X11 Distribution: Fedora Linux 37 (Thirty Seven) DrKonqi: 5.27.2 [KCrashBackend] -- Information about the crash: I have two accounts configured in NeoChat: My public matrix.org account, and an account on a company internal home server that is only reachable through VPN. When I first encountered a probably related problem yesterday, KDE session restore started NeoChat before I had connected to the VPN, and today I reproduced this scenario intentionally manually (a few times to be sure). The result is that the server name doesn't resolve, and apparently NeoChat doesn't handle this error condition well at all. After displaying "Loading..." for a while, it doesn't only crash, but afterwards both accounts are deleted from ~/.config/KDE/neochat.conf! Note that at this point, it had already successfully connected to the matrix.org account. However, the unreachable server is stored as ActiveConnection in ~/.config/neochatrc. These are the last few log messages: quotient.jobs: Sent GET https://matrix-client.matrix.org/_matrix/client/v3/notifications quotient.jobs.sync: Sent GET https://matrix-client.matrix.org/_matrix/client/r0/sync quotient.jobs.sync: "SyncJob-2" destroyed quotient.jobs: 200 <- GET https://matrix-client.matrix.org/_matrix/client/v3/notifications quotient.jobs: "GetNotificationsJob" destroyed quotient.jobs: Retrying "GetTokenOwnerJob" quotient.jobs: Sent GET https://<redacted>/_matrix/client/v3/account/whoami quotient.jobs: No valid HTTP headers from GET https://<redacted>/_matrix/client/v3/account/whoami quotient.jobs: Error body (truncated if long): quotient.jobs: "GetTokenOwnerJob" status NetworkError: Host <redacted> not found Qt Quick Layouts: Detected recursive rearrange. Aborting after two iterations. Qt Quick Layouts: Detected recursive rearrange. Aborting after two iterations. ASSERT: "Controller::instance().activeConnection()" in file /home/kwolf/source/kde/neochat/src/roommanager.cpp, line 87 KCrash: Application 'neochat' crashing... The behaviour looks different when the reachable server is the ActiveConnection. Then I already get to the normal view for the matrix.org account and can read rooms etc. while it's still trying to connect to the unreachable server. Once it finally fails, the room list goes away and the "Join some rooms to get started" message is displayed instead. Scrolling a bit in the still active room crashes in LinkPreviewer::setUrl() because Controller::instance().activeConnection() returns a nullptr now. I can submit a separate bug report for this if necessary. The crash can be reproduced every time. -- Backtrace: Application: NeoChat (neochat), signal: Aborted [KCrash Handler] #4 0x00007fa4c6aafe5c in __pthread_kill_implementation () at /lib64/libc.so.6 #5 0x00007fa4c6a5fa76 in raise () at /lib64/libc.so.6 #6 0x00007fa4c6a497fc in abort () at /lib64/libc.so.6 #7 0x00007fa4c70b14e5 in qt_message_output(QtMsgType, QMessageLogContext const&, QString const&) [clone .cold] () at /lib64/libQt5Core.so.5 #8 0x00007fa4c70b0828 in qt_assert_x(char const*, char const*, char const*, int) () at /lib64/libQt5Core.so.5 #9 0x0000000000615432 in RoomManager::loadInitialRoom() (this=0x8966a0 <RoomManager::instance()::_instance>) at /home/kwolf/source/kde/neochat/src/roommanager.cpp:87 #10 0x000000000046802e in RoomManager::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x8966a0 <RoomManager::instance()::_instance>, _c=QMetaObject::InvokeMetaMethod, _id=10, _a=0x7fff8bee7ad0) at /home/kwolf/source/kde/neochat/build/src/neochat_autogen/EWIEGA46WW/moc_roommanager.cpp:177 #11 0x0000000000468a89 in RoomManager::qt_metacall(QMetaObject::Call, int, void**) (this=0x8966a0 <RoomManager::instance()::_instance>, _c=QMetaObject::InvokeMetaMethod, _id=10, _a=0x7fff8bee7ad0) at /home/kwolf/source/kde/neochat/build/src/neochat_autogen/EWIEGA46WW/moc_roommanager.cpp:380 #12 0x00007fa4c9ce96e3 in QQmlObjectOrGadget::metacall(QMetaObject::Call, int, void**) const () at /lib64/libQt5Qml.so.5 #13 0x00007fa4c9bc06ad in CallPrecise(QQmlObjectOrGadget const&, QQmlPropertyData const&, QV4::ExecutionEngine*, QV4::CallData*, QMetaObject::Call) () at /lib64/libQt5Qml.so.5 #14 0x00007fa4c9bc3a60 in QV4::QObjectMethod::callInternal(QV4::Value const*, QV4::Value const*, int) const () at /lib64/libQt5Qml.so.5 #15 0x00007fa4c9be0a5d in QV4::Moth::VME::interpret(QV4::CppStackFrame*, QV4::ExecutionEngine*, char const*) () at /lib64/libQt5Qml.so.5 #16 0x00007fa4c9be41c7 in QV4::Moth::VME::exec(QV4::CppStackFrame*, QV4::ExecutionEngine*) () at /lib64/libQt5Qml.so.5 #17 0x00007fa4c9b75636 in QV4::Function::call(QV4::Value const*, QV4::Value const*, int, QV4::ExecutionContext const*) () at /lib64/libQt5Qml.so.5 #18 0x00007fa4c9d04161 in QQmlJavaScriptExpression::evaluate(QV4::CallData*, bool*) () at /lib64/libQt5Qml.so.5 #19 0x00007fa4c9cb4aff in QQmlBoundSignalExpression::evaluate(void**) () at /lib64/libQt5Qml.so.5 #20 0x00007fa4c9cb6288 in QQmlBoundSignal_callback(QQmlNotifierEndpoint*, void**) () at /lib64/libQt5Qml.so.5 #21 0x00007fa4c9ce91af in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) () at /lib64/libQt5Qml.so.5 #22 0x00007fa4c72d0b70 in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt5Core.so.5 #23 0x000000000045addb in Controller::initiated() (this=0x895ee0 <Controller::instance()::_instance>) at /home/kwolf/source/kde/neochat/build/src/neochat_autogen/EWIEGA46WW/moc_controller.cpp:687 #24 0x000000000047153d in operator()(QString const&, QString const&) const (__closure=0x27aca00, error=...) at /home/kwolf/source/kde/neochat/src/controller.cpp:389 #25 0x0000000000477df6 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1>, QtPrivate::List<QString, QString>, void, Controller::invokeLogin()::<lambda(QKeychain::Job*)>::<lambda(const QString&, const QString&)> >::call(struct {...} &, void **) (f=..., arg=0x7fff8bee9e10) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:146 #26 0x000000000047785d in QtPrivate::Functor<Controller::invokeLogin()::<lambda(QKeychain::Job*)>::<lambda(const QString&, const QString&)>, 2>::call<QtPrivate::List<QString, QString>, void>(struct {...} &, void *, void **) (f=..., arg=0x7fff8bee9e10) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:256 #27 0x0000000000476d08 in QtPrivate::QFunctorSlotObject<Controller::invokeLogin()::<lambda(QKeychain::Job*)>::<lambda(const QString&, const QString&)>, 2, QtPrivate::List<QString, QString>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=1, this_=0x27ac9f0, r=0x895ee0 <Controller::instance()::_instance>, a=0x7fff8bee9e10, ret=0x0) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:443 #28 0x00007fa4c72d0e96 in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt5Core.so.5 #29 0x00007fa4c98c894e in Quotient::Connection::loginError(QString, QString) (this=<optimized out>, _t1=..., _t2=...) at /usr/src/debug/libquotient-0.7.1-2.fc37.x86_64/redhat-linux-build/Quotient_autogen/include/moc_connection.cpp:1247 #30 0x00007fa4c98f1aeb in operator() (__closure=<optimized out>) at /usr/src/debug/libquotient-0.7.1-2.fc37.x86_64/lib/connection.cpp:561 #31 QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, Quotient::Connection::assumeIdentity(const QString&, const QString&, const QString&)::<lambda()>::<lambda()> >::call (arg=<optimized out>, f=<optimized out>) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:146 #32 QtPrivate::Functor<Quotient::Connection::assumeIdentity(const QString&, const QString&, const QString&)::<lambda()>::<lambda()>, 0>::call<QtPrivate::List<>, void> (arg=<optimized out>, f=<optimized out>) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:256 #33 QtPrivate::QFunctorSlotObject<Quotient::Connection::assumeIdentity(const QString&, const QString&, const QString&)::<lambda()>::<lambda()>, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=<optimized out>, this_=<optimized out>, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:443 #34 0x00007fa4c72d0e96 in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt5Core.so.5 #35 0x00007fa4c98bf836 in Quotient::BaseJob::failure(Quotient::BaseJob*) (this=<optimized out>, _t1=<optimized out>) at /usr/src/debug/libquotient-0.7.1-2.fc37.x86_64/redhat-linux-build/Quotient_autogen/3INUWTIJ2C/moc_basejob.cpp:549 #36 0x00007fa4c99548dd in Quotient::BaseJob::finishJob() (this=0x26b5970) at /usr/src/debug/libquotient-0.7.1-2.fc37.x86_64/lib/jobs/basejob.cpp:631 #37 0x00007fa4c72d0e96 in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt5Core.so.5 #38 0x00007fa4c8c632d8 in QNetworkReplyHttpImplPrivate::finished() () at /lib64/libQt5Network.so.5 #39 0x00007fa4c72c8134 in QObject::event(QEvent*) () at /lib64/libQt5Core.so.5 #40 0x00007fa4c7faed62 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5 #41 0x00007fa4c729d4e8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt5Core.so.5 #42 0x00007fa4c72a0854 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /lib64/libQt5Core.so.5 #43 0x00007fa4c72eeb07 in postEventSourceDispatch(_GSource*, int (*)(void*), void*) () at /lib64/libQt5Core.so.5 #44 0x00007fa4c6938c7f in g_main_context_dispatch () at /lib64/libglib-2.0.so.0 #45 0x00007fa4c698f118 in g_main_context_iterate.constprop () at /lib64/libglib-2.0.so.0 #46 0x00007fa4c6935f00 in g_main_context_iteration () at /lib64/libglib-2.0.so.0 #47 0x00007fa4c72ee5fa in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5 #48 0x00007fa4c729bf3a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5 #49 0x00007fa4c72a4002 in QCoreApplication::exec() () at /lib64/libQt5Core.so.5 #50 0x0000000000434ef5 in main(int, char**) (argc=1, argv=0x7fff8beeab98) at /home/kwolf/source/kde/neochat/src/main.cpp:336 [Inferior 1 (process 5314) detached] Reported using DrKonqi -- You are receiving this mail because: You are watching all bug changes.