Bug 497799

Summary: konversation crash at start
Product: [Applications] konversation Reporter: Salvo "LtWorf" Tomaselli <tiposchi>
Component: generalAssignee: argonel <argonel>
Status: RESOLVED FIXED    
Severity: crash CC: argonel
Priority: NOR Keywords: drkonqi
Version: 1.10.24120   
Target Milestone: ---   
Platform: Debian unstable   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report: https://crash-reports.kde.org/organizations/kde/issues/110498/events/e22cf38ae4c443eca2e86da291bcbecf/
Attachments: configuration that causes a crash

Description Salvo "LtWorf" Tomaselli 2024-12-22 21:52:07 UTC
Application: konversation (1.10.24120)

ApplicationNotResponding [ANR]: false
Qt Version: 6.7.2
Frameworks Version: 6.8.0
Operating System: Linux 6.12.6-amd64 x86_64
Windowing System: X11
Distribution: Debian GNU/Linux trixie/sid
DrKonqi: 6.2.4 [KCrashBackend]

-- Information about the crash:
While it tries to connect to some server, it crashes.

It connects to irc.nlnog.net and then crashes.

The crash can be reproduced every time.

-- Backtrace:
Application: Konversation (konversation), signal: Segmentation fault

[KCrash Handler]
#4  0x00007f54aea4fcc0 in QtPrivate::QStringList_join(QList<QString> const*, QChar const*, long long) () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#5  0x0000561e7abf3d3e in QListSpecialMethods<QString>::join (this=0x7ffc4ff7af90, sep=...) at /usr/include/x86_64-linux-gnu/qt6/QtCore/qstringlist.h:94
#6  NicksOnline::refreshAllServerOnlineLists (this=0x561eb1692aa0) at ./src/irc/nicksonline.cpp:485
#7  0x00007f54ae9d5aef in ??? () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#8  0x00007f54ae9d82ce in QTimer::timeout(QTimer::QPrivateSignal) () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#9  0x00007f54ae9c7f99 in QObject::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#10 0x00007f54af9b20a2 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt6Widgets.so.6
#11 0x00007f54ae987928 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#12 0x00007f54aeacb69a in QTimerInfoList::activateTimers() () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#13 0x00007f54aeb8e82c in ??? () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#14 0x00007f54ad53181f in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#15 0x00007f54ad533a57 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#16 0x00007f54ad5341c0 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#17 0x00007f54aeb8c473 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#18 0x00007f54ae992adb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#19 0x00007f54ae98a908 in QCoreApplication::exec() () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#20 0x0000561e7aaff33d in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.cpp:137
[Inferior 1 (process 10584) detached]

Reported using DrKonqi
Comment 1 Salvo "LtWorf" Tomaselli 2024-12-23 07:13:23 UTC
It seems to not depend on the connection to the server itself but on the configuration file. Removing it seems to fix the problem.
Comment 2 argonel 2024-12-23 07:44:46 UTC
It seems to be related to the "Watched Nicks Online" view, was that configured to open automatically on launch?
Comment 3 Salvo "LtWorf" Tomaselli 2024-12-23 07:52:24 UTC
Created attachment 176838 [details]
configuration that causes a crash
Comment 4 Salvo "LtWorf" Tomaselli 2024-12-23 07:53:40 UTC
Yes it's related, in the minimal configuration I manage to reproduce it, it needs to be shown on start, the 1st server needs to fail to resolve and the fallback server needs to work (I'm running localslackirc locally on that port).
Comment 5 argonel 2024-12-23 08:40:53 UTC
Looks like the fallback doesn't need to work, I was able to reproduce with that config file unchanged. Thanks for narrowing this down!
Comment 6 argonel 2024-12-24 01:23:35 UTC
Git commit 5da1a32c95f24ea5743ff932f320a6cbc55beaab by Eli MacKenzie.
Committed on 24/12/2024 at 01:12.
Pushed by argonel into branch 'release/24.12'.

Prevent crash when updating Watched Nicks

Rather than trying to keep valid a cached copy of the end iterator,
just fetch a new one every time.
(cherry picked from commit da2855a31cf056d3257c2a0684f844c574610e7a)

M  +1    -2    src/irc/nicksonline.cpp

https://invent.kde.org/network/konversation/-/commit/5da1a32c95f24ea5743ff932f320a6cbc55beaab
Comment 7 argonel 2024-12-24 01:23:43 UTC
Git commit da2855a31cf056d3257c2a0684f844c574610e7a by Eli MacKenzie.
Committed on 24/12/2024 at 01:09.
Pushed by argonel into branch 'master'.

Prevent crash when updating Watched Nicks

Rather than trying to keep valid a cached copy of the end iterator,
just fetch a new one every time.

M  +1    -2    src/irc/nicksonline.cpp

https://invent.kde.org/network/konversation/-/commit/da2855a31cf056d3257c2a0684f844c574610e7a
Comment 8 Salvo "LtWorf" Tomaselli 2024-12-24 07:28:15 UTC
Thanks for the quick fix. I've applied it in debian so it won't crash even before you do your next point release.