Bug 467696 - `plasmashell -v` segmentation fault (core dumped)
Summary: `plasmashell -v` segmentation fault (core dumped)
Status: RESOLVED UPSTREAM
Alias: None
Product: plasmashell
Classification: Plasma
Component: generic-crash (show other bugs)
Version: 5.27.3
Platform: NixOS Linux
: NOR crash
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-03-22 16:21 UTC by Aroun
Modified: 2023-03-24 15:51 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Aroun 2023-03-22 16:21:29 UTC
SUMMARY
On NixOS 22.11, and also on unstable (plasma 5.27.3), executing `plasmashell -v` outputs the name of the program and the version, but then segfaults.
As a comparison, executing `kbroadcastnotification -v`, gives a similar output but does not segfault.
Please see the issue reported on the nix repo https://github.com/NixOS/nixpkgs/issues/220168#issuecomment-1475003453
The segfault seem to be the cause for an issue on latte-dock https://github.com/NixOS/nixpkgs/issues/212828

STEPS TO REPRODUCE
If you are on NixOS:
1. Open konsole
2. `plasmashell -v` will segfault

If you don't have NixOS, a quick way to reproduce is:
1. Download the official NixOS virtualbox ova from https://nixos.org/download.html#nixos-virtualbox
2. Import it in VirtualBox
3. Start the vm
4. Open konsole
5. `plasmashell -v` will segfault

OBSERVED RESULT
[:~] % plasmashell -v                                                                  
plasmashell 5.26.5
zsh: segmentation fault (core dumped)  plasmashell -v

EXPECTED RESULT
No segfault

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: NixOS 22.11
KDE Plasma Version: 5.26.5
KDE Frameworks Version: 5.100.0
Qt Version: 5.15.7

ADDITIONAL INFORMATION
This is the backtrace that I could produce. I am trying hard to get the debugging symbols working but it seems they are not loading.
```
Thread 2 "QDBusConnection" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffff076c640 (LWP 43533)]
0x00007ffff53bdc6c in QObject::disconnect(QObject const*, char const*, QObject const*, char const*) () from /nix/store/mcg2zb0kvb8vqlipmnyc0yyklmasg202-qtbase-5.15.7/lib/libQt5Core.so.5
(gdb) bt
#0  0x00007ffff53bdc6c in QObject::disconnect(QObject const*, char const*, QObject const*, char const*) ()
   from /nix/store/mcg2zb0kvb8vqlipmnyc0yyklmasg202-qtbase-5.15.7/lib/libQt5Core.so.5
#1  0x00007ffff5d14608 in ?? ()
   from /nix/store/mcg2zb0kvb8vqlipmnyc0yyklmasg202-qtbase-5.15.7/lib/libQt5DBus.so.5
#2  0x00007ffff5d06568 in ?? ()
   from /nix/store/mcg2zb0kvb8vqlipmnyc0yyklmasg202-qtbase-5.15.7/lib/libQt5DBus.so.5
#3  0x00007ffff5199e41 in ?? ()
   from /nix/store/mcg2zb0kvb8vqlipmnyc0yyklmasg202-qtbase-5.15.7/lib/libQt5Core.so.5
#4  0x00007ffff4c33e86 in start_thread (arg=<optimized out>) at pthread_create.c:442
#5  0x00007ffff4cbad70 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
```
This is the relevant `dbus-monitor` output:
```
method call time=1679500202.855109 sender=:1.214 -> destination=org.freedesktop.DBus serial=1 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=Hello
method return time=1679500202.855125 sender=org.freedesktop.DBus -> destination=:1.214 serial=1 reply_serial=1
   string ":1.214"
signal time=1679500202.855132 sender=org.freedesktop.DBus -> destination=(null destination) serial=185 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
   string ":1.214"
   string ""
   string ":1.214"
signal time=1679500202.855154 sender=org.freedesktop.DBus -> destination=:1.214 serial=2 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameAcquired
   string ":1.214"
method call time=1679500202.855475 sender=:1.214 -> destination=org.freedesktop.portal.Desktop serial=2 path=/org/freedesktop/portal/desktop; interface=org.freedesktop.DBus.Properties; member=Get
   string "org.freedesktop.portal.Screenshot"
   string "version"
method return time=1679500202.855735 sender=:1.4 -> destination=:1.214 serial=362 reply_serial=2
   variant       uint32 2
method call time=1679500202.995686 sender=:1.214 -> destination=org.freedesktop.DBus serial=3 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch
   string "type='signal',path='/plasmashellrc',interface='org.kde.kconfig.notify',member='ConfigChanged'"
method call time=1679500202.995812 sender=:1.214 -> destination=org.freedesktop.DBus serial=4 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch
   string "type='signal',path='/kdeglobals',interface='org.kde.kconfig.notify',member='ConfigChanged'"
method call time=1679500202.996948 sender=:1.214 -> destination=org.freedesktop.DBus serial=5 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch
   string "type='signal',path='/BreezeStyle',interface='org.kde.Breeze.Style',member='reparseConfiguration'"
method call time=1679500202.996996 sender=:1.214 -> destination=org.freedesktop.DBus serial=6 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch
   string "type='signal',path='/BreezeDecoration',interface='org.kde.Breeze.Style',member='reparseConfiguration'"
method call time=1679500202.997079 sender=:1.214 -> destination=org.freedesktop.DBus serial=7 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch
   string "type='signal',path='/KGlobalSettings',interface='org.kde.KGlobalSettings',member='notifyChange'"
method call time=1679500202.997089 sender=:1.214 -> destination=org.freedesktop.DBus serial=8 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch
   string "type='signal',path='/KWin',interface='org.kde.KWin',member='reloadConfig'"
signal time=1679500203.003356 sender=org.freedesktop.DBus -> destination=:1.214 serial=5 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameLost
   string ":1.214"
signal time=1679500203.003369 sender=org.freedesktop.DBus -> destination=(null destination) serial=186 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
   string ":1.214"
   string ":1.214"
   string ""
```
Comment 1 Bug Janitor Service 2023-03-22 16:33:58 UTC
Thank you for the bug report!

Please note that Plasma 5.26.5 will not be supported for much longer by KDE; supported versions are 5.27, and 5.27 or newer.

Please upgrade to the latest version as soon as your distribution makes it available to you. Plasma is a fast-moving project, and bugs in one version are often fixed in the next one.
Comment 2 Aroun 2023-03-23 00:06:13 UTC
Thank you @ Bug Janitor Service 
I updated my system to NixOS unstable and the crash still happens. I updated the bug description accordingly.

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: NixOS unstable
KDE Plasma Version: 5.27.3
KDE Frameworks Version: 5.104.0
Qt Version: 5.15.8
Comment 3 David Redondo 2023-03-23 08:52:21 UTC
Without the relevant symbols this looks more like an issue in Qt to me, but without them I can't do anything here really
Comment 4 Aroun 2023-03-23 10:10:57 UTC
(In reply to David Redondo from comment #3)
> Without the relevant symbols this looks more like an issue in Qt to me, but
> without them I can't do anything here really

I finally managed to build plasma-workspace with Qt debugging symbols.
Please see the backtrace:
```
Thread 2 "QDBusConnection" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffff0a3c640 (LWP 470584)]
0x00007ffff524b5fa in QObject::disconnect (sender=0x591fa0, signal=signal@entry=0x0, 
    receiver=receiver@entry=0x7fffec001c00, method=method@entry=0x0) at kernel/qobject.cpp:3141
3141    kernel/qobject.cpp: No such file or directory.
(gdb) bt
#0  0x00007ffff524b5fa in QObject::disconnect (sender=0x591fa0, signal=signal@entry=0x0, 
    receiver=receiver@entry=0x7fffec001c00, method=method@entry=0x0) at kernel/qobject.cpp:3141
#1  0x00007ffff5cc4f40 in QObject::disconnect (member=0x0, receiver=0x7fffec001c00, this=<optimized out>)
    at ../../include/QtCore/../../src/corelib/kernel/qobject.h:359
#2  QDBusConnectionPrivate::closeConnection (this=this@entry=0x7fffec001c00) at qdbusintegrator.cpp:1162
#3  0x00007ffff5cb9f40 in QDBusConnectionManager::run (
    this=0x7ffff5d24060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>)
    at qdbusconnection.cpp:189
#4  0x00007ffff50b8814 in QThreadPrivate::start (
    arg=0x7ffff5d24060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>)
    at thread/qthread_unix.cpp:330
#5  0x00007ffff4888e86 in start_thread (arg=<optimized out>) at pthread_create.c:442
#6  0x00007ffff490fd30 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
```
Comment 5 David Redondo 2023-03-23 12:41:17 UTC
Indeed I would not suspect anything kde related at first glance, please report to qt
Comment 6 Aroun 2023-03-23 20:27:36 UTC
(In reply to David Redondo from comment #5)
> Indeed I would not suspect anything kde related at first glance, please
> report to qt

Reported at https://bugreports.qt.io/browse/QTBUG-112258
Comment 7 Aroun 2023-03-24 03:49:16 UTC
(In reply to David Redondo from comment #5)
> Indeed I would not suspect anything kde related at first glance, please
> report to qt

@David Redondo

Please check the reply from Qt https://bugreports.qt.io/browse/QTBUG-112258?focusedCommentId=714487&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-714487. Any idea how to move forward?
Comment 8 Fushan Wen 2023-03-24 14:52:50 UTC
Looks like only NixOS is affected
Comment 9 Fushan Wen 2023-03-24 14:54:57 UTC
Can you run `QDBUS_DEBUG=1 plasmashell -v` and post the output here?
Comment 10 Aroun 2023-03-24 15:51:52 UTC
(In reply to Fushan Wen from comment #9)
> Can you run `QDBUS_DEBUG=1 plasmashell -v` and post the output here?

[:~] % QDBUS_DEBUG=1 plasmashell -v
QDBusConnectionPrivate(0x7efd38001c00) : connected successfully
QDBusConnectionPrivate(0x7efd38001c00) got message (signal): QDBusMessage(type=Signal, service="org.freedesktop.DBus", path="/org/freedesktop/DBus", interface="org.freedesktop.DBus", member="NameAcquired", signature="s", contents=(":1.524") )
QDBusConnectionPrivate(0x7efd38001c00) delivery is suspended
QDBusConnectionPrivate(0x7efd38001c00) sending message: QDBusMessage(type=MethodCall, service="org.freedesktop.portal.Desktop", path="/org/freedesktop/portal/desktop", interface="org.freedesktop.DBus.Properties", member="Get", signature="", contents=("org.freedesktop.portal.Screenshot", "version") )
QDBusConnectionPrivate(0x7efd38001c00) got message reply: QDBusMessage(type=MethodReturn, service=":1.4", signature="v", contents=([Variant(uint): 2]) )
QDBusConnectionPrivate(0x7efd38001c00) Adding rule: "type='signal',path='/plasmashellrc',interface='org.kde.kconfig.notify',member='ConfigChanged'"
QDBusConnectionPrivate(0x7efd38001c00) Adding rule: "type='signal',path='/kdeglobals',interface='org.kde.kconfig.notify',member='ConfigChanged'"
QDBusConnectionPrivate(0x7efd38001c00) Adding rule: "type='signal',path='/BreezeStyle',interface='org.kde.Breeze.Style',member='reparseConfiguration'"
QDBusConnectionPrivate(0x7efd38001c00) Adding rule: "type='signal',path='/BreezeDecoration',interface='org.kde.Breeze.Style',member='reparseConfiguration'"
QDBusConnectionPrivate(0x7efd38001c00) Adding rule: "type='signal',path='/KGlobalSettings',interface='org.kde.KGlobalSettings',member='notifyChange'"
QDBusConnectionPrivate(0x7efd38001c00) Adding rule: "type='signal',path='/KWin',interface='org.kde.KWin',member='reloadConfig'"
plasmashell 5.27.3
QDBusConnectionPrivate(0x7efd38001c00) Disconnected
zsh: segmentation fault (core dumped)  QDBUS_DEBUG=1 plasmashell -v
[:~] 139 %