Summary: | When trying to activate broken desktop files an assert in libdbus is hit | ||
---|---|---|---|
Product: | [Frameworks and Libraries] frameworks-kio | Reporter: | Kyungjoon Lee <kjoonlee> |
Component: | general | Assignee: | KIO Bugs <kio-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | aaronjwoodbridge, agurenko, atu, kde, kde, kdelibs-bugs, kevinleroy, nate, nicolas.fella, parag.lkml, postix, sajjaddns, sunny.moon2962, xlkill4r, zargulthewizard, zuurveldt |
Priority: | HI | Keywords: | drkonqi |
Version: | 5.110.0 | ||
Target Milestone: | --- | ||
Platform: | Fedora RPMs | ||
OS: | Linux | ||
See Also: | https://bugzilla.redhat.com/show_bug.cgi?id=2242454 | ||
Latest Commit: | https://invent.kde.org/frameworks/kio/-/commit/eb12ebeab5a6408c483ecbe681a353bb95cff782 | Version Fixed In: | 5.111 |
Sentry Crash Report: | |||
Attachments: |
New crash information added by DrKonqi
The firefox desktop file stderr from after crash |
Description
Kyungjoon Lee
2023-10-06 05:38:58 UTC
Another workaround: sudo dnf downgrade firefox-118.0 How is firefox installed? Could you attach the desktop file of firefox? It looks like we are in the DbusActivatable=True path, but my firefox 118.0.1 file does not contain it. destination=0xaaab8a342e18 "firefox", path=0xaaab8a342f68 "/firefox", iface=0xaaab8a302fa8 "org.freedesktop.Application", method=0xaaab8a3433b8 "Activate" this looks certainly wrong as well but something goes wrong with the arguments as well Created attachment 162117 [details]
New crash information added by DrKonqi
plasmashell (5.27.8) using Qt 5.15.10
The same is happening to me with the normal x68 Fedora KDE spin, right after updating Firefox to version 118.0.1-4.fc38.
I'm experiencing the same problem as described above with the same workaround. Unpining and repinning Firefox from the Task Manager did not help.
-- Backtrace (Reduced):
#7 0x00007f17bc067cf2 in _dbus_abort.cold () from /lib64/libdbus-1.so.3
#8 0x00007f17bc090102 in _dbus_warn_check_failed () from /lib64/libdbus-1.so.3
#9 0x00007f17bc07eab1 in dbus_message_new_method_call () from /lib64/libdbus-1.so.3
#10 0x00007f17be7451fc in QDBusMessagePrivate::toDBusMessage(QDBusMessage const&, QFlags<QDBusConnection::ConnectionCapability>, QDBusError*) () from /lib64/libQt5DBus.so.5
#11 0x00007f17be73e635 in QDBusConnectionPrivate::sendWithReplyAsync(QDBusMessage const&, QObject*, char const*, char const*, int) () from /lib64/libQt5DBus.so.5
I have added my desktop file to the attachments. There are, however, two other firefox desktop files in my /usr/share/applications ending in »-wayland« and »-x11« which have appeared in my program list since the update and which weren't there before. Created attachment 162118 [details]
The firefox desktop file
I have the same desktop file that Tristan has uploaded; and commenting out line 54 (DBusActivatable=true) from /usr/share/applications/firefox.desktop file is another workaround that lets me launch Firefox 118.0.1 from the Task Manager again. Created attachment 162120 [details]
stderr from after crash
Lines 42-44 from plasmashell stderr:
QString::arg: 2 argument(s) missing in firefox
dbus[5702]: arguments to dbus_message_new_method_call() were incorrect, assertion "destination == NULL || _dbus_check_is_valid_bus_name (destination)" failed in file ../../dbus/dbus-message.c line 1375.
This is normally a bug in some application using the D-Bus library.
A possibly relevant merge request was started @ https://invent.kde.org/frameworks/kio/-/merge_requests/1440 According to the desktop file spec The application must name its desktop file in accordance with the naming recommendations in the introduction section (e.g. the filename must be like org.example.FooViewer.desktop). The application must have a D-Bus service activatable at the well-known name that is equal to the desktop file name with the .desktop portion removed (for our example, org.example.FooViewer). The above interface must be implemented at an object path determined as follows: starting with the well-known D-Bus name of the application, change all dots to slashes and prefix a slash. If a dash ('-') is found, convert it to an underscore ('_'). For our example, this is /org/example/FooViewer. Firefox names it desktop file only "firefox.desktop" so we make a call to "firefox" but according to the dbus spec - Bus names are composed of 1 or more elements separated by a period ('.') character. All elements must contain at least one character. - Bus names must contain at least one '.' (period) character (and thus at least two elements). So the desktop file of firefox is broken but we still should guard for broken desktop files. I reported this to firefox *** Bug 475276 has been marked as a duplicate of this bug. *** Git commit 246ea181b16603c1bbbe6912c27a8bfc503e894f by Nicolas Fella, on behalf of Harald Sitter. Committed on 06/10/2023 at 15:26. Pushed by nicolasfella into branch 'master'. dbusactivationrunner: only activate well-formed services From the specification: > The application must name its desktop file in accordance with the > naming recommendations in the introduction section (e.g. the filename > must be like org.example.FooViewer.desktop). When an application is in violation of this we'll not dbus activate it lest libdbus assert crashes in our face M +4 -0 src/gui/dbusactivationrunner.cpp https://invent.kde.org/frameworks/kio/-/commit/246ea181b16603c1bbbe6912c27a8bfc503e894f Git commit eb12ebeab5a6408c483ecbe681a353bb95cff782 by Nicolas Fella, on behalf of Harald Sitter. Committed on 06/10/2023 at 15:45. Pushed by nicolasfella into branch 'kf5'. dbusactivationrunner: only activate well-formed services From the specification: > The application must name its desktop file in accordance with the > naming recommendations in the introduction section (e.g. the filename > must be like org.example.FooViewer.desktop). When an application is in violation of this we'll not dbus activate it lest libdbus assert crashes in our face (cherry picked from commit 246ea181b16603c1bbbe6912c27a8bfc503e894f) M +4 -0 src/gui/dbusactivationrunner.cpp https://invent.kde.org/frameworks/kio/-/commit/eb12ebeab5a6408c483ecbe681a353bb95cff782 A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/3374 *** Bug 475291 has been marked as a duplicate of this bug. *** *** Bug 475295 has been marked as a duplicate of this bug. *** Clicking Firefox in Kickoff search results does the same thing. *** Bug 475323 has been marked as a duplicate of this bug. *** For me, firefox opens via application launcher or terminal, but crashed via the task manager. Also it happens the same for steam, but steam I am not able to launch via application launcher, only via terminal. This started to happen after the update to Fedora 38. Operating System: Fedora Linux 38 KDE Plasma Version: 5.27.8 KDE Frameworks Version: 5.110.0 Qt Version: 5.15.10 Kernel Version: 6.5.5-200.fc38.x86_64 (64-bit) Graphics Platform: Wayland Processors: 24 × AMD Ryzen 9 7900 12-Core Processor Memory: 30.5 GiB of RAM Graphics Processor: AMD Radeon RX 6700 XT Manufacturer: ASUS *** Bug 475330 has been marked as a duplicate of this bug. *** *** Bug 475237 has been marked as a duplicate of this bug. *** *** Bug 475305 has been marked as a duplicate of this bug. *** *** Bug 475355 has been marked as a duplicate of this bug. *** >For me, firefox opens via application launcher or terminal, but crashed via the task manager.
This is because kicker/kickoff sets DeleteTemporaryFiles flag which causes us to not use Dbusactviation
|