Bug 419402 - [Wayland] With a secondary display, only mouse cursor is drawn after updating Window Decorations
Summary: [Wayland] With a secondary display, only mouse cursor is drawn after updating...
Status: RESOLVED WORKSFORME
Alias: None
Product: kwin
Classification: Plasma
Component: wayland-generic (other bugs)
Version First Reported In: 5.18.3
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-03-30 01:54 UTC by magiblot
Modified: 2023-09-16 03:45 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description magiblot 2020-03-30 01:54:38 UTC
SUMMARY

When changing Window Decorations settings through the System Settings application, the display enters in a state where only the mouse cursor is being updated.

STEPS TO REPRODUCE
1. Start a Plasma Wayland session.
2. Open System Settings and go to Application Style > Window Decorations.
3. Change the window border size setting and click on Apply to make the changes effective.

OBSERVED RESULT

You can move the mouse cursor around, but nothing else is updated on screen. The window manager is still working because the cursor's shape changes when hovering over text areas or dragging windows from the titlebar. If switching to another VT and then back to Plasma, the mouse cursor is still there but everything else is black.

After restarting plasma, the new settings set in Window Decorations are working.

SOFTWARE/OS VERSIONS
Operating System: Arch Linux 
KDE Plasma Version: 5.18.3
KDE Frameworks Version: 5.68.0
Qt Version: 5.14.1
Kernel Version: 5.5.13-arch1-1
OS Type: 64-bit
Processors: 4 × Intel® Core™ i5-6200U CPU @ 2.30GHz
Memory: 11,6 GiB of RAM

ADDITIONAL INFORMATION

Changing the Window Decoration settings causes the following messages to be logged to stdout/stderr:

> libpng error: profile 'Generic RGB Profile': 0h: length does not match profile
> libpng error: profile 'sRGB IEC61966-2.1': 40F0C6E4h: length does not match profile
> kdeinit5: Got EXEC_NEW '/usr/lib/qt/plugins/kf5/kio/tags.so' from launcher.
> kdeinit5: preparing to launch '/usr/lib/qt/plugins/kf5/kio/tags.so'
> kdeinit5: Got EXEC_NEW '/usr/lib/qt/plugins/kf5/kio/trash.so' from launcher.
> kdeinit5: preparing to launch '/usr/lib/qt/plugins/kf5/kio/trash.so'
> kdeinit5: Got EXEC_NEW '/usr/lib/qt/plugins/kf5/kio/file.so' from launcher.
> kdeinit5: preparing to launch '/usr/lib/qt/plugins/kf5/kio/file.so'
> kdeinit5: Got EXEC_NEW '/usr/lib/qt/plugins/kf5/kio/file.so' from launcher.
> kdeinit5: preparing to launch '/usr/lib/qt/plugins/kf5/kio/file.so'
> kdeinit5: Got EXEC_NEW '/usr/lib/qt/plugins/kf5/kio/file.so' from launcher.
> kdeinit5: preparing to launch '/usr/lib/qt/plugins/kf5/kio/file.so'
> kdeinit5: PID 14273 terminated.
> kdeinit5: PID 14268 terminated.
> kdeinit5: PID 14270 terminated.
> kdeinit5: PID 14272 terminated.
> kdeinit5: PID 14269 terminated.
> OpenGL vendor string:                   Intel Open Source Technology Center
> OpenGL renderer string:                 Mesa DRI Intel(R) HD Graphics 520 (Skylake GT2) 
> OpenGL version string:                  4.6 (Core Profile) Mesa 19.3.4
> OpenGL shading language version string: 4.60
> Driver:                                 Intel
> GPU class:                              Unknown
> OpenGL version:                         4.6
> GLSL version:                           4.60
> Mesa version:                           19.3.4
> X server version:                       1.20.7
> Linux kernel version:                   5.5.13
> Requires strict binding:                no
> GLSL shaders:                           yes
> Texture NPOT support:                   yes
> Virtual Machine:                        no
> Filter multi-plane format 961959257
> Filter multi-plane format 825316697
> Filter multi-plane format 842093913
> Filter multi-plane format 909202777
> Filter multi-plane format 875713881
> Filter multi-plane format 961893977
> Filter multi-plane format 825316953
> Filter multi-plane format 842094169
> Filter multi-plane format 909203033
> Filter multi-plane format 875714137
> Filter multi-plane format 842094158
> Filter multi-plane format 909203022
> CoverSwitchConfig::instance called after the first use - ignoring
> FlipSwitchConfig::instance called after the first use - ignoring
> KscreenConfig::instance called after the first use - ignoring
> MouseClickConfig::instance called after the first use - ignoring
> SlideConfig::instance called after the first use - ignoring
> SlidingPopupsConfig::instance called after the first use - ignoring
Comment 1 Vlad Zahorodnii 2020-03-30 13:18:23 UTC
Can you please check whether plasmashell is still running when the screen gets black?
Comment 2 magiblot 2020-03-30 14:58:08 UTC
(In reply to Vlad Zahorodnii from comment #1)
> Can you please check whether plasmashell is still running when the screen
> gets black?

Yes, it is. It is even possible to open the Application Menu and notice the mouse turning into a text cursor when hovering over the search text box.

It's also visible in htop:

> 1  [|||||                                                                                                         3.3%] Time: 16:45:34
> 2  [|                                                                                                             0.7%] Tasks: 69; 1 running
> 3  [|                                                                                                             0.7%] Uptime: 05:38:00
> 4  [                                                                                                              0.0%] Battery: n/a
> Mem[|||||||||||||||||||||||||||||||||                                                                      1.42G/11.6G]
> Swp[                                                                                                          0K/2.01G]
>     PID USER      PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command
> 12531 magiblot   20   0 1922M  212M 99460 S  0.0  1.8  0:04.19 /usr/bin/plasmashell
> 12623 magiblot   20   0 1280M  207M 86016 S  0.7  1.7  0:03.55 /usr/bin/systemsettings5
> 12432 magiblot   -2   0 3020M 99156 70824 S  0.0  0.8  0:03.75 /usr/bin/kwin_wayland --xwayland --libinput --exit-with-session=/usr/lib/startplasma-waylandsession
> 12440 magiblot   20   0 1045M 66300 45428 S  0.0  0.5  0:00.33 /usr/bin/Xwayland -displayfd 47 -rootless -wm 50
> 12479 magiblot   20   0  596M 63652 55032 S  0.0  0.5  0:00.39 kded5
> 12514 magiblot   20   0  285M 41688 36892 S  0.0  0.3  0:00.10 /usr/bin/ksmserver --no-lockscreen
> 12529 magiblot   20   0  349M 41404 36924 S  0.0  0.3  0:00.13 /usr/lib/polkit-kde-authentication-agent-1
> 12506 magiblot   20   0  287M 41304 36624 S  0.0  0.3  0:00.12 /usr/bin/kaccess
> 12564 magiblot   20   0  398M 38960 35164 S  0.0  0.3  0:00.14 /usr/lib/org_kde_powerdevil
> 12471 magiblot   20   0  202M 38344 34168 S  0.0  0.3  0:00.09 /usr/lib/kf5/klauncher --fd=9
> 12565 magiblot   20   0  458M 32424 28940 S  0.0  0.3  0:00.08 /usr/lib/kactivitymanagerd
> 12508 magiblot   20   0  243M 26568 23716 S  0.0  0.2  0:00.06 /usr/bin/plasma_session --no-lockscreen
>   273 root       20   0 60456 26468 24996 S  0.0  0.2  0:01.22 /usr/lib/systemd/systemd-journald
>   818 polkitd    20   0 1626M 23272 16376 S  0.0  0.2  0:01.79 /usr/lib/polkit-1/polkitd --no-debug
> 12538 magiblot   20   0  232M 22512 20400 S  0.0  0.2  0:00.02 /usr/bin/gmenudbusmenuproxy
> 12527 magiblot   20   0  231M 21584 19488 S  0.0  0.2  0:00.02 /usr/bin/xembedsniproxy

Although they may not be useful, here are the stack traces of running plasmashell and kwin_wayland:

plasmashell
> Thread 13 (Thread 0x7f0605d33700 (LWP 12618)):
> #0  0x00007f063eadacf5 in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
> #1  0x00007f063f69acc4 in QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., this=0x55de891820e0) at thread/qwaitcondition_unix.cpp:146
> #2  QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=<optimized out>, mutex=0x55de890bd4e0, deadline=...) at thread/qwaitcondition_unix.cpp:225
> #3  0x00007f063f69ada2 in QWaitCondition::wait(QMutex*, unsigned long) (this=0x55de890bd4e8, mutex=0x55de890bd4e0, time=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qdeadlinetimer.h:68
> #4  0x00007f06413f856b in  () at /usr/lib/libQt5Quick.so.5
> #5  0x00007f06413f87fb in  () at /usr/lib/libQt5Quick.so.5
> #6  0x00007f063f694fd6 in QThreadPrivate::start(void*) (arg=0x55de890bd440) at thread/qthread_unix.cpp:342
> #7  0x00007f063ead446f in start_thread () at /usr/lib/libpthread.so.0
> #8  0x00007f063f31b3d3 in clone () at /usr/lib/libc.so.6
> 
> Thread 12 (Thread 0x7f0606628700 (LWP 12617)):
> #0  0x00007f063eadacf5 in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
> #1  0x00007f063f69acc4 in QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., this=0x55de8906cf90) at thread/qwaitcondition_unix.cpp:146
> #2  QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=<optimized out>, mutex=0x55de890a36c0, deadline=...) at thread/qwaitcondition_unix.cpp:225
> #3  0x00007f063f69ada2 in QWaitCondition::wait(QMutex*, unsigned long) (this=0x55de890a36c8, mutex=0x55de890a36c0, time=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qdeadlinetimer.h:68
> #4  0x00007f06413f856b in  () at /usr/lib/libQt5Quick.so.5
> #5  0x00007f06413f87fb in  () at /usr/lib/libQt5Quick.so.5
> #6  0x00007f063f694fd6 in QThreadPrivate::start(void*) (arg=0x55de890a3620) at thread/qthread_unix.cpp:342
> #7  0x00007f063ead446f in start_thread () at /usr/lib/libpthread.so.0
> #8  0x00007f063f31b3d3 in clone () at /usr/lib/libc.so.6
> 
> Thread 11 (Thread 0x7f0606efb700 (LWP 12609)):
> #0  0x00007f063eadacf5 in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
> #1  0x00007f063f69acc4 in QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., this=0x55de863e5580) at thread/qwaitcondition_unix.cpp:146
> #2  QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=<optimized out>, mutex=0x55de85656d50, deadline=...) at thread/qwaitcondition_unix.cpp:225
> #3  0x00007f063f69ada2 in QWaitCondition::wait(QMutex*, unsigned long) (this=0x55de85656d58, mutex=0x55de85656d50, time=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qdeadlinetimer.h:68
> #4  0x00007f06413f856b in  () at /usr/lib/libQt5Quick.so.5
> #5  0x00007f06413f87fb in  () at /usr/lib/libQt5Quick.so.5
> #6  0x00007f063f694fd6 in QThreadPrivate::start(void*) (arg=0x55de85656cb0) at thread/qthread_unix.cpp:342
> #7  0x00007f063ead446f in start_thread () at /usr/lib/libpthread.so.0
> #8  0x00007f063f31b3d3 in clone () at /usr/lib/libc.so.6
> 
> Thread 10 (Thread 0x7f0607fff700 (LWP 12602)):
> #0  0x00007f063f310abf in poll () at /usr/lib/libc.so.6
> #1  0x00007f063dbaa7a0 in  () at /usr/lib/libglib-2.0.so.0
> #2  0x00007f063dbaa871 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
> #3  0x00007f063f8c90d0 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7f0600000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:423
> #4  0x00007f063f86f57c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7f0607ffed60, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:136
> #5  0x00007f063f693e62 in QThread::exec() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:118
> #6  0x00007f063f694fd6 in QThreadPrivate::start(void*) (arg=0x55de86072a50) at thread/qthread_unix.cpp:342
> #7  0x00007f063ead446f in start_thread () at /usr/lib/libpthread.so.0
> #8  0x00007f063f31b3d3 in clone () at /usr/lib/libc.so.6
> 
> Thread 9 (Thread 0x7f061c87d700 (LWP 12598)):
> #0  0x00007f063eadacf5 in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
> #1  0x00007f063f69acc4 in QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., this=0x55de8563fb40) at thread/qwaitcondition_unix.cpp:146
> #2  QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=<optimized out>, mutex=0x7f063400a330, deadline=...) at thread/qwaitcondition_unix.cpp:225
> #3  0x00007f063f69ada2 in QWaitCondition::wait(QMutex*, unsigned long) (this=0x7f063400a338, mutex=0x7f063400a330, time=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qdeadlinetimer.h:68
> #4  0x00007f06413f856b in  () at /usr/lib/libQt5Quick.so.5
> #5  0x00007f06413f87fb in  () at /usr/lib/libQt5Quick.so.5
> #6  0x00007f063f694fd6 in QThreadPrivate::start(void*) (arg=0x7f063400a290) at thread/qthread_unix.cpp:342
> #7  0x00007f063ead446f in start_thread () at /usr/lib/libpthread.so.0
> #8  0x00007f063f31b3d3 in clone () at /usr/lib/libc.so.6
> 
> Thread 8 (Thread 0x7f061efe6700 (LWP 12595)):
> #0  0x00007f063f310abf in poll () at /usr/lib/libc.so.6
> #1  0x00007f063dbaa7a0 in  () at /usr/lib/libglib-2.0.so.0
> #2  0x00007f063dbaa871 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
> #3  0x00007f063f8c90d0 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7f0614000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:423
> #4  0x00007f063f86f57c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7f061efe5d20, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:136
> #5  0x00007f063f693e62 in QThread::exec() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:118
> #6  0x00007f0641332eab in  () at /usr/lib/libQt5Quick.so.5
> #7  0x00007f063f694fd6 in QThreadPrivate::start(void*) (arg=0x55de854b6690) at thread/qthread_unix.cpp:342
> #8  0x00007f063ead446f in start_thread () at /usr/lib/libpthread.so.0
> #9  0x00007f063f31b3d3 in clone () at /usr/lib/libc.so.6
> 
> Thread 7 (Thread 0x7f06313c1700 (LWP 12594)):
> #0  0x00007f063eadacf5 in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
> #1  0x00007f06331fee1c in  () at /usr/lib/dri/i965_dri.so
> #2  0x00007f06331fea18 in  () at /usr/lib/dri/i965_dri.so
> #3  0x00007f063ead446f in start_thread () at /usr/lib/libpthread.so.0
> #4  0x00007f063f31b3d3 in clone () at /usr/lib/libc.so.6
> 
> Thread 6 (Thread 0x7f0631bc2700 (LWP 12593)):
> #0  0x00007f063eadacf5 in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
> #1  0x00007f06331fee1c in  () at /usr/lib/dri/i965_dri.so
> #2  0x00007f06331fea18 in  () at /usr/lib/dri/i965_dri.so
> #3  0x00007f063ead446f in start_thread () at /usr/lib/libpthread.so.0
> #4  0x00007f063f31b3d3 in clone () at /usr/lib/libc.so.6
> 
> Thread 5 (Thread 0x7f06323c3700 (LWP 12592)):
> #0  0x00007f063eadacf5 in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
> #1  0x00007f06331fee1c in  () at /usr/lib/dri/i965_dri.so
> #2  0x00007f06331fea18 in  () at /usr/lib/dri/i965_dri.so
> #3  0x00007f063ead446f in start_thread () at /usr/lib/libpthread.so.0
> #4  0x00007f063f31b3d3 in clone () at /usr/lib/libc.so.6
> 
> Thread 4 (Thread 0x7f0632bc4700 (LWP 12591)):
> #0  0x00007f063eadacf5 in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
> #1  0x00007f06331fee1c in  () at /usr/lib/dri/i965_dri.so
> #2  0x00007f06331fea18 in  () at /usr/lib/dri/i965_dri.so
> #3  0x00007f063ead446f in start_thread () at /usr/lib/libpthread.so.0
> #4  0x00007f063f31b3d3 in clone () at /usr/lib/libc.so.6
> 
> Thread 3 (Thread 0x7f0639174700 (LWP 12589)):
> #0  0x00007f063f310abf in poll () at /usr/lib/libc.so.6
> #1  0x00007f063dbaa7a0 in  () at /usr/lib/libglib-2.0.so.0
> #2  0x00007f063dbaa871 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
> #3  0x00007f063f8c90d0 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7f062c000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:423
> #4  0x00007f063f86f57c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7f0639173d40, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:136
> #5  0x00007f063f693e62 in QThread::exec() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:118
> #6  0x00007f0641090f89 in  () at /usr/lib/libQt5Qml.so.5
> #7  0x00007f063f694fd6 in QThreadPrivate::start(void*) (arg=0x55de84f05820) at thread/qthread_unix.cpp:342
> #8  0x00007f063ead446f in start_thread () at /usr/lib/libpthread.so.0
> #9  0x00007f063f31b3d3 in clone () at /usr/lib/libc.so.6
> 
> Thread 2 (Thread 0x7f063a3c0700 (LWP 12562)):
> #0  0x00007f063f310abf in poll () at /usr/lib/libc.so.6
> #1  0x00007f063dbaa7a0 in  () at /usr/lib/libglib-2.0.so.0
> #2  0x00007f063dbaa871 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
> #3  0x00007f063f8c90d0 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7f0634000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:423
> #4  0x00007f063f86f57c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7f063a3bfd30, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:136
> #5  0x00007f063f693e62 in QThread::exec() (this=this@entry=0x7f06409f0060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at ../../include/QtCore/../../src/corelib/global/qflags.h:118
> #6  0x00007f064096bb28 in QDBusConnectionManager::run() (this=0x7f06409f0060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:179
> #7  0x00007f063f694fd6 in QThreadPrivate::start(void*) (arg=0x7f06409f0060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:342
> #8  0x00007f063ead446f in start_thread () at /usr/lib/libpthread.so.0
> #9  0x00007f063f31b3d3 in clone () at /usr/lib/libc.so.6
> 
> Thread 1 (Thread 0x7f063aff7840 (LWP 12531)):
> #0  0x00007f063f310abf in poll () at /usr/lib/libc.so.6
> #1  0x00007f063dbaa7a0 in  () at /usr/lib/libglib-2.0.so.0
> #2  0x00007f063dbaa871 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
> #3  0x00007f063f8c90d0 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x55de84d4cd80, flags=...) at kernel/qeventdispatcher_glib.cpp:423
> #4  0x00007f063f86f57c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffea4f662c0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:136
> #5  0x00007f063f877586 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:118
> #6  0x000055de83370018 in  ()
> #7  0x00007f063f243023 in __libc_start_main () at /usr/lib/libc.so.6
> #8  0x000055de8337023e in _start ()
> quit
> Please answer y or n.
> Detaching from program: /usr/bin/plasmashell, process 12531
> [Inferior 1 (process 12531) detached]

kwin_wayland
> Thread 10 (Thread 0x7fe979274700 (LWP 12475)):
> #0  0x00007fe995756cf5 in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
> #1  0x00007fe9943d1f3c in  () at /usr/lib/libQt5Script.so.5
> #2  0x00007fe9943d1f59 in  () at /usr/lib/libQt5Script.so.5
> #3  0x00007fe99575046f in start_thread () at /usr/lib/libpthread.so.0
> #4  0x00007fe9946f93d3 in clone () at /usr/lib/libc.so.6
> 
> Thread 9 (Thread 0x7fe97affd700 (LWP 12472)):
> #0  0x00007fe9946eeabf in poll () at /usr/lib/libc.so.6
> #1  0x00007fe991c077a0 in  () at /usr/lib/libglib-2.0.so.0
> #2  0x00007fe991c07871 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
> #3  0x00007fe994cd10d0 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fe95c000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:423
> #4  0x00007fe994c7757c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fe97affcd40, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:136
> #5  0x00007fe994a9be62 in QThread::exec() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:118
> #6  0x00007fe993333f89 in  () at /usr/lib/libQt5Qml.so.5
> #7  0x00007fe994a9cfd6 in QThreadPrivate::start(void*) (arg=0x556751f7bdc0) at thread/qthread_unix.cpp:342
> #8  0x00007fe99575046f in start_thread () at /usr/lib/libpthread.so.0
> #9  0x00007fe9946f93d3 in clone () at /usr/lib/libc.so.6
> 
> Thread 8 (Thread 0x7fe97bfff700 (LWP 12439)):
> #0  0x00007fe995756cf5 in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
> #1  0x00007fe9863ede1c in  () at /usr/lib/dri/i965_dri.so
> #2  0x00007fe9863eda18 in  () at /usr/lib/dri/i965_dri.so
> #3  0x00007fe99575046f in start_thread () at /usr/lib/libpthread.so.0
> #4  0x00007fe9946f93d3 in clone () at /usr/lib/libc.so.6
> 
> Thread 7 (Thread 0x7fe984db1700 (LWP 12438)):
> #0  0x00007fe995756cf5 in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
> #1  0x00007fe9863ede1c in  () at /usr/lib/dri/i965_dri.so
> #2  0x00007fe9863eda18 in  () at /usr/lib/dri/i965_dri.so
> #3  0x00007fe99575046f in start_thread () at /usr/lib/libpthread.so.0
> #4  0x00007fe9946f93d3 in clone () at /usr/lib/libc.so.6
> 
> Thread 6 (Thread 0x7fe9855b2700 (LWP 12437)):
> #0  0x00007fe995756cf5 in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
> #1  0x00007fe9863ede1c in  () at /usr/lib/dri/i965_dri.so
> #2  0x00007fe9863eda18 in  () at /usr/lib/dri/i965_dri.so
> #3  0x00007fe99575046f in start_thread () at /usr/lib/libpthread.so.0
> #4  0x00007fe9946f93d3 in clone () at /usr/lib/libc.so.6
> 
> Thread 5 (Thread 0x7fe985db3700 (LWP 12436)):
> #0  0x00007fe995756cf5 in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
> #1  0x00007fe9863ede1c in  () at /usr/lib/dri/i965_dri.so
> #2  0x00007fe9863eda18 in  () at /usr/lib/dri/i965_dri.so
> #3  0x00007fe99575046f in start_thread () at /usr/lib/libpthread.so.0
> #4  0x00007fe9946f93d3 in clone () at /usr/lib/libc.so.6
> 
> Thread 4 (Thread 0x7fe987fff700 (LWP 12435)):
> #0  0x00007fe9946eeabf in poll () at /usr/lib/libc.so.6
> #1  0x00007fe991c077a0 in  () at /usr/lib/libglib-2.0.so.0
> #2  0x00007fe991c07871 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
> #3  0x00007fe994cd10d0 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fe97c000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:423
> #4  0x00007fe994c7757c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fe987ffed60, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:136
> #5  0x00007fe994a9be62 in QThread::exec() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:118
> #6  0x00007fe994a9cfd6 in QThreadPrivate::start(void*) (arg=0x5567514bc010) at thread/qthread_unix.cpp:342
> #7  0x00007fe99575046f in start_thread () at /usr/lib/libpthread.so.0
> #8  0x00007fe9946f93d3 in clone () at /usr/lib/libc.so.6
> 
> Thread 3 (Thread 0x7fe98cb7e700 (LWP 12434)):
> #0  0x00007fe9946eeabf in poll () at /usr/lib/libc.so.6
> #1  0x00007fe991c077a0 in  () at /usr/lib/libglib-2.0.so.0
> #2  0x00007fe991c07871 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
> #3  0x00007fe994cd10d0 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fe980000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:423
> #4  0x00007fe994c7757c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fe98cb7dd60, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:136
> #5  0x00007fe994a9be62 in QThread::exec() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:118
> #6  0x00007fe994a9cfd6 in QThreadPrivate::start(void*) (arg=0x5567514c1ae0) at thread/qthread_unix.cpp:342
> #7  0x00007fe99575046f in start_thread () at /usr/lib/libpthread.so.0
> #8  0x00007fe9946f93d3 in clone () at /usr/lib/libc.so.6
> 
> Thread 2 (Thread 0x7fe98d437700 (LWP 12433)):
> #0  0x00007fe9946eeabf in poll () at /usr/lib/libc.so.6
> #1  0x00007fe991c077a0 in  () at /usr/lib/libglib-2.0.so.0
> #2  0x00007fe991c07871 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
> #3  0x00007fe994cd10d0 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fe988000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:423
> #4  0x00007fe994c7757c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fe98d436d30, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:136
> #5  0x00007fe994a9be62 in QThread::exec() (this=this@entry=0x7fe995746060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at ../../include/QtCore/../../src/corelib/global/qflags.h:118
> #6  0x00007fe9956c1b28 in QDBusConnectionManager::run() (this=0x7fe995746060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:179
> #7  0x00007fe994a9cfd6 in QThreadPrivate::start(void*) (arg=0x7fe995746060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:342
> #8  0x00007fe99575046f in start_thread () at /usr/lib/libpthread.so.0
> #9  0x00007fe9946f93d3 in clone () at /usr/lib/libc.so.6
> 
> Thread 1 (Thread 0x7fe98e039cc0 (LWP 12432)):
> #0  0x00007fe9946eebb6 in ppoll () at /usr/lib/libc.so.6
> #1  0x00007fe994ccd023 in qt_ppoll (timeout_ts=0x0, nfds=11, fds=0x556751662d78) at kernel/qcore_unix.cpp:155
> #2  qt_safe_poll(pollfd*, unsigned long, timespec const*) (fds=0x556751662d78, nfds=11, timeout_ts=timeout_ts@entry=0x0) at kernel/qcore_unix.cpp:155
> #3  0x00007fe994cce6ed in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at ../../include/QtCore/../../src/corelib/tools/qarraydata.h:211
> #4  0x00007fe98da1d80e in  () at /usr/lib/qt/plugins/platforms/KWinQpaPlugin.so
> #5  0x00007fe994c7757c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffc8e6b6740, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:136
> #6  0x00007fe994c7f586 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:118
> #7  0x00005567500b1f54 in  ()
> #8  0x00007fe994621023 in __libc_start_main () at /usr/lib/libc.so.6
> #9  0x00005567500b23ce in _start ()
> quit
> Detaching from program: /usr/bin/kwin_wayland, process 12432
> [Inferior 1 (process 12432) detached]
Comment 3 magiblot 2020-03-30 15:17:22 UTC
Oops, sorry for the backtrace spam. I will use attachments next time.

I managed to narrow the issue quite a bit: I realized that my display setup is not standard. I am using a laptop with the lid closed connected to an external screen. In the Display Configuration, the laptop screen is not enabled while the external monitor is.

If I start plasma without the external monitor, then the issue cannot be reproduced. In that case, the relevant console output of the plasma session is:

> kdeinit5: Got EXEC_NEW '/usr/lib/qt/plugins/kf5/kio/desktop.so' from launcher.
> kdeinit5: preparing to launch '/usr/lib/qt/plugins/kf5/kio/desktop.so'
> kdeinit5: Got EXEC_NEW '/usr/lib/qt/plugins/kf5/kio/file.so' from launcher.
> kdeinit5: preparing to launch '/usr/lib/qt/plugins/kf5/kio/file.so'
> kdeinit5: Got EXEC_NEW '/usr/lib/qt/plugins/kf5/kio/file.so' from launcher.
> kdeinit5: preparing to launch '/usr/lib/qt/plugins/kf5/kio/file.so'
> kdeinit5: Got EXEC_NEW '/usr/lib/qt/plugins/kf5/kio/file.so' from launcher.
> kdeinit5: preparing to launch '/usr/lib/qt/plugins/kf5/kio/file.so'
> OpenGL vendor string:                   Intel Open Source Technology Center
> OpenGL renderer string:                 Mesa DRI Intel(R) HD Graphics 520 (Skylake GT2) 
> OpenGL version string:                  4.6 (Core Profile) Mesa 19.3.4
> OpenGL shading language version string: 4.60
> Driver:                                 Intel
> GPU class:                              Unknown
> OpenGL version:                         4.6
> GLSL version:                           4.60
> Mesa version:                           19.3.4
> X server version:                       1.20.7
> Linux kernel version:                   5.5.13
> Requires strict binding:                no
> GLSL shaders:                           yes
> Texture NPOT support:                   yes
> Virtual Machine:                        no
> Filter multi-plane format 961959257
> Filter multi-plane format 825316697
> Filter multi-plane format 842093913
> Filter multi-plane format 909202777
> Filter multi-plane format 875713881
> Filter multi-plane format 961893977
> Filter multi-plane format 825316953
> Filter multi-plane format 842094169
> Filter multi-plane format 909203033
> Filter multi-plane format 875714137
> Filter multi-plane format 842094158
> Filter multi-plane format 909203022
> CoverSwitchConfig::instance called after the first use - ignoring
> FlipSwitchConfig::instance called after the first use - ignoring
> KscreenConfig::instance called after the first use - ignoring
> MouseClickConfig::instance called after the first use - ignoring
> SlideConfig::instance called after the first use - ignoring
> SlidingPopupsConfig::instance called after the first use - ignoring

Which reveals that the libpng error messages are gone.
Comment 4 magiblot 2020-10-16 16:28:26 UTC
New (embarrassingly simple) steps to reproduce:

1. Start a Plasma Wayland session.
2. Start a Wayland application.
3. Alt+F3 > More Actions > Configure Special Application Settings...
4. Close "Edit Application-Specific Settings" window.

On X11, the screen turns black for a fraction of a second. On Wayland, everything but the mouse cursor becomes brozen (even though applications are running properly).
Comment 5 magiblot 2020-10-20 21:29:53 UTC
Still an issue on Plasma 5.20.1.
Comment 6 Vlad Zahorodnii 2020-10-21 12:54:56 UTC
I can confirm this bug. However, it doesn't always surface.
Comment 7 magiblot 2020-10-21 13:00:11 UTC
Okay. Thanks for confirming!
Comment 8 Vlad Zahorodnii 2023-08-17 11:31:20 UTC
I haven't seen this bug in years now. Can you confirm whether this issue still happens on a machine with Plasma 5.27?
Comment 9 Bug Janitor Service 2023-09-01 03:45:27 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least
15 days. Please provide the requested information as soon as
possible and set the bug status as REPORTED. Due to regular bug
tracker maintenance, if the bug is still in NEEDSINFO status with
no change in 30 days the bug will be closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please
mark the bug as REPORTED so that the KDE team knows that the bug is
ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 10 Bug Janitor Service 2023-09-16 03:45:40 UTC
This bug has been in NEEDSINFO status with no change for at least
30 days. The bug is now closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

Thank you for helping us make KDE software even better for everyone!