Bug 402432

Summary: Konsole Add-On Installer crashes when entering a search term
Product: [Applications] konsole Reporter: dave.ouellette
Component: generalAssignee: Konsole Developer <konsole-devel>
Status: RESOLVED FIXED    
Severity: crash CC: mp107+bugs.kde.org, nate
Priority: NOR Keywords: drkonqi
Version: master   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In: 5.80
Sentry Crash Report:
Attachments: New crash information added by DrKonqi

Description dave.ouellette 2018-12-21 17:04:32 UTC
Application: konsole (18.04.0)

Qt Version: 5.11.2
Frameworks Version: 5.51.0
Operating System: Linux 4.18.0-3-amd64 x86_64
Distribution: Debian GNU/Linux buster/sid

-- Information about the crash:
- What I was doing when the application crashed:
I was in Settings menu, Edit Current Profile..., Appearance tab, Get New... button, Search: box.  It happens each time when I enter a character to search for in the box, it crashes.

- Custom settings of the application:
In the Konsole Add-On Installer, this message is in the lower-left corner:
    Configuration file is invalid: "konsol.knsrc"

The crash can be reproduced every time.

-- Backtrace:
Application: Konsole (konsole), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f5fb8a87840 (LWP 8208))]

Thread 4 (Thread 0x7f5fafdf5700 (LWP 8212)):
#0  futex_wait_cancelable (private=0, expected=0, futex_word=0x55d12ec9bbc8) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  __pthread_cond_wait_common (abstime=0x0, mutex=0x55d12ec9bb78, cond=0x55d12ec9bba0) at pthread_cond_wait.c:502
#2  __pthread_cond_wait (cond=0x55d12ec9bba0, mutex=0x55d12ec9bb78) at pthread_cond_wait.c:655
#3  0x00007f5fb4561bab in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#4  0x00007f5fb45618d7 in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#5  0x00007f5fbe1ddfa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
#6  0x00007f5fc124088f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 0x7f5fb6586700 (LWP 8211)):
#0  0x00007ffd05fb4999 in ?? ()
#1  0x00007ffd05fb4c50 in clock_gettime ()
#2  0x00007f5fc124e3a6 in __GI___clock_gettime (clock_id=1, tp=0x7f5fb6585a70) at ../sysdeps/unix/clock_gettime.c:115
#3  0x00007f5fbf935651 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007f5fbf933e89 in QTimerInfoList::updateCurrentTime() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007f5fbf934485 in QTimerInfoList::timerWait(timespec&) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007f5fbf935aae in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007f5fbd5d4379 in g_main_context_prepare () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#8  0x00007f5fbd5d4d7b in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#9  0x00007f5fbd5d4f6c in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#10 0x00007f5fbf935d2b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#11 0x00007f5fbf8e2d0b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#12 0x00007f5fbf7320c6 in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#13 0x00007f5fbefed545 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5
#14 0x00007f5fbf73bc97 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#15 0x00007f5fbe1ddfa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
#16 0x00007f5fc124088f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7f5fb7fb1700 (LWP 8210)):
#0  0x00007f5fc1235bd9 in __GI___poll (fds=0x7f5fb7fb0c78, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f5fbe406cf7 in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#2  0x00007f5fbe40891a in xcb_wait_for_event () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#3  0x00007f5fb8924519 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#4  0x00007f5fbf73bc97 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007f5fbe1ddfa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
#6  0x00007f5fc124088f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7f5fb8a87840 (LWP 8208)):
[KCrash Handler]
#6  0x00007f5fbef70c46 in KNSCore::Cache::requestFromCache(KNSCore::Provider::SearchRequest const&) () from /usr/lib/x86_64-linux-gnu/libKF5NewStuffCore.so.5
#7  0x00007f5fbef7cda4 in KNSCore::Engine::setSearchTerm(QString const&) () from /usr/lib/x86_64-linux-gnu/libKF5NewStuffCore.so.5
#8  0x00007f5fbf3e1610 in ?? () from /usr/lib/x86_64-linux-gnu/libKF5NewStuff.so.5
#9  0x00007f5fbf90d3e0 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#10 0x00007f5fc042be42 in QLineEdit::textChanged(QString const&) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#11 0x00007f5fc04326f9 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#12 0x00007f5fbf90d28b in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#13 0x00007f5fc0433255 in QWidgetLineControl::textChanged(QString const&) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#14 0x00007f5fc04365be in QWidgetLineControl::finishChange(int, bool, bool) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#15 0x00007f5fc043986e in QWidgetLineControl::processKeyEvent(QKeyEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#16 0x00007f5fc042bf9a in QLineEdit::keyPressEvent(QKeyEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#17 0x00007f5fc0a45b39 in KLineEdit::keyPressEvent(QKeyEvent*) () from /usr/lib/x86_64-linux-gnu/libKF5Completion.so.5
#18 0x00007f5fc0336de7 in QWidget::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#19 0x00007f5fc0431faa in QLineEdit::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#20 0x00007f5fc0a464c2 in KLineEdit::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libKF5Completion.so.5
#21 0x00007f5fc02f8491 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#22 0x00007f5fc0300a59 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#23 0x00007f5fbf8e4039 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#24 0x00007f5fc0353e79 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#25 0x00007f5fc02f8491 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#26 0x00007f5fc02ffad0 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#27 0x00007f5fbf8e4039 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#28 0x00007f5fbfd26388 in QGuiApplicationPrivate::processKeyEvent(QWindowSystemInterfacePrivate::KeyEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#29 0x00007f5fbfd2ba05 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#30 0x00007f5fbfd05d8b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#31 0x00007f5fb89b785b in ?? () from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#32 0x00007f5fbf8e2d0b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#33 0x00007f5fc04e318d in QDialog::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#34 0x00007f5fbf3e07ff in KNS3::DownloadDialog::exec() () from /usr/lib/x86_64-linux-gnu/libKF5NewStuff.so.5
#35 0x00007f5fbf3ea097 in KNS3::Button::showDialog() () from /usr/lib/x86_64-linux-gnu/libKF5NewStuff.so.5
#36 0x00007f5fbf90d3e0 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#37 0x00007f5fc03de712 in QAbstractButton::clicked(bool) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#38 0x00007f5fc03de92a in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#39 0x00007f5fc03dfcef in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#40 0x00007f5fc03dfec5 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#41 0x00007f5fc03367c8 in QWidget::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#42 0x00007f5fc02f8491 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#43 0x00007f5fc02ffd18 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#44 0x00007f5fbf8e4039 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#45 0x00007f5fc02ff019 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#46 0x00007f5fc0351304 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#47 0x00007f5fc0353e8e in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#48 0x00007f5fc02f8491 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#49 0x00007f5fc02ffad0 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#50 0x00007f5fbf8e4039 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#51 0x00007f5fbfd29b2b in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#52 0x00007f5fbfd2ba25 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#53 0x00007f5fbfd05d8b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#54 0x00007f5fb89b785b in ?? () from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#55 0x00007f5fbf8e2d0b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#56 0x00007f5fbf8eae82 in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#57 0x00007f5fc1330827 in kdemain () from /usr/lib/x86_64-linux-gnu/libkdeinit5_konsole.so
#58 0x00007f5fc116b09b in __libc_start_main (main=0x55d12daa3730, argc=1, argv=0x7ffd05fab638, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffd05fab628) at ../csu/libc-start.c:308
#59 0x000055d12daa376a in _start ()
[Inferior 1 (process 8208) detached]

Reported using DrKonqi
Comment 1 Kurt Hindenburg 2018-12-22 04:06:33 UTC
I can't reproduce - I wonder what Debian is doing differently.
Comment 2 mp107 2020-03-22 19:35:15 UTC
Created attachment 126954 [details]
New crash information added by DrKonqi

konsole (18.04.0) using Qt 5.11.3

- What I was doing when the application crashed:
1. Opened new Konsola window
2. Went to menu: "Settings" ("Ustawienia") -> "Edit current profile" ("Edytuj bieżący profil") -> Look/Outfit? (not sure about English translateion) tab ("Wygląd") -> "Get new..." (lack of translation, shows English text)
3. Opened window "Downloading new packets - Konsola" ("Pobieranie nowych pakietów - Konsola"). On bottom of the window there is an error information "Incorrect settings file: "konsole.knsrc"" ("Nieprawidłowy plik ustawień: "konsole.knsrc"").
4. Started to type any text in "Search" ("Znajdź") field. At this moment the application crashed.

Comments in brackets are labels/texts in Polish language.

The error occurs every time I go this path. 

There is no "konsole.knsrc" file in localizations:
* /etc/xdg/konsole.knsrc
* $HOME/.config/konsole.knsrc
I have not removed it before.

- Custom settings of the application:
* Konsole look/outfit set to "Black on white"
* OS language set to Polish
* Tabs set to top

-- Backtrace (Reduced):
#6  0x00007f27c062fc76 in KNSCore::Cache::requestFromCache(KNSCore::Provider::SearchRequest const&) () from /lib/x86_64-linux-gnu/libKF5NewStuffCore.so.5
#7  0x00007f27c063c214 in KNSCore::Engine::setSearchTerm(QString const&) () from /lib/x86_64-linux-gnu/libKF5NewStuffCore.so.5
[...]
#10 0x00007f27c1b09d62 in QLineEdit::textChanged(QString const&) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
[...]
#13 0x00007f27c1b11155 in QWidgetLineControl::textChanged(QString const&) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#14 0x00007f27c1b144be in QWidgetLineControl::finishChange(int, bool, bool) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
Comment 3 Kurt Hindenburg 2020-03-25 01:31:21 UTC
Can you do a 'locate konsole.knsrc' ?  You're also using an older version although it included konsole.knsrc.
Comment 4 mp107 2020-03-28 22:31:43 UTC
In the meantime I have reinstalled the Debian 10.3 KDE on both host and twice on virtual machine. I can confirm the issue persisted on all (now 5) tested instances.

After fresh installation on virtual machine as well as for my up to date host I found no "konsole.knsrc" file in the whole filesystem (`sudo find / -name "konsole.knsrc"` returned no results).

The steps I made:
0. Debian image: debian-live-10.3.0-amd64-kde.iso, installation offline
1. Selected graphical installer mode
2. Selected language: 4x Polish, once English
3. All others - default
Comment 5 Kurt Hindenburg 2020-03-31 17:42:12 UTC
Can you enter a bug report on Debian's site?  It might be a packaging issue.

Regardless, Konsole shouldn't crash.
Comment 6 Christoph Feck 2020-04-15 19:26:21 UTC
Probably caused by the nested event loop from KNS3::DownloadDialog::exec().
Comment 7 Kurt Hindenburg 2021-02-12 04:34:17 UTC
Konsole still crashes when entering a search term in 'Get New..." when the konsole.knsrc file is missing.
Comment 8 Bug Janitor Service 2021-02-12 09:25:39 UTC
A possibly relevant merge request was started @ https://invent.kde.org/frameworks/knewstuff/-/merge_requests/102
Comment 9 Alexander Lohnau 2021-02-12 12:42:57 UTC
Git commit a3050ecff9bb830880554725a0eaf0cdb06b7575 by Alexander Lohnau.
Committed on 12/02/2021 at 09:44.
Pushed by alex into branch 'master'.

qtquickengine: Check if KNSCore::Engine is valid before searching

Otherwise the application would crash, which should not happen in any
case.
FIXED-IN: 5.80

M  +3    -2    src/qtquick/quickengine.cpp

https://invent.kde.org/frameworks/knewstuff/commit/a3050ecff9bb830880554725a0eaf0cdb06b7575