Application: tokodon (23.08.1) Qt Version: 5.15.10 Frameworks Version: 5.109.0 Operating System: Linux 6.5.5-301.fc39.x86_64 x86_64 Windowing System: Wayland Distribution: Fedora Linux 39 (KDE Plasma Prerelease) DrKonqi: 5.27.8 [KCrashBackend] -- Information about the crash: When I attempt to accept a follow request, the application immediately crashes. The follow request acceptance seems to go through, regardless. The crash can be reproduced every time. -- Backtrace: Application: Tokodon (tokodon), signal: Segmentation fault [KCrash Handler] #4 0x000055fa824b3d45 in QString::QString (other=..., this=<optimized out>, this=<optimized out>, other=...) at /usr/include/qt5/QtCore/qstring.h:1093 #5 Post::content (this=0x0) at /usr/src/debug/tokodon-23.08.1-1.fc39.x86_64/src/timeline/post.cpp:436 #6 NotificationHandler::handle (this=0x55fa831b1fa0, notification=std::shared_ptr<Notification> (use count 4, weak count 0) = {...}, account=0x55fa831ebd40) at /usr/src/debug/tokodon-23.08.1-1.fc39.x86_64/src/account/notificationhandler.cpp:46 #7 0x000055fa824a5f4c in operator() (__closure=<optimized out>, notification=...) at /usr/src/debug/tokodon-23.08.1-1.fc39.x86_64/src/account/account.cpp:43 #8 QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<std::shared_ptr<Notification> >, void, Account::Account(const AccountConfig&, QNetworkAccessManager*, QObject*)::<lambda(std::shared_ptr<Notification>)> >::call (arg=<optimized out>, f=...) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:146 #9 QtPrivate::Functor<Account::Account(const AccountConfig&, QNetworkAccessManager*, QObject*)::<lambda(std::shared_ptr<Notification>)>, 1>::call<QtPrivate::List<std::shared_ptr<Notification> >, void> (arg=<optimized out>, f=...) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:256 #10 QtPrivate::QFunctorSlotObject<Account::Account(const AccountConfig&, QNetworkAccessManager*, QObject*)::<lambda(std::shared_ptr<Notification>)>, 1, QtPrivate::List<std::shared_ptr<Notification> >, 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 #11 0x00007f97cdae84f1 in void doActivate<false>(QObject*, int, void**) () from /lib64/libQt5Core.so.5 #12 0x000055fa824e7eec in AbstractAccount::notification (_t1=std::shared_ptr<Notification> (use count 4, weak count 0) = {...}, this=0x55fa831ebd40) at /usr/src/debug/tokodon-23.08.1-1.fc39.x86_64/redhat-linux-build/src/tokodon_static_autogen/GJU2H5Y2LV/moc_abstractaccount.cpp:596 #13 AbstractAccount::handleNotification (doc=..., this=0x55fa831ebd40) at /usr/src/debug/tokodon-23.08.1-1.fc39.x86_64/src/account/abstractaccount.cpp:442 #14 Account::streamingSocket(QString const&)::{lambda(QString const&)#1}::operator()(QString const&) const [clone .isra.0] (__closure=0x55fa839f5db0, message=...) at /usr/src/debug/tokodon-23.08.1-1.fc39.x86_64/src/account/account.cpp:240 #15 0x00007f97cdae84f1 in void doActivate<false>(QObject*, int, void**) () from /lib64/libQt5Core.so.5 #16 0x00007f97d0344d1c in QWebSocket::textMessageReceived(QString const&) () from /lib64/libQt5WebSockets.so.5 #17 0x00007f97cdae84f1 in void doActivate<false>(QObject*, int, void**) () from /lib64/libQt5Core.so.5 #18 0x00007f97d03483b5 in QWebSocketDataProcessor::process(QIODevice*) () from /lib64/libQt5WebSockets.so.5 #19 0x00007f97d033d917 in QWebSocketPrivate::processData() () from /lib64/libQt5WebSockets.so.5 #20 0x00007f97cdaded9b in QObject::event(QEvent*) () from /lib64/libQt5Core.so.5 #21 0x00007f97ce7aeb75 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib64/libQt5Widgets.so.5 #22 0x00007f97cdab4218 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib64/libQt5Core.so.5 #23 0x00007f97cdab76c5 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /lib64/libQt5Core.so.5 #24 0x00007f97cdb06c6f in postEventSourceDispatch(_GSource*, int (*)(void*), void*) () from /lib64/libQt5Core.so.5 #25 0x00007f97ccfe9dfc in g_main_context_dispatch_unlocked.lto_priv () from /lib64/libglib-2.0.so.0 #26 0x00007f97cd044d58 in g_main_context_iterate_unlocked.isra () from /lib64/libglib-2.0.so.0 #27 0x00007f97ccfe7a73 in g_main_context_iteration () from /lib64/libglib-2.0.so.0 #28 0x00007f97cdb06759 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt5Core.so.5 #29 0x00007f97cdab2bdb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt5Core.so.5 #30 0x00007f97cdabae6b in QCoreApplication::exec() () from /lib64/libQt5Core.so.5 #31 0x000055fa8247ee76 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/tokodon-23.08.1-1.fc39.x86_64/src/main.cpp:259 [Inferior 1 (process 212543) detached] Reported using DrKonqi
Ah I know why this is happening, I'll backport a fix and it will appear in the next bugfix 23.08 release about next week
Git commit 7d2df9e3a4c6ae88772694efff3129ea4cba8929 by Joshua Goins. Committed on 02/10/2023 at 17:56. Pushed by redstrate into branch 'release/23.08'. Protect against notifications that don't have a post associated Such as follow request notifications M +3 -1 src/account/notificationhandler.cpp https://invent.kde.org/network/tokodon/-/commit/7d2df9e3a4c6ae88772694efff3129ea4cba8929