Bug 475057 - Tokodon crashes when accepting follow requests
Summary: Tokodon crashes when accepting follow requests
Status: RESOLVED FIXED
Alias: None
Product: Tokodon
Classification: Applications
Component: general (show other bugs)
Version: 23.08.1
Platform: Fedora RPMs Linux
: NOR crash
Target Milestone: ---
Assignee: Joshua Goins
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2023-09-30 16:48 UTC by Neal Gompa
Modified: 2023-10-02 15:57 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Neal Gompa 2023-09-30 16:48:11 UTC
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
Comment 1 Joshua Goins 2023-10-02 11:43:21 UTC
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
Comment 2 Joshua Goins 2023-10-02 15:57:07 UTC
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