Summary: | Search for an item makes kdeinit5 to crash | ||
---|---|---|---|
Product: | [Frameworks and Libraries] kio-extras | Reporter: | Lua <lv215bd5> |
Component: | default | Assignee: | Plasma Bugs List <plasma-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | a.samirh78, guilhermebember, kdelibs-bugs, liubomirwm, m.wege, nate, postix, qydwhotmail |
Priority: | NOR | ||
Version: | 21.08.2 | ||
Target Milestone: | --- | ||
Platform: | Other | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/network/kio-extras/commit/c3d52ebecb7f4890e8a412930bce9c74fc9e2f1f | Version Fixed In: | 21.08.3 |
Sentry Crash Report: |
Description
Lua
2021-06-06 21:13:44 UTC
From bug 437153 comment 11. Application: kdeinit5 (kdeinit5), signal: Aborted [KCrash Handler] #4 0x00007f482cbb7b31 in raise () from /lib64/libc.so.6 #5 0x00007f482cba1536 in abort () from /lib64/libc.so.6 #6 0x00007f482cdcece3 in qt_message_fatal (message=<synthetic pointer>..., context=...) at /var/tmp/portage/dev-qt/qtcore-5.15.2-r2/work/qtbase-everywhere-src-5.15.2/src/corelib/global/qlogging.cpp:1914 #7 QMessageLogger::fatal (this=this@entry=0x7ffde132f410, msg=msg@entry=0x7f4828bd3378 "QWidget: Cannot create a QWidget without QApplication") at /var/tmp/portage/dev-qt/qtcore-5.15.2-r2/work/qtbase-everywhere-src-5.15.2/src/corelib/global/qlogging.cpp:893 #8 0x00007f48287f8cda in QWidgetPrivate::init (this=0x5625b2a5ff40, parentWidget=0x0, f=...) at /var/tmp/portage/dev-qt/qtwidgets-5.15.2/work/qtbase-everywhere-src-5.15.2/src/widgets/kernel/qwidget.cpp:981 #9 0x00007f4828a1901f in QDialog::QDialog (this=0x5625b2a9c5f0, parent=0x0, f=...) at /var/tmp/portage/dev-qt/qtwidgets-5.15.2/work/qtbase-everywhere-src-5.15.2/src/widgets/dialogs/qdialog.cpp:400 #10 0x00007f4828e336ff in KMessageBox::messageBox (parent=0x0, type=KMessageBox::Error, text=..., caption=..., buttonYes=..., buttonNo=..., buttonCancel=..., dontShow=..., options=...) at /var/tmp/portage/kde-frameworks/kwidgetsaddons-5.83.0/work/kwidgetsaddons-5.83.0/src/kmessagebox.cpp:1033 #11 0x00007f4828ed90fa in KDialogJobUiDelegatePrivate::next (this=0x5625b2a4f500) at /var/tmp/portage/kde-frameworks/kjobwidgets-5.83.0/work/kjobwidgets-5.83.0/src/kdialogjobuidelegate.cpp:73 #12 0x00007f482cfeccfa in QObject::event (this=0x5625b2a4f500, e=0x5625b2a76b00) at /var/tmp/portage/dev-qt/qtcore-5.15.2-r2/work/qtbase-everywhere-src-5.15.2/src/corelib/kernel/qobject.cpp:1314 #13 0x00007f482cfc0f65 in doNotify (event=0x5625b2a76b00, receiver=0x5625b2a4f500) at /var/tmp/portage/dev-qt/qtcore-5.15.2-r2/work/qtbase-everywhere-src-5.15.2/src/corelib/kernel/qcoreapplication.cpp:1153 #14 QCoreApplication::notify (event=<optimized out>, receiver=<optimized out>, this=<optimized out>) at /var/tmp/portage/dev-qt/qtcore-5.15.2-r2/work/qtbase-everywhere-src-5.15.2/src/corelib/kernel/qcoreapplication.cpp:1139 #15 QCoreApplication::notifyInternal2 (receiver=0x5625b2a4f500, event=0x5625b2a76b00) at /var/tmp/portage/dev-qt/qtcore-5.15.2-r2/work/qtbase-everywhere-src-5.15.2/src/corelib/kernel/qcoreapplication.cpp:1063 #16 0x00007f482cfc460d in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x5625b29be700) at /var/tmp/portage/dev-qt/qtcore-5.15.2-r2/work/qtbase-everywhere-src-5.15.2/src/corelib/kernel/qcoreapplication.cpp:1817 #17 0x00007f482d014583 in postEventSourceDispatch (s=0x5625b2a09430) at /var/tmp/portage/dev-qt/qtcore-5.15.2-r2/work/qtbase-everywhere-src-5.15.2/src/corelib/kernel/qeventdispatcher_glib.cpp:277 #18 0x00007f482bf1ee9b in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0 #19 0x00007f482bf1f158 in ?? () from /usr/lib64/libglib-2.0.so.0 #20 0x00007f482bf1f20f in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0 #21 0x00007f482d014033 in QEventDispatcherGlib::processEvents (this=0x5625b2a05710, flags=...) at /var/tmp/portage/dev-qt/qtcore-5.15.2-r2/work/qtbase-everywhere-src-5.15.2/src/corelib/kernel/qeventdispatcher_glib.cpp:423 #22 0x00007f482cfbf98b in QEventLoop::exec (this=this@entry=0x7ffde132f970, flags=..., flags@entry=...) at /var/tmp/portage/dev-qt/qtcore-5.15.2-r2/work/qtbase-everywhere-src-5.15.2/include/QtCore/../../src/corelib/global/qflags.h:69 #23 0x00007f482dabb246 in FileNameSearchProtocol::searchDirectory(QUrl const&, std::function<bool (KFileItem const&)> const&, QSet<QString>&) (iteratedDirs=..., itemValidator=..., directory=..., this=0x7ffde1330020) at /usr/include/qt5/QtCore/qflags.h:121 #24 FileNameSearchProtocol::searchDirectory(QUrl const&, std::function<bool (KFileItem const&)> const&, QSet<QString>&) (this=0x7ffde1330020, directory=..., itemValidator=..., iteratedDirs=...) at /var/tmp/portage/kde-apps/kio-extras-20.12.3-r1/work/kio-extras-20.12.3/filenamesearch/kio_filenamesearch.cpp:100 #25 0x00007f482dabb52b in FileNameSearchProtocol::searchDirectory(QUrl const&, std::function<bool (KFileItem const&)> const&, QSet<QString>&) (iteratedDirs=..., itemValidator=..., directory=..., this=0x7ffde1330020) at /var/tmp/portage/kde-apps/kio-extras-20.12.3-r1/work/kio-extras-20.12.3/filenamesearch/kio_filenamesearch.cpp:151 #26 FileNameSearchProtocol::searchDirectory(QUrl const&, std::function<bool (KFileItem const&)> const&, QSet<QString>&) (this=0x7ffde1330020, directory=..., itemValidator=..., iteratedDirs=...) at /var/tmp/portage/kde-apps/kio-extras-20.12.3-r1/work/kio-extras-20.12.3/filenamesearch/kio_filenamesearch.cpp:100 #27 0x00007f482dabb52b in FileNameSearchProtocol::searchDirectory(QUrl const&, std::function<bool (KFileItem const&)> const&, QSet<QString>&) (iteratedDirs=..., itemValidator=..., directory=..., this=0x7ffde1330020) at /var/tmp/portage/kde-apps/kio-extras-20.12.3-r1/work/kio-extras-20.12.3/filenamesearch/kio_filenamesearch.cpp:151 #28 FileNameSearchProtocol::searchDirectory(QUrl const&, std::function<bool (KFileItem const&)> const&, QSet<QString>&) (this=0x7ffde1330020, directory=..., itemValidator=..., iteratedDirs=...) at /var/tmp/portage/kde-apps/kio-extras-20.12.3-r1/work/kio-extras-20.12.3/filenamesearch/kio_filenamesearch.cpp:100 #29 0x00007f482dabb52b in FileNameSearchProtocol::searchDirectory(QUrl const&, std::function<bool (KFileItem const&)> const&, QSet<QString>&) (iteratedDirs=..., itemValidator=..., directory=..., this=0x7ffde1330020) at /var/tmp/portage/kde-apps/kio-extras-20.12.3-r1/work/kio-extras-20.12.3/filenamesearch/kio_filenamesearch.cpp:151 #30 FileNameSearchProtocol::searchDirectory(QUrl const&, std::function<bool (KFileItem const&)> const&, QSet<QString>&) (this=0x7ffde1330020, directory=..., itemValidator=..., iteratedDirs=...) at /var/tmp/portage/kde-apps/kio-extras-20.12.3-r1/work/kio-extras-20.12.3/filenamesearch/kio_filenamesearch.cpp:100 #31 0x00007f482dabb52b in FileNameSearchProtocol::searchDirectory(QUrl const&, std::function<bool (KFileItem const&)> const&, QSet<QString>&) (iteratedDirs=..., itemValidator=..., directory=..., this=0x7ffde1330020) at /var/tmp/portage/kde-apps/kio-extras-20.12.3-r1/work/kio-extras-20.12.3/filenamesearch/kio_filenamesearch.cpp:151 #32 FileNameSearchProtocol::searchDirectory(QUrl const&, std::function<bool (KFileItem const&)> const&, QSet<QString>&) (this=0x7ffde1330020, directory=..., itemValidator=..., iteratedDirs=...) at /var/tmp/portage/kde-apps/kio-extras-20.12.3-r1/work/kio-extras-20.12.3/filenamesearch/kio_filenamesearch.cpp:100 #33 0x00007f482dabba7f in FileNameSearchProtocol::listDir (this=0x7ffde1330020, url=...) at /var/tmp/portage/kde-apps/kio-extras-20.12.3-r1/work/kio-extras-20.12.3/filenamesearch/kio_filenamesearch.cpp:95 #34 0x00007f4829a3c9a6 in KIO::SlaveBase::dispatch (this=0x7ffde1330020, command=71, data=...) at /var/tmp/portage/kde-frameworks/kio-5.83.0/work/kio-5.83.0/src/core/slavebase.cpp:1271 #35 0x00007f4829a3d4b6 in KIO::SlaveBase::dispatchLoop (this=0x7ffde1330020) at /var/tmp/portage/kde-frameworks/kio-5.83.0/work/kio-5.83.0/src/core/slavebase.cpp:335 #36 0x00007f482dabbda6 in kdemain (argc=<optimized out>, argv=0x5625b2a056e0) at /var/tmp/portage/kde-apps/kio-extras-20.12.3-r1/work/kio-extras-20.12.3/filenamesearch/kio_filenamesearch.cpp:203 #37 0x00005625b1b2b747 in launch (argc=argc@entry=4, _name=_name@entry=0x5625b2a05888 "/usr/lib64/qt5/plugins/kf5/kio/filenamesearch.so", args=0x5625b2a0592e "", args@entry=0x5625b2a058b9 "filenamesearch", cwd=cwd@entry=0x0, envc=envc@entry=0, envs=<optimized out>, envs@entry=0x5625b2a05936 "", reset_env=false, tty=0x0, avoid_loops=false, startup_id_str=0x5625b1b2f195 "0") at /var/tmp/portage/kde-frameworks/kinit-5.83.0/work/kinit-5.83.0/src/kdeinit/kinit.cpp:692 #38 0x00005625b1b2cdc9 in handle_launcher_request (sock=8, who=who@entry=0x5625b1b2f14a "launcher") at /var/tmp/portage/kde-frameworks/kinit-5.83.0/work/kinit-5.83.0/src/kdeinit/kinit.cpp:1130 #39 0x00005625b1b2d5f8 in handle_requests (waitForPid=waitForPid@entry=0) at /var/tmp/portage/kde-frameworks/kinit-5.83.0/work/kinit-5.83.0/src/kdeinit/kinit.cpp:1323 #40 0x00005625b1b28640 in main (argc=3, argv=0x7ffde13305e0) at /var/tmp/portage/kde-frameworks/kinit-5.83.0/work/kinit-5.83.0/src/kdeinit/kinit.cpp:1761 [Inferior 1 (process 26292) detached] A possibly relevant merge request was started @ https://invent.kde.org/network/kio-extras/-/merge_requests/111 I searched in /usr/share and the crash appears. Are they the same bug? Application: kdeinit5 (kdeinit5), signal: Aborted [KCrash Handler] #4 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49 #5 0x00007fcf8175f864 in __GI_abort () at abort.c:79 #6 0x00007fcf819c2ff7 in qt_message_fatal (message=<synthetic pointer>..., context=...) at global/qlogging.cpp:1914 #7 QMessageLogger::fatal (this=this@entry=0x7ffe9e455f60, msg=msg@entry=0x7fcf812d2178 "QWidget: Cannot create a QWidget without QApplication") at global/qlogging.cpp:893 #8 0x00007fcf80f100fa in QWidgetPrivate::init (this=<optimized out>, parentWidget=<optimized out>, f=...) at kernel/qwidget.cpp:981 #9 0x00007fcf8112415f in QDialog::QDialog (this=this@entry=0x55eaed7ff090, parent=parent@entry=0x0, f=..., f@entry=...) at dialogs/qdialog.cpp:400 #10 0x00007fcf7d1bf52c in KMessageBox::messageBox (parent=0x0, type=KMessageBox::Error, text=..., caption=..., buttonYes=..., buttonNo=..., buttonCancel=..., dontShow=..., options=...) at /usr/src/debug/kwidgetsaddons-5.85.0git.20210710T193104~bac6de40-ku.2.1.x86_64/src/kmessagebox.cpp:1033 #11 0x00007fcf7d261b13 in KDialogJobUiDelegatePrivate::next (this=0x55eaed7405d0) at /usr/src/debug/kjobwidgets-5.85.0git.20210710T192743~9c6142f-ku.2.1.x86_64/src/kdialogjobuidelegate.cpp:73 #12 0x00007fcf81c0ef5e in QObject::event (this=0x55eaed7405d0, e=0x55eaed7d8b70) at kernel/qobject.cpp:1314 #13 0x00007fcf81be293f in doNotify (event=0x55eaed7d8b70, receiver=0x55eaed7405d0) at kernel/qcoreapplication.cpp:1154 #14 QCoreApplication::notify (event=<optimized out>, receiver=<optimized out>, this=<optimized out>) at kernel/qcoreapplication.cpp:1140 #15 QCoreApplication::notifyInternal2 (receiver=0x55eaed7405d0, event=0x55eaed7d8b70) at kernel/qcoreapplication.cpp:1064 #16 0x00007fcf81be59b7 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x55eaed6b6d40) at kernel/qcoreapplication.cpp:1821 #17 0x00007fcf81c3a7d3 in postEventSourceDispatch (s=s@entry=0x55eaed71a020) at kernel/qeventdispatcher_glib.cpp:277 #18 0x00007fcf801c480f in g_main_dispatch (context=0x55eaed717db0) at ../glib/gmain.c:3337 #19 g_main_context_dispatch (context=0x55eaed717db0) at ../glib/gmain.c:4055 #20 0x00007fcf801c4b98 in g_main_context_iterate (context=context@entry=0x55eaed717db0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4131 #21 0x00007fcf801c4c4f in g_main_context_iteration (context=0x55eaed717db0, may_block=1) at ../glib/gmain.c:4196 #22 0x00007fcf81c39e54 in QEventDispatcherGlib::processEvents (this=0x55eaed715dd0, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #23 0x00007fcf81be136b in QEventLoop::exec (this=this@entry=0x7ffe9e456530, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69 #24 0x00007fcf7dd3147e in FileNameSearchProtocol::searchDirectory(QUrl const&, std::function<bool (KFileItem const&)> const&, QSet<QString>&) (iteratedDirs=..., itemValidator=..., directory=..., this=0x7ffe9e456b20) at /usr/include/qt5/QtCore/qflags.h:121 #25 FileNameSearchProtocol::searchDirectory(QUrl const&, std::function<bool (KFileItem const&)> const&, QSet<QString>&) (this=this@entry=0x7ffe9e456b20, directory=..., itemValidator=..., iteratedDirs=...) at /usr/src/debug/kio-extras5-21.11.70git.20210710T131328~3953484c-ku.36.2.x86_64/filenamesearch/kio_filenamesearch.cpp:92 #26 0x00007fcf7dd31763 in FileNameSearchProtocol::searchDirectory(QUrl const&, std::function<bool (KFileItem const&)> const&, QSet<QString>&) (iteratedDirs=..., itemValidator=..., directory=..., this=0x7ffe9e456b20) at /usr/src/debug/kio-extras5-21.11.70git.20210710T131328~3953484c-ku.36.2.x86_64/filenamesearch/kio_filenamesearch.cpp:143 #27 FileNameSearchProtocol::searchDirectory(QUrl const&, std::function<bool (KFileItem const&)> const&, QSet<QString>&) (this=this@entry=0x7ffe9e456b20, directory=..., itemValidator=..., iteratedDirs=...) at /usr/src/debug/kio-extras5-21.11.70git.20210710T131328~3953484c-ku.36.2.x86_64/filenamesearch/kio_filenamesearch.cpp:92 #28 0x00007fcf7dd31763 in FileNameSearchProtocol::searchDirectory(QUrl const&, std::function<bool (KFileItem const&)> const&, QSet<QString>&) (iteratedDirs=..., itemValidator=..., directory=..., this=0x7ffe9e456b20) at /usr/src/debug/kio-extras5-21.11.70git.20210710T131328~3953484c-ku.36.2.x86_64/filenamesearch/kio_filenamesearch.cpp:143 #29 FileNameSearchProtocol::searchDirectory(QUrl const&, std::function<bool (KFileItem const&)> const&, QSet<QString>&) (this=this@entry=0x7ffe9e456b20, directory=..., itemValidator=..., iteratedDirs=...) at /usr/src/debug/kio-extras5-21.11.70git.20210710T131328~3953484c-ku.36.2.x86_64/filenamesearch/kio_filenamesearch.cpp:92 #30 0x00007fcf7dd31763 in FileNameSearchProtocol::searchDirectory(QUrl const&, std::function<bool (KFileItem const&)> const&, QSet<QString>&) (iteratedDirs=..., itemValidator=..., directory=..., this=0x7ffe9e456b20) at /usr/src/debug/kio-extras5-21.11.70git.20210710T131328~3953484c-ku.36.2.x86_64/filenamesearch/kio_filenamesearch.cpp:143 #31 FileNameSearchProtocol::searchDirectory(QUrl const&, std::function<bool (KFileItem const&)> const&, QSet<QString>&) (this=this@entry=0x7ffe9e456b20, directory=..., itemValidator=..., iteratedDirs=...) at /usr/src/debug/kio-extras5-21.11.70git.20210710T131328~3953484c-ku.36.2.x86_64/filenamesearch/kio_filenamesearch.cpp:92 #32 0x00007fcf7dd31ca6 in FileNameSearchProtocol::listDir (this=0x7ffe9e456b20, url=...) at /usr/src/debug/kio-extras5-21.11.70git.20210710T131328~3953484c-ku.36.2.x86_64/filenamesearch/kio_filenamesearch.cpp:87 #33 0x00007fcf7ddbe706 in KIO::SlaveBase::dispatch (this=0x7ffe9e456b20, command=71, data=...) at /usr/src/debug/kio-5.85.0git.20210710T192705~c5e428e71-ku.5.1.x86_64/src/core/slavebase.cpp:1271 #34 0x00007fcf7ddb6266 in KIO::SlaveBase::dispatchLoop (this=0x7ffe9e456b20) at /usr/src/debug/kio-5.85.0git.20210710T192705~c5e428e71-ku.5.1.x86_64/src/core/slavebase.cpp:335 #35 0x00007fcf7dd3218b in kdemain (argc=<optimized out>, argv=0x7ffe9e456af0) at /usr/src/debug/kio-extras5-21.11.70git.20210710T131328~3953484c-ku.36.2.x86_64/filenamesearch/kio_filenamesearch.cpp:195 #36 0x000055eaec94dae8 in launch (argc=argc@entry=4, _name=_name@entry=0x55eaed715d08 "/usr/lib64/qt5/plugins/kf5/kio/filenamesearch.so", args=0x55eaed715dae "", args@entry=0x55eaed715d39 "filenamesearch", cwd=cwd@entry=0x0, envc=envc@entry=0, envs=<optimized out>, envs@entry=0x55eaed715db6 "", reset_env=false, tty=0x0, avoid_loops=false, startup_id_str=0x55eaec950175 "0") at /usr/src/debug/kinit-5.85.0git.20210710T192655~88e23a2-ku.2.1.x86_64/src/kdeinit/kinit.cpp:692 #37 0x000055eaec94f28b in handle_launcher_request (sock=8, who=<optimized out>) at /usr/src/debug/kinit-5.85.0git.20210710T192655~88e23a2-ku.2.1.x86_64/src/kdeinit/kinit.cpp:1130 #38 0x000055eaec94f8c0 in handle_requests (waitForPid=waitForPid@entry=0) at /usr/src/debug/kinit-5.85.0git.20210710T192655~88e23a2-ku.2.1.x86_64/src/kdeinit/kinit.cpp:1323 #39 0x000055eaec94a61a in main (argc=3, argv=<optimized out>) at /usr/src/debug/kinit-5.85.0git.20210710T192655~88e23a2-ku.2.1.x86_64/src/kdeinit/kinit.cpp:1761 [Inferior 1 (process 15775) detached] Git commit 5dff395ecea2977cf149c293c16c4d4a5151493b by Ahmad Samir. Committed on 22/07/2021 at 11:44. Pushed by ahmadsamir into branch 'master'. kio_filenamesearch: fix crash due to KCoreDirLister changes Error reporting was changed in KCoreDirlister, to match the original behaviour we need to explicitly disable auto error handling. This fixes a crash while searching in Dolphin, kio_filenamesearch intrenally uses a dirlister, and a nested event loop, if there is an error while listing some dir it tries to report it using a job ui delegate, but the parent job could well be dead by that time, which causes a crash: "QWidget: Cannot create a QWidget without QApplication" Note that this crash only happens if KDE_FORK_SLAVES is _not_ set. M +1 -0 filenamesearch/kio_filenamesearch.cpp https://invent.kde.org/network/kio-extras/commit/5dff395ecea2977cf149c293c16c4d4a5151493b *** Bug 440454 has been marked as a duplicate of this bug. *** *** Bug 439058 has been marked as a duplicate of this bug. *** *** Bug 440542 has been marked as a duplicate of this bug. *** Git commit c3d52ebecb7f4890e8a412930bce9c74fc9e2f1f by Ahmad Samir. Committed on 16/10/2021 at 21:29. Pushed by ahmadsamir into branch 'release/21.08'. kio_filenamesearch: fix crash due to KCoreDirLister changes Error reporting was changed in KCoreDirlister, to match the original behaviour we need to explicitly disable auto error handling. This fixes a crash while searching in Dolphin, kio_filenamesearch intrenally uses a dirlister, and a nested event loop, if there is an error while listing some dir it tries to report it using a job ui delegate, but the parent job could well be dead by that time, which causes a crash: "QWidget: Cannot create a QWidget without QApplication" Note that this crash only happens if KDE_FORK_SLAVES is _not_ set. FIXED-IN: 21.08.3 (cherry picked from commit 5dff395ecea2977cf149c293c16c4d4a5151493b) M +1 -0 filenamesearch/kio_filenamesearch.cpp https://invent.kde.org/network/kio-extras/commit/c3d52ebecb7f4890e8a412930bce9c74fc9e2f1f |