Bug 433366

Summary: Irrecoverable crash upon using systemd plasma-plasmashell service
Product: [Plasma] plasmashell Reporter: physkets <physkets>
Component: generic-crashAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED DUPLICATE    
Severity: normal CC: kde
Priority: NOR    
Version: 5.21.0   
Target Milestone: 1.0   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: Journal entry of the plasma-plasmashell user service
Journal entry of the filtered plasma-plasmashell user service

Description physkets 2021-02-21 07:11:43 UTC
Created attachment 135998 [details]
Journal entry of the plasma-plasmashell user service

SUMMARY

Plasmashell as well as drkonqi crash to a blank, black screen, when the systemd service is used.

STEPS TO REPRODUCE
1. Enable service with: `kwriteconfig5 --file startkderc --group General --key systemdBoot true`
2. Login to a Wayland session via SDDM


SOFTWARE/OS VERSIONS
Operating System: Arch Linux
KDE Plasma Version: 5.21.0
KDE Frameworks Version: 5.79.0
Qt Version: 5.15.2
Kernel Version: 5.10.16-arch1-1
OS Type: 64-bit
Graphics Platform: Wayland
Processors: 16 × AMD Ryzen 7 PRO 4750U with Radeon Graphics
Memory: 14.9 GiB of RAM
Graphics Processor: AMD RENOIR

ADDITIONAL INFORMATION

```
Upon setting `KDE_DBUG=1`, the cordump is available, and after filtering, the stacktrace of the plasmashell crash looks like this:

           PID: 968 (plasmashell)
           UID: 1000 (username)
           GID: 1000 (username)
        Signal: 11 (SEGV)
     Timestamp: Sun 2021-02-21 12:02:58 IST (11min ago)
  Command Line: /usr/bin/plasmashell --no-respawn
    Executable: /usr/bin/plasmashell
 Control Group: /user.slice/user-1000.slice/user@1000.service/session.slice/plasma-plasmashell.service
          Unit: user@1000.service
     User Unit: plasma-plasmashell.service
         Slice: user-1000.slice
     Owner UID: 1000 (username)
       Boot ID: 0248037dc61d438daf132a8e7ad2ea5c
    Machine ID: 89025bd2327742a98f1b9c991e2606e4
      Hostname: hostname
       Storage: /var/lib/systemd/coredump/core.plasmashell.1000.0248037dc61d438daf132a8e7ad2ea5c.968.1613889178000000.zst
       Message: Process 968 (plasmashell) of user 1000 dumped core.
                
                Stack trace of thread 968:
                #0  0x00007f53f26d1a52 QScreen::name() const (libQt5Gui.so.5 + 0x163a52)
                #1  0x00005568688dd570 n/a (plasmashell + 0x40570)
                #2  0x00005568688e5f1b n/a (plasmashell + 0x48f1b)
                #3  0x00007f53f2305d86 n/a (libQt5Core.so.5 + 0x2ecd86)
                #4  0x00007f53f4371842 KActivities::Consumer::serviceStatusChanged(KActivities::Consumer::ServiceStatus) (libKF5Activities.so.5 + 0xc842)
                #5  0x00007f53f2305dc0 n/a (libQt5Core.so.5 + 0x2ecdc0)
                #6  0x00007f53f43717e2 n/a (libKF5Activities.so.5 + 0xc7e2)
                #7  0x00007f53f4384216 n/a (libKF5Activities.so.5 + 0x1f216)
                #8  0x00007f53f4383c5b n/a (libKF5Activities.so.5 + 0x1ec5b)
                #9  0x00007f53f2305dc0 n/a (libQt5Core.so.5 + 0x2ecdc0)
                #10 0x00007f53f2ca09e0 QDBusPendingCallWatcher::finished(QDBusPendingCallWatcher*) (libQt5DBus.so.5 + 0x649e0)
                #11 0x00007f53f22fb532 QObject::event(QEvent*) (libQt5Core.so.5 + 0x2e2532)
                #12 0x00007f53f2f6d752 QApplicationPrivate::notify_helper(QObject*, QEvent*) (libQt5Widgets.so.5 + 0x15a752)
                #13 0x00007f53f22cea2a QCoreApplication::notifyInternal2(QObject*, QEvent*) (libQt5Core.so.5 + 0x2b5a2a)
                #14 0x00007f53f22d1523 QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (libQt5Core.so.5 + 0x2b8523)
                #15 0x00007f53f2328054 n/a (libQt5Core.so.5 + 0x30f054)
                #16 0x00007f53f06b0b84 g_main_context_dispatch (libglib-2.0.so.0 + 0x53b84)
                #17 0x00007f53f0704c21 n/a (libglib-2.0.so.0 + 0xa7c21)
                #18 0x00007f53f06af3b1 g_main_context_iteration (libglib-2.0.so.0 + 0x523b1)
                #19 0x00007f53f2327691 QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (libQt5Core.so.5 + 0x30e691)
                #20 0x00007f53f22cd3ac QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (libQt5Core.so.5 + 0x2b43ac)
                #21 0x00007f53f22d5844 QCoreApplication::exec() (libQt5Core.so.5 + 0x2bc844)
                #22 0x00005568688bb069 n/a (plasmashell + 0x1e069)
                #23 0x00007f53f1c94b25 __libc_start_main (libc.so.6 + 0x27b25)
                #24 0x00005568688bb2ae n/a (plasmashell + 0x1e2ae)
                
                Stack trace of thread 1249:
                #0  0x00007f53f11299ba __futex_abstimed_wait_common64 (libpthread.so.0 + 0x159ba)
                #1  0x00007f53f1123574 pthread_cond_timedwait@@GLIBC_2.3.2 (libpthread.so.0 + 0xf574)
                #2  0x00007f53f20ed048 QWaitCondition::wait(QMutex*, QDeadlineTimer) (libQt5Core.so.5 + 0xd4048)
                #3  0x00007f53f20ea4f4 n/a (libQt5Core.so.5 + 0xd14f4)
                #4  0x00007f53f20e6eff n/a (libQt5Core.so.5 + 0xcdeff)
                #5  0x00007f53f111d299 start_thread (libpthread.so.0 + 0x9299)
                #6  0x00007f53f1d6c053 __clone (libc.so.6 + 0xff053)
                
                Stack trace of thread 1242:
                #0  0x00007f53f11299ba __futex_abstimed_wait_common64 (libpthread.so.0 + 0x159ba)
                #1  0x00007f53f1123574 pthread_cond_timedwait@@GLIBC_2.3.2 (libpthread.so.0 + 0xf574)
                #2  0x00007f53f20ed048 QWaitCondition::wait(QMutex*, QDeadlineTimer) (libQt5Core.so.5 + 0xd4048)
                #3  0x00007f53f20ea4f4 n/a (libQt5Core.so.5 + 0xd14f4)
                #4  0x00007f53f20e6eff n/a (libQt5Core.so.5 + 0xcdeff)
                #5  0x00007f53f111d299 start_thread (libpthread.so.0 + 0x9299)
                #6  0x00007f53f1d6c053 __clone (libc.so.6 + 0xff053)
                
                Stack trace of thread 1011:
                #0  0x00007f53f11299ba __futex_abstimed_wait_common64 (libpthread.so.0 + 0x159ba)
                #1  0x00007f53f1123260 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xf260)
                #2  0x00007f53e6d1c9bc n/a (radeonsi_dri.so + 0x4ee9bc)
                #3  0x00007f53e6d1b238 n/a (radeonsi_dri.so + 0x4ed238)
                #4  0x00007f53f111d299 start_thread (libpthread.so.0 + 0x9299)
                #5  0x00007f53f1d6c053 __clone (libc.so.6 + 0xff053)
                
                Stack trace of thread 1250:
                #0  0x00007f53f11299ba __futex_abstimed_wait_common64 (libpthread.so.0 + 0x159ba)
                #1  0x00007f53f1123574 pthread_cond_timedwait@@GLIBC_2.3.2 (libpthread.so.0 + 0xf574)
                #2  0x00007f53f20ed048 QWaitCondition::wait(QMutex*, QDeadlineTimer) (libQt5Core.so.5 + 0xd4048)
                #3  0x00007f53f20ea4f4 n/a (libQt5Core.so.5 + 0xd14f4)
                #4  0x00007f53f20e6eff n/a (libQt5Core.so.5 + 0xcdeff)
                #5  0x00007f53f111d299 start_thread (libpthread.so.0 + 0x9299)
                #6  0x00007f53f1d6c053 __clone (libc.so.6 + 0xff053)
                
                Stack trace of thread 1005:
                #0  0x00007f53f11299ba __futex_abstimed_wait_common64 (libpthread.so
```

Also attached is the journal entry of the service
Comment 1 physkets 2021-02-21 07:52:18 UTC
Some additional information:

* This machine is a laptop connected to an external display. I use only the external monitor, with the built-in display kept disabled.

* The plasma crash seems to always have happened when using a Wayland session, but it would automatically recover. The difference, now, when using the systemd service was that it did not recover. It was upon adding the KDE_DEBUG=1 env var to the unit file, that it recovered automatically again, and registered a plasmashell crash so that its information was retrievable with 'coredumpctl'.
Comment 2 physkets 2021-02-21 07:58:54 UTC
Created attachment 135999 [details]
Journal entry of the filtered plasma-plasmashell user service
Comment 3 David Edmundson 2021-02-21 07:59:33 UTC
Crash is here.

As for restarting there was a bug if we get an assert instead of a seg fault. We fixed this in latest (unreleased) kcrash framework, which is also why that env var fixes it.

*** This bug has been marked as a duplicate of bug 431401 ***
Comment 4 physkets 2021-02-23 04:32:54 UTC

*** This bug has been marked as a duplicate of bug 421700 ***