Summary: | Wayland session crashes after I change some settings in system settings | ||
---|---|---|---|
Product: | [Plasma] kwin | Reporter: | Patrick Silva <bugseforuns> |
Component: | wayland-generic | Assignee: | KWin default assignee <kwin-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | fabian, kde, nate, subdiff |
Priority: | NOR | ||
Version: | 5.16.90 | ||
Target Milestone: | --- | ||
Platform: | Arch Linux | ||
OS: | Linux | ||
Latest Commit: | https://commits.kde.org/kwin/7459aabcac2471862a35a7c045de7176b5435f1c | Version Fixed In: | 5.17.2 |
Sentry Crash Report: |
Description
Patrick Silva
2019-09-16 19:05:32 UTC
Still crashing on Plasma 5.17 beta. Operating System: Arch Linux KDE Plasma Version: 5.16.90 KDE Frameworks Version: 5.62.0 Qt Version: 5.13.1 kwin_wayland also crashes when I enable the OSD that appears when we switch between virtual desktops in virtual desktop KCM. LinuxDmabufUnstableV1Interface DMABuf? What clients are you running? Can I see the output of "env" on your system. I can reproduce the crash even if system settings is the only app running. output of env on Neon unstable edition: GS_LIB=/home/stalker/.fonts KDE_FULL_SESSION=true LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36: LC_MEASUREMENT=pt_BR.UTF-8 LESSCLOSE=/usr/bin/lesspipe %s %s LC_PAPER=pt_BR.UTF-8 LC_MONETARY=pt_BR.UTF-8 LANG=pt_BR.UTF-8 PROFILEHOME= DISPLAY=:1 SHELL_SESSION_ID=ea62b7bd22f6461a9831ccfd03e1c4cf COLORTERM=truecolor XDG_VTNR=2 PAM_KWALLET5_LOGIN=/run/user/1000/kwallet5.socket LC_NAME=pt_BR.UTF-8 XDG_SESSION_ID=3 USER=stalker DESKTOP_SESSION=/usr/share/wayland-sessions/plasmawayland KONSOLE_VERSION=191170 WAYLAND_DISPLAY=wayland-0 PWD=/home/stalker HOME=/home/stalker XCURSOR_SIZE=0 XDG_SESSION_TYPE=wayland XDG_DATA_DIRS=/home/stalker/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share:/var/lib/snapd/desktop KONSOLE_DBUS_SESSION=/Sessions/1 XDG_SESSION_DESKTOP=KDE LC_ADDRESS=pt_BR.UTF-8 LC_NUMERIC=pt_BR.UTF-8 KONSOLE_DBUS_WINDOW=/Windows/1 X11LAYOUT=br QT_WAYLAND_FORCE_DPI=96 TERM=xterm-256color SHELL=/bin/bash KONSOLE_DBUS_SERVICE=:1.34 XDG_SESSION_CLASS=user XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0 XCURSOR_THEME=breeze_cursors XDG_CURRENT_DESKTOP=KDE XDG_SEAT=seat0 SHLVL=1 COLORFGBG=0;15 LANGUAGE=en_US:pt_BR X11MODEL=pc105 WINDOWID=1 LC_TELEPHONE=pt_BR.UTF-8 PLASMA_USE_QT_SCALING=1 LOGNAME=stalker DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-PW3jxahpzE,guid=04ac4644ffb46c513d930f555da86b19 XDG_RUNTIME_DIR=/run/user/1000 XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session1 QT_AUTO_SCREEN_SCALE_FACTOR=0 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin LC_IDENTIFICATION=pt_BR.UTF-8 KDE_SESSION_UID=1000 KDE_SESSION_VERSION=5 SESSION_MANAGER=local/neon-laptop:@/tmp/.ICE-unix/1159,unix/neon-laptop:/tmp/.ICE-unix/1159 LESSOPEN=| /usr/bin/lesspipe %s LC_TIME=pt_BR.UTF-8 _=/usr/bin/env I got a session crash here as well after changing font settings: #0 0x00007f8365baec19 in QHashData::detach_helper(void (*)(QHashData::Node*, void*), void (*)(QHashData::Node*), int, int) () at /usr/lib64/libQt5Core.so.5 #1 0x00007f835ecaeb6e in QHash<KWin::DmabufBuffer*, QHashDummyValue>::detach_helper() (this=0x5576006f2d40) at /usr/include/qt5/QtCore/qhash.h:597 #2 0x00007f835ecaeb6e in QHash<KWin::DmabufBuffer*, QHashDummyValue>::detach() (this=0x5576006f2d40) at /usr/include/qt5/QtCore/qhash.h:275 #3 0x00007f835ecaeb6e in QHash<KWin::DmabufBuffer*, QHashDummyValue>::remove(KWin::DmabufBuffer* const&) (this=0x5576006f2d40, akey=@0x7ffce9c155b0: 0x557600dd0f40) at /usr/include/qt5/QtCore/qhash.h:803 #4 0x00007f835ecae420 in QSet<KWin::DmabufBuffer*>::remove(KWin::DmabufBuffer* const&) (value=@0x7ffce9c155b0: 0x557600dd0f40, this=<optimized out>) at /usr/include/qt5/QtCore/qset.h:94 #5 0x00007f835ecae420 in KWin::LinuxDmabuf::removeBuffer(KWin::DmabufBuffer*) (buffer=<optimized out>, this=<optimized out>) at /usr/src/debug/kwin5-5.17.0-2.2.x86_64/platformsupport/scenes/opengl/linux_dmabuf.cpp:412 #6 0x00007f835ecae420 in KWin::DmabufBuffer::~DmabufBuffer() (this=0x557600dd0f40, __in_chrg=<optimized out>) at /usr/src/debug/kwin5-5.17.0-2.2.x86_64/platformsupport/scenes/opengl/linux_dmabuf.cpp:205 #7 0x00007f835ecae609 in KWin::DmabufBuffer::~DmabufBuffer() (this=0x557600dd0f40, __in_chrg=<optimized out>) at /usr/src/debug/kwin5-5.17.0-2.2.x86_64/platformsupport/scenes/opengl/linux_dmabuf.cpp:202 #8 0x00007f83639a8c6f in () at /usr/lib64/libwayland-server.so.0 #9 0x00007f83639aa42a in wl_resource_destroy () at /usr/lib64/libwayland-server.so.0 #10 0x00007f83627a4edd in () at /usr/lib64/libffi.so.7 #11 0x00007f83627a431a in () at /usr/lib64/libffi.so.7 #12 0x00007f83639a6c66 in () at /usr/lib64/libwayland-server.so.0 #13 0x00007f83639ac136 in () at /usr/lib64/libwayland-server.so.0 #14 0x00007f83639a8f92 in wl_event_loop_dispatch () at /usr/lib64/libwayland-server.so.0 #15 0x00007f83668c50df in KWayland::Server::Display::Private::dispatch() () at /usr/lib64/libKF5WaylandServer.so.5 #16 0x00007f8365d4e638 in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib64/libQt5Core.so.5 #17 0x00007f8365d5ae01 in QSocketNotifier::activated(int, QSocketNotifier::QPrivateSignal) () at /usr/lib64/libQt5Core.so.5 #18 0x00007f8365d5b141 in QSocketNotifier::event(QEvent*) () at /usr/lib64/libQt5Core.so.5 #19 0x00007f8366164c62 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5 #20 0x00007f836616e1e0 in QApplication::notify(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5 #21 0x00007f8365d23572 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib64/libQt5Core.so.5 #22 0x00007f8365d76c5b in QEventDispatcherUNIXPrivate::activateSocketNotifiers() () at /usr/lib64/libQt5Core.so.5 #23 0x00007f8365d770d6 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5 #24 0x00007f835fd906fd in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at qunixeventdispatcher.cpp:63 #25 0x00007f8365d220db in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5 #26 0x00007f8365d29d42 in QCoreApplication::exec() () at /usr/lib64/libQt5Core.so.5 #27 0x0000557600112415 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/kwin5-5.17.0-2.2.x86_64/main_wayland.cpp:677 *** Bug 412915 has been marked as a duplicate of this bug. *** I have a patch created: https://phabricator.kde.org/D24954 The patch is quite large but I still intend it to put it into 5.17.2 if I can get some feedback from people over the weekend that can compile KWin with the patch and it works on their systems and no other regressions happen. I tried to apply your patch on Arch Linux, but I got building failure :( /home/myusername/kwin/input.cpp: In lambda function: /home/myusername/kwin/input.cpp:1783:51: error: ‘keyboardKeyPressRequested’ is not a member of ‘KWayland::Server::FakeInputDevice’ 1783 | connect(device, &FakeInputDevice::keyboardKeyPressRequested, this, | ^~~~~~~~~~~~~~~~~~~~~~~~~ /home/myusername/kwin/input.cpp:1790:51: error: ‘keyboardKeyReleaseRequested’ is not a member of ‘KWayland::Server::FakeInputDevice’ 1790 | connect(device, &FakeInputDevice::keyboardKeyReleaseRequested, this, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ make[2]: *** [CMakeFiles/kwin.dir/build.make:628: CMakeFiles/kwin.dir/input.cpp.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:173: CMakeFiles/kwin.dir/all] Error 2 make: *** [Makefile:141: all] Error 2 (In reply to Patrick Silva from comment #8) > I tried to apply your patch on Arch Linux, but I got building failure :( You have to apply the diff on top of Plasma/5.17, otherwise arc bases it on master instead. That way it built fine here. Like Fabian said you need to download the raw diff from the Phabricator diff and apply it to your KWin repo with Plasma/5.17 branch checked out. The diff should apply cleanly (haven't tried it though, report back if not). Then build, install KWin based on Plasma/5.17 branch and the diff applied. output of "git apply D24954.diff" error: patch failed: wayland_server.h:118 error: wayland_server.h: patch does not apply I can apply the diff with arcanist, but building always fails at 13%. I'm doing something wrong. (In reply to Patrick Silva from comment #12) > I can apply the diff with arcanist, but building always fails at 13%. > I'm doing something wrong. I have rebased the Phabricator patch on Plasma/5.17 branch. Delete your local branch and checkout again the diff with arcanist. You should be able to build the diff now. Finally building was successful. \o/ Your patch fixes all crashes on my system. Thank you very much Roman. Git commit 7459aabcac2471862a35a7c045de7176b5435f1c by Roman Gilg. Committed on 29/10/2019 at 11:10. Pushed by romangilg into branch 'Plasma/5.17'. Dmabuf recovery on EGL reset Summary: The EGL platform might go away at any time through reconfiguration or because of a graphic error. KWin then resets the graphics. The dmabuf implementation must respect that and recover from a graphics reset by recreating all EGL images for existing buffer. This assumes that we won't change our graphics API mid-session and that supported plane and modifier configuration stays constant. In practise we remember all current dmabufs in a single map and only remove them if the client did destroy the resource. Related: bug 413403 FIXED-IN: 5.17.2 Test Plan: Applied screenedge configuration without crash. Reviewers: #kwin, zzag Reviewed By: #kwin, zzag Subscribers: fvogt, kwin Tags: #kwin Differential Revision: https://phabricator.kde.org/D24954 M +1 -0 CMakeLists.txt A +88 -0 linux_dmabuf.cpp [License: GPL (v2)] C +12 -49 linux_dmabuf.h [from: platformsupport/scenes/opengl/linux_dmabuf.h - 053% similarity] M +1 -1 platformsupport/scenes/opengl/CMakeLists.txt M +4 -4 platformsupport/scenes/opengl/abstract_egl_backend.cpp R +52 -63 platformsupport/scenes/opengl/egl_dmabuf.cpp [from: platformsupport/scenes/opengl/linux_dmabuf.cpp - 084% similarity] R +23 -30 platformsupport/scenes/opengl/egl_dmabuf.h [from: platformsupport/scenes/opengl/linux_dmabuf.h - 068% similarity] M +10 -0 wayland_server.cpp M +15 -0 wayland_server.h https://commits.kde.org/kwin/7459aabcac2471862a35a7c045de7176b5435f1c |