Summary: | Krusader crashes if "Properties" dialog is invoked for a directory via context menu fresh after start | ||
---|---|---|---|
Product: | [Applications] krusader | Reporter: | Alex Chudnovsky <chalex2005> |
Component: | general | Assignee: | Krusader Bugs Distribution List <krusader-bugs-null> |
Status: | REPORTED --- | ||
Severity: | crash | CC: | alex.bikadorov, krusader-bugs-null |
Priority: | NOR | ||
Version: | Git | ||
Target Milestone: | --- | ||
Platform: | Arch Linux | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: |
Stack trace
Stack trace with debug symbols |
Description
Alex Chudnovsky
2024-10-27 15:39:36 UTC
Does the "Properties" dialog work in Dolphin? Can you provide the stack trace? (It is usually logged by systemd-coredump and can be viewed with "journalctl -n 100".) Created attachment 175312 [details]
Stack trace
(In reply to Alex Bikadorov from comment #1) > Does the "Properties" dialog work in Dolphin? Yes > > Can you provide the stack trace? (It is usually logged by systemd-coredump > and can be viewed with "journalctl -n 100".) Attached. Thanks. Relevant stack trace:
Stack trace of thread 3089961:
#0 0x00007766830f15d8 n/a (libQt6Widgets.so.6 + 0xf15d8)
#1 0x000077668316a7cc n/a (libQt6Widgets.so.6 + 0x16a7cc)
#2 0x00007766830fe31a _ZN19QApplicationPrivate13notify_helperEP7QObjectP6QEvent (libQt6Widgets.so.6 + 0xfe31a)
#3 0x00007766821585a8 _ZN16QCoreApplication15notifyInternal2EP7QObjectP6QEvent (libQt6Core.so.6 + 0x1585a8)
#4 0x0000776682785d4b _ZN22QGuiApplicationPrivate17processMouseEventEPN29QWindowSystemInterfacePrivate10MouseEventE (libQt6Gui.so.6 + 0x185d4b)
#5 0x0000776682801284 _ZN22QWindowSystemInterface22sendWindowSystemEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE (libQt6Gui.so.6 + 0x201284)
#6 0x0000776682c4da14 n/a (libQt6Gui.so.6 + 0x64da14)
#7 0x000077667fb88559 n/a (libglib-2.0.so.0 + 0x5d559)
#8 0x000077667fbeb157 n/a (libglib-2.0.so.0 + 0xc0157)
#9 0x000077667fb87a55 g_main_context_iteration (libglib-2.0.so.0 + 0x5ca55)
#10 0x00007766823bf71d _ZN20QEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE (libQt6Core.so.6 + 0x3bf71d)
#11 0x0000776682164566 _ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE (libQt6Core.so.6 + 0x164566)
#12 0x0000776682159a2f _ZN16QCoreApplication4execEv (libQt6Core.so.6 + 0x159a2f)
#13 0x000061f1e0d5420f n/a (krusader + 0x9b20f)
#14 0x0000776681a34e08 n/a (libc.so.6 + 0x25e08)
#15 0x0000776681a34ecc __libc_start_main (libc.so.6 + 0x25ecc)
#16 0x000061f1e0d56465 n/a (krusader + 0x9d465)
It seems to be deep in Qt6 base libraries. Also, I don't get why glib2 is used in between.
What is your exact Krusader version (git hash)?
What is your desktop environment? Plasma?
You are sure that your Arch packages, specially qt6-base and glib2 are up to date?
>ADDITIONAL INFORMATION
>NOTE: if Alt-Enter is used instead, the GUI seemingly disappears and then reappears, with the Properties dialog open. Any subsequent invocation of Properties, via context menu or shortcut, appears OK.
That indicates maybe a bug with signal/slot code. Also fits to the stack trace doing event processing.
I have the exact same software versions on Arch and still cannot reproduce it :/ A stack trace with debug symbols would be good.
> What is your exact Krusader version (git hash)? krusader-git 2.9.0.dev.r7107.gecfea02c9-1 > What is your desktop environment? Plasma? Correct > You are sure that your Arch packages, specially qt6-base and glib2 are up to > date? qt6-base 6.8.0-1 glib2 2.82.2-1 > A stack trace with debug symbols would be good. Please advise about a way of getting the debug symbols in question. Created attachment 175379 [details]
Stack trace with debug symbols
Thread 1 "krusader" received signal SIGSEGV, Segmentation fault. Downloading 30.04 K source file /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qwidget.h QWidget::rect (this=0x555555930ba0) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qwidget.h:891 891 { return QRect(0,0,data->crect.width(),data->crect.height()); } (gdb) p data $1 = (QWidgetData *) 0x1 <========= This is suspicious (gdb) set logging on Warning: 'set logging on', an alias for the command 'set logging enabled', is deprecated. Use 'set logging enabled on'. Copying output to gdb.txt. Copying debug output to gdb.txt. (gdb) set logging file krusader_debug_stack_trace.txt (gdb) bt #0 QWidget::rect (this=0x555555930ba0) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qwidget.h:891 #1 0x00007ffff696a7cc in QWidgetWindow::handleMouseEvent (this=0x555556cddc50, event=0x7fffffffd8b0) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qwidgetwindow.cpp:639 #2 QWidgetWindow::event (this=0x555556cddc50, event=0x7fffffffd8b0) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qwidgetwindow.cpp:298 #3 0x00007ffff68fe31a in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x555556cddc50, e=0x7fffffffd8b0) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:3294 #4 0x00007ffff59585a8 in QCoreApplication::notifyInternal2 (receiver=0x555556cddc50, event=0x7fffffffd8b0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1165 #5 0x00007ffff59585fd in QCoreApplication::sendSpontaneousEvent (receiver=<optimized out>, event=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1623 #6 0x00007ffff5f85d4b in QGuiApplicationPrivate::processMouseEvent (e=0x7fffe0001950) at /usr/src/debug/qt6-base/qtbase/src/gui/kernel/qguiapplication.cpp:2461 #7 0x00007ffff6001284 in QWindowSystemInterface::sendWindowSystemEvents (flags=...) at /usr/src/debug/qt6-base/qtbase/src/gui/kernel/qwindowsysteminterface.cpp:1114 #8 0x00007ffff644da14 in userEventSourceDispatch (source=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/gui/platform/unix/qeventdispatcher_glib.cpp:38 #9 0x00007ffff339a559 in g_main_dispatch (context=0x7fffe8000f30) at ../glib/glib/gmain.c:3357 #10 0x00007ffff33fd157 in g_main_context_dispatch_unlocked (context=0x7fffe8000f30) at ../glib/glib/gmain.c:4208 #11 g_main_context_iterate_unlocked.isra.0 (context=context@entry=0x7fffe8000f30, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4273 #12 0x00007ffff3399a55 in g_main_context_iteration (context=0x7fffe8000f30, may_block=1) at ../glib/glib/gmain.c:4338 #13 0x00007ffff5bbf71d in QEventDispatcherGlib::processEvents (this=0x555555968640, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:396 #14 0x00007ffff5964566 in QEventLoop::processEvents (this=0x7fffffffdd70, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:100 #15 QEventLoop::exec (this=0x7fffffffdd70, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:191 #16 0x00007ffff5959a2f in QCoreApplication::exec () at /usr/src/debug/qt6-base/qtbase/src/corelib/global/qflags.h:74 #17 0x00005555555ef20f in ??? () #18 0x00007ffff5234e08 in __libc_start_call_main (main=main@entry=0x5555555ea9d0, argc=argc@entry=1, argv=argv@entry=0x7fffffffe1e8) at ../sysdeps/nptl/libc_start_call_main.h:58 #19 0x00007ffff5234ecc in __libc_start_main_impl (main=0x5555555ea9d0, argc=1, argv=0x7fffffffe1e8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffe1d8) at ../csu/libc-start.c:360 When unchecking "Right clicking pops context menu immediately" in Settings - Panel - Selection mode, the first right-click causes the GUI to momentarily disapppear and then reappear (similarly to Alt-Enter) but there is no crash. I also noticed that in Dolphin in similar conditions (freshly invoked instance) the very first "Properties" invocation causes the GUI to momentarily disappear and reappear, both via the context menu and via Alt-Enter. So, there are actually two bugs here. Thanks for all the information! Your stack trace > #1 0x00007ffff696a7cc in QWidgetWindow::handleMouseEvent (this=0x555556cddc50, event=0x7fffffffd8b0) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qwidgetwindow.cpp:639 corresponds to the code https://github.com/qt/qtbase/blob/b839e9b36db3a4e50dfb34521d8ef8de1fd01969/src/widgets/kernel/qwidgetwindow.cpp#L636C1-L645C7 The interesting thing here is the QT_NO_CONTEXTMENU macro. According to https://stackoverflow.com/a/60143763/6286694 it is only active on special embedded systems (or for touch screens?). Is this the case for you? And what is the output of `pacman -Qi qt6-base`? In any case this looks like a bug in Qt itself and not in Krusader. The package is exactly as provided by Arch. There are no touch screens in my setup; the system is just a Dell laptop with an external screen connected. I didn't succeed to check if the issue is reproducible with X11 as the system is fully Wayland and X11 just doesn't start. alex@inspiron5620 ~ > pacman -Qi qt6-base 01:07 Name : qt6-base Version : 6.8.0-1 Description : A cross-platform application and UI framework Architecture : x86_64 URL : https://www.qt.io Licenses : GPL3 LGPL3 FDL custom Groups : qt6 Provides : None Depends On : brotli dbus double-conversion fontconfig freetype2 gcc-libs glib2 glibc harfbuzz icu krb5 libb2 libcups libdrm libgl libice libinput libjpeg-turbo libpng libproxy libsm libx11 libxcb libxkbcommon libxkbcommon-x11 md4c mesa mtdev openssl pcre2 shared-mime-info sqlite systemd-libs tslib vulkan-headers xcb-util-cursor xcb-util-image xcb-util-keysyms xcb-util-renderutil xcb-util-wm xdg-utils zlib zstd qt6-translations Optional Deps : freetds: MS SQL driver gdk-pixbuf2: GTK platform plugin [installed] gtk3: GTK platform plugin [installed] libfbclient: Firebird/iBase driver mariadb-libs: MariaDB driver [installed] pango: GTK platform plugin [installed] perl: for syncqt [installed] postgresql-libs: PostgreSQL driver qt6-wayland: to run Qt6 applications in a Wayland session [installed] unixodbc: ODBC driver [installed] Required By : accounts-qml-module akonadi akonadi-calendar akonadi-calendar-tools akonadi-contacts akonadi-import-wizard akonadi-mime akonadi-notes akonadi-search akonadiconsole analitza appstream-qt ark attica audiocd-kio baloo baloo-widgets blinken bluedevil bluez-qt breeze breeze-icons calendarsupport calligra colord-kde digikam discover dolphin dolphin-plugins drkonqi efibooteditor elisa eos-quickstart eventviews ffaudioconverter ffmpegthumbs flatpak-kcm fooyin-git frameworkintegration gnuplot grantleetheme gwenview haruna incidenceeditor kaccounts-integration kaccounts-providers kactivitymanagerd kaddressbook kalarm kalgebra kamera karchive kasts kate kauth kbackup kbookmarks kcachegrind kcalc kcalendarcore kcalutils kcharselect kcmutils kcodecs kcolorchooser kcolorpicker kcolorscheme kcompletion kconfig kconfigwidgets kcontacts kcoreaddons kcrash kcron kdav kdbusaddons kde-cli-tools kde-gtk-config kde-inotify-survey kdeclarative kdeconnect kdecoration kded kdegraphics-mobipocket kdegraphics-thumbnailers kdenetwork-filesharing kdenlive kdepim-addons kdepim-runtime kdeplasma-addons kdesdk-kio kdesdk-thumbnailers kdesu kdf kdiagram kdialog kdiamond kdiff3 kdnssd kdoctools kdsingleapplication kdsoap-qt6 kdsoap-ws-discovery-client keditbookmarks kfilemetadata kfind kgamma kget kglobalaccel kglobalacceld kgoldrunner kgpg kguiaddons khangman khelpcenter kholidays ki18n kiconthemes kid3-common kidentitymanagement kidletime kimageannotator kimageformats kimap kinfocenter kio kio-admin kio-extras kio-fuse kio-gdrive kio-zeroconf kirigami kirigami-addons kitemmodels kitemviews kitinerary kjobwidgets kjournald kldap kleopatra kmahjongg kmail kmail-account-wizard kmailtransport kmbox kmenuedit kmime kmines kmplot knewstuff knotifications knotifyconfig kolourpaint kompare konsole kontact kontactinterface korganizer kpackage kparts kpat kpeople kpimtextedit kpipewire kpkpass kpmcore kpty kquickcharts kquickimageeditor krdc krdp krecorder kreversi krfb kruler krunner krusader-git ksanecore kscreen kscreenlocker kservice kshisen ksmtp ksshaskpass kstatusnotifieritem ksvg ksystemlog ksystemstats ktextaddons ktexteditor ktexttemplate ktextwidgets ktimer ktnef ktorrent ktuberling kubrick kunifiedpush kunitconversion kuserfeedback kvantum kwallet kwalletmanager kwayland kwidgetsaddons kwin kwindowsystem kwordquiz kxmlgui layer-shell-qt libaccounts-qt libakonadi libgravatar libkcddb libkcompactdisc libkdcraw libkdegames libkdepim libkeduvocdocument libkexiv2 libkgapi libkleo libkmahjongg libkomparediff2 libksane libkscreen libksieve libksysguard libktorrent libplasma libqaccessibilityclient-qt6 mailcommon mailimporter marknote mbox-importer messagelib milou mimetreeparser mkvtoolnix-cli modemmanager-qt mpvqt networkmanager-qt okular oxygen palapeli parley partitionmanager pavucontrol-qt pdf4qt phonon-qt6 phonon-qt6-vlc picmi pim-data-exporter pim-sieve-editor pimcommon plasma-activities plasma-activities-stats plasma-browser-integration plasma-desktop plasma-disks plasma-firewall plasma-integration plasma-nm plasma-pa plasma-sdk plasma-systemmonitor plasma-vault plasma-welcome plasma-workspace plasma5support plymouth-kcm polkit-kde-agent polkit-qt6 poppler-qt6 powerdevil print-manager prison pulseaudio-qt purpose python-pyqt6 python-pyqt6-webengine qalculate-qt qca-qt6 qcoro qgpgme-qt6 qpwgraph qqc2-breeze-style qqc2-desktop-style qt-sudo qt6-5compat qt6-charts qt6-connectivity qt6-declarative qt6-httpserver qt6-imageformats qt6-multimedia qt6-multimedia-ffmpeg qt6-multimedia-gstreamer qt6-networkauth qt6-positioning qt6-quick3d qt6-quicktimeline qt6-scxml qt6-sensors qt6-serialport qt6-shadertools qt6-speech qt6-svg qt6-tools qt6-virtualkeyboard qt6-wayland qt6-webchannel qt6-webengine qt6-websockets qt6-webview qt6ct qt6pas qtermwidget qtkeychain-qt6 sddm sddm-kcm shotcut signon-kwallet-extension signon-plugin-oauth2 signon-ui signond skanpage solid sonnet spectacle svgpart syndication syntax-highlighting systemsettings threadweaver tokodon wacomtablet xdg-desktop-portal-kde yakuake zanshin Optional For : cmake doxygen graphviz mlt opencv vivaldi-snapshot Conflicts With : None Replaces : None Installed Size : 58.98 MiB Packager : Antonio Rojas <arojas@archlinux.org> Build Date : Tue 08 Oct 2024 12:51:50 Install Date : Tue 15 Oct 2024 22:36:24 Install Reason : Installed as a dependency for another package Install Script : No Validated By : Signature |