Bug 395493 - Random Kwin crashes
Summary: Random Kwin crashes
Status: RESOLVED DUPLICATE of bug 368847
Alias: None
Product: kwin
Classification: Plasma
Component: general (show other bugs)
Version: 5.13.0
Platform: Arch Linux Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords: drkonqi
: 395648 396297 (view as bug list)
Depends on:
Blocks:
 
Reported: 2018-06-16 14:34 UTC by Jesus
Modified: 2018-07-19 07:46 UTC (History)
4 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 Jesus 2018-06-16 14:34:46 UTC
Application: kwin_x11 (5.13.0)

Qt Version: 5.11.0
Frameworks Version: 5.47.0
Operating System: Linux 4.14.49-1-lts x86_64
Distribution (Platform): Archlinux Packages

-- Information about the crash:
- What I was doing when the application crashed:

Kwin crashes when doing normal things like scrolling though worspaces or switching activities.

The crash can be reproduced sometimes.

-- Backtrace:
Application: KWin (kwin_x11), signal: Aborted
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[Current thread is 1 (Thread 0x7faed024b840 (LWP 1286))]

Thread 5 (Thread 0x7fae97779700 (LWP 1521)):
#0  0x00007faec8c67ffc in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
#1  0x00007faecbf2abbc in  () at /usr/lib/libQt5Script.so.5
#2  0x00007faecbf2abd9 in  () at /usr/lib/libQt5Script.so.5
#3  0x00007faec8c62075 in start_thread () at /usr/lib/libpthread.so.0
#4  0x00007faecfc0b53f in clone () at /usr/lib/libc.so.6

Thread 4 (Thread 0x7faeaddd3700 (LWP 1501)):
#0  0x00007faecfc00fa6 in ppoll () at /usr/lib/libc.so.6
#1  0x00007faecd006d1b in qt_safe_poll(pollfd*, unsigned long, timespec const*) () at /usr/lib/libQt5Core.so.5
#2  0x00007faecd00820b in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#3  0x00007faeccfb685c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#4  0x00007faeccdffac9 in QThread::exec() () at /usr/lib/libQt5Core.so.5
#5  0x00007faec76aa559 in  () at /usr/lib/libQt5Qml.so.5
#6  0x00007faecce09b95 in  () at /usr/lib/libQt5Core.so.5
#7  0x00007faec8c62075 in start_thread () at /usr/lib/libpthread.so.0
#8  0x00007faecfc0b53f in clone () at /usr/lib/libc.so.6

Thread 3 (Thread 0x7faeafdf5700 (LWP 1306)):
#0  0x00007faecfc00fa6 in ppoll () at /usr/lib/libc.so.6
#1  0x00007faecd006d1b in qt_safe_poll(pollfd*, unsigned long, timespec const*) () at /usr/lib/libQt5Core.so.5
#2  0x00007faecd00820b in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#3  0x00007faeccfb685c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#4  0x00007faeccdffac9 in QThread::exec() () at /usr/lib/libQt5Core.so.5
#5  0x00007faec659c976 in  () at /usr/lib/libQt5DBus.so.5
#6  0x00007faecce09b95 in  () at /usr/lib/libQt5Core.so.5
#7  0x00007faec8c62075 in start_thread () at /usr/lib/libpthread.so.0
#8  0x00007faecfc0b53f in clone () at /usr/lib/libc.so.6

Thread 2 (Thread 0x7faeb6366700 (LWP 1292)):
#0  0x00007faecfc00ea9 in poll () at /usr/lib/libc.so.6
#1  0x00007faeceb24180 in  () at /usr/lib/libxcb.so.1
#2  0x00007faeceb25e4b in xcb_wait_for_event () at /usr/lib/libxcb.so.1
#3  0x00007faeb7454f1a in  () at /usr/lib/libQt5XcbQpa.so.5
#4  0x00007faecce09b95 in  () at /usr/lib/libQt5Core.so.5
#5  0x00007faec8c62075 in start_thread () at /usr/lib/libpthread.so.0
#6  0x00007faecfc0b53f in clone () at /usr/lib/libc.so.6

Thread 1 (Thread 0x7faed024b840 (LWP 1286)):
[KCrash Handler]
#6  0x00007faecfb4986b in raise () at /usr/lib/libc.so.6
#7  0x00007faecfb3440e in abort () at /usr/lib/libc.so.6
#8  0x00007faeccdc633c in  () at /usr/lib/libQt5Core.so.5
#9  0x00007faecc79cd4a in KWin::WindowQuad::makeSubQuad(double, double, double, double) const () at /usr/lib/libkwineffects.so.11
#10 0x00007fae9fdeba6d in  () at /usr/lib/qt/plugins/org.kde.kwin.scenes/KWinSceneOpenGL.so
#11 0x00007fae9fdebbcc in  () at /usr/lib/qt/plugins/org.kde.kwin.scenes/KWinSceneOpenGL.so
#12 0x00007fae9fdf4d73 in  () at /usr/lib/qt/plugins/org.kde.kwin.scenes/KWinSceneOpenGL.so
#13 0x00007fae9fdf4eb9 in  () at /usr/lib/qt/plugins/org.kde.kwin.scenes/KWinSceneOpenGL.so
#14 0x00007faecf792aac in KWin::EffectsHandlerImpl::drawWindow(KWin::EffectWindow*, int, QRegion, KWin::WindowPaintData&) () at /usr/lib/libkwin.so.5
#15 0x00007faecc535426 in  () at /usr/lib/libkwin4_effect_builtins.so.1
#16 0x00007faecf792a44 in KWin::EffectsHandlerImpl::drawWindow(KWin::EffectWindow*, int, QRegion, KWin::WindowPaintData&) () at /usr/lib/libkwin.so.5
#17 0x00007faecc4a218a in  () at /usr/lib/libkwin4_effect_builtins.so.1
#18 0x00007faecf792a44 in KWin::EffectsHandlerImpl::drawWindow(KWin::EffectWindow*, int, QRegion, KWin::WindowPaintData&) () at /usr/lib/libkwin.so.5
#19 0x00007faecc79949d in KWin::Effect::drawWindow(KWin::EffectWindow*, int, QRegion, KWin::WindowPaintData&) () at /usr/lib/libkwineffects.so.11
#20 0x00007faecf792a44 in KWin::EffectsHandlerImpl::drawWindow(KWin::EffectWindow*, int, QRegion, KWin::WindowPaintData&) () at /usr/lib/libkwin.so.5
#21 0x00007faecc79949d in KWin::Effect::drawWindow(KWin::EffectWindow*, int, QRegion, KWin::WindowPaintData&) () at /usr/lib/libkwineffects.so.11
#22 0x00007faecf792a44 in KWin::EffectsHandlerImpl::drawWindow(KWin::EffectWindow*, int, QRegion, KWin::WindowPaintData&) () at /usr/lib/libkwin.so.5
#23 0x00007faecf77ea2d in KWin::Scene::finalPaintWindow(KWin::EffectWindowImpl*, int, QRegion, KWin::WindowPaintData&) () at /usr/lib/libkwin.so.5
#24 0x00007faecf7928d5 in KWin::EffectsHandlerImpl::paintWindow(KWin::EffectWindow*, int, QRegion, KWin::WindowPaintData&) () at /usr/lib/libkwin.so.5
#25 0x00007faecc79932d in KWin::Effect::paintWindow(KWin::EffectWindow*, int, QRegion, KWin::WindowPaintData&) () at /usr/lib/libkwineffects.so.11
#26 0x00007faecf792874 in KWin::EffectsHandlerImpl::paintWindow(KWin::EffectWindow*, int, QRegion, KWin::WindowPaintData&) () at /usr/lib/libkwin.so.5
#27 0x00007faecc79932d in KWin::Effect::paintWindow(KWin::EffectWindow*, int, QRegion, KWin::WindowPaintData&) () at /usr/lib/libkwineffects.so.11
#28 0x00007faecf792874 in KWin::EffectsHandlerImpl::paintWindow(KWin::EffectWindow*, int, QRegion, KWin::WindowPaintData&) () at /usr/lib/libkwin.so.5
#29 0x00007faecc520480 in  () at /usr/lib/libkwin4_effect_builtins.so.1
#30 0x00007faecf792874 in KWin::EffectsHandlerImpl::paintWindow(KWin::EffectWindow*, int, QRegion, KWin::WindowPaintData&) () at /usr/lib/libkwin.so.5
#31 0x00007faecc4f46a5 in  () at /usr/lib/libkwin4_effect_builtins.so.1
#32 0x00007faecf792874 in KWin::EffectsHandlerImpl::paintWindow(KWin::EffectWindow*, int, QRegion, KWin::WindowPaintData&) () at /usr/lib/libkwin.so.5
#33 0x00007faecf785033 in KWin::Scene::paintWindow(KWin::Scene::Window*, int, QRegion, KWin::WindowQuadList) () at /usr/lib/libkwin.so.5
#34 0x00007faecf782f90 in KWin::Scene::paintGenericScreen(int, KWin::ScreenPaintData) () at /usr/lib/libkwin.so.5
#35 0x00007fae9fdf4c5e in  () at /usr/lib/qt/plugins/org.kde.kwin.scenes/KWinSceneOpenGL.so
#36 0x00007faecf784578 in KWin::Scene::finalPaintScreen(int, QRegion, KWin::ScreenPaintData&) () at /usr/lib/libkwin.so.5
#37 0x00007faecf792627 in KWin::EffectsHandlerImpl::paintScreen(int, QRegion, KWin::ScreenPaintData&) () at /usr/lib/libkwin.so.5
#38 0x00007faecc799282 in KWin::Effect::paintScreen(int, QRegion, KWin::ScreenPaintData&) () at /usr/lib/libkwineffects.so.11
#39 0x00007faecf7925ce in KWin::EffectsHandlerImpl::paintScreen(int, QRegion, KWin::ScreenPaintData&) () at /usr/lib/libkwin.so.5
#40 0x00007faecc799282 in KWin::Effect::paintScreen(int, QRegion, KWin::ScreenPaintData&) () at /usr/lib/libkwineffects.so.11
#41 0x00007faecf7925ce in KWin::EffectsHandlerImpl::paintScreen(int, QRegion, KWin::ScreenPaintData&) () at /usr/lib/libkwin.so.5
#42 0x00007faecc799282 in KWin::Effect::paintScreen(int, QRegion, KWin::ScreenPaintData&) () at /usr/lib/libkwineffects.so.11
#43 0x00007faecf7925ce in KWin::EffectsHandlerImpl::paintScreen(int, QRegion, KWin::ScreenPaintData&) () at /usr/lib/libkwin.so.5
#44 0x00007faecc4f576f in  () at /usr/lib/libkwin4_effect_builtins.so.1
#45 0x00007faecf7925ce in KWin::EffectsHandlerImpl::paintScreen(int, QRegion, KWin::ScreenPaintData&) () at /usr/lib/libkwin.so.5
#46 0x00007faecf78425b in KWin::Scene::paintScreen(int*, QRegion const&, QRegion const&, QRegion*, QRegion*, QMatrix4x4 const&, QRect const&) () at /usr/lib/libkwin.so.5
#47 0x00007fae9fdef037 in KWin::SceneOpenGL::paint(QRegion, QList<KWin::Toplevel*>) () at /usr/lib/qt/plugins/org.kde.kwin.scenes/KWinSceneOpenGL.so
#48 0x00007faecf775aee in KWin::Compositor::performCompositing() () at /usr/lib/libkwin.so.5
#49 0x00007faeccfe229b in QObject::event(QEvent*) () at /usr/lib/libQt5Core.so.5
#50 0x00007faecdd27984 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#51 0x00007faecdd2f25b in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#52 0x00007faeccfb7bc9 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#53 0x00007faecd00a21a in QTimerInfoList::activateTimers() () at /usr/lib/libQt5Core.so.5
#54 0x00007faecd00835e in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#55 0x00007faeb74e9dee in  () at /usr/lib/libQt5XcbQpa.so.5
#56 0x00007faeccfb685c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#57 0x00007faeccfbeb56 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5
#58 0x00007faecfed7b56 in kdemain () at /usr/lib/libkdeinit5_kwin_x11.so
#59 0x00007faecfb3606b in __libc_start_main () at /usr/lib/libc.so.6
#60 0x000055dbaa72a75a in _start ()

Reported using DrKonqi
Comment 1 Martin Flöser 2018-06-16 14:54:55 UTC
Unfortunately the backtrace is lacking debug symbols. If you are able to reproduce please install debug packages and attach a new backtrace.
Comment 2 Vlad Zahorodnii 2018-06-16 15:22:22 UTC
(In reply to Martin Flöser from comment #1)
> Unfortunately the backtrace is lacking debug symbols. If you are able to
> reproduce please install debug packages and attach a new backtrace.

I'm afraid that reporter can't provide a backtrace with debug symbols. There is no debug packages in Arch Linux.
Comment 3 Jesus 2018-06-16 22:59:25 UTC
I only submitted because the crash dialog said it could be useful. But I could try compiling with debugging symbols if it's needed.
Comment 4 Vlad Zahorodnii 2018-06-16 23:16:22 UTC
(In reply to Jesus from comment #3)
> I only submitted because the crash dialog said it could be useful. But I
> could try compiling with debugging symbols if it's needed.

Here's how you can get KWin with debug symbols:
* download PKGBUILD from https://git.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/kwin
* add -DCMAKE_BUILD_TYPE=RelWithDebInfo to the cmake command line arguments
* run makepkg -i (if brave enough and don't want to add gpg keys, add --skippgpcheck)
* after you submitted a backtrace with debug symbols, run: sudo pacman -S extra/kwin
Comment 5 Jesus 2018-06-19 23:27:12 UTC
Maybe we should close this bug, since I don't know when it's gonna crash again haha.
Comment 6 David Edmundson 2018-06-20 00:29:34 UTC
Crash is in 

    if (isTransformed())
        qFatal("Splitting quads is allowed only in pre-paint calls!");

if it was the assert above we wouldn't see QtCore in the stack, if it was QList out of bounds, we would see two.

Also it makes sense as we are quite clearly in paintWindow which is post-pre-paintWindow


Working backwards frame 10 can only be:
SceneOpenGL::Window::beginRenderWindow

(line 1193)

which from the comment in the code 

"// split all quads in bounding rect with the actual rects in the region" 
which seems to go against the text of the other assert.
However, I can't get a transformed quad when trying to reproduce.

Jesus, can you post your ~/.config/kwinrc
Comment 7 Jesus 2018-06-20 04:54:08 UTC
Sure! 

[Compositing]
AnimationSpeed=3
Backend=OpenGL
Enabled=true
GLCore=true
GLPreferBufferSwap=a
GLTextureFilter=2
HiddenPreviews=5
OpenGLIsUnsafe=false
OpenGLIsUnsafe0=false
OpenGLIsUnsafe1=false
WindowsBlockCompositing=true
XRenderSmoothScale=false

[Desktops]
Number=4
Rows=2

[Desktops-screen-1]
Number=1

[Effect-Cube]
BorderActivate=9
BorderActivateCylinder=9
BorderActivateSphere=9

[Effect-DesktopGrid]
BorderActivate=1

[Effect-PresentWindows]
BorderActivate=9
BorderActivateAll=7
BorderActivateClass=9

[Effect-ShowFps]
TextColor=227,65,255
TextFont=Input Serif,24,-1,5,50,0,0,0,0,0,Regular
TextPosition=2

[Effect-Wobbly]
Drag=92
MoveFactor=20
Stiffness=3
WobblynessLevel=3

[Effect-kwin4_effect_translucency]
Dialogs=93
Menus=96

[ElectricBorders]
Bottom=None
BottomLeft=None
BottomRight=None
Left=None
Right=None
Top=None
TopLeft=None
TopRight=None

[MouseBindings]
CommandActiveTitlebar1=Raise
CommandActiveTitlebar2=Start window tab drag
CommandActiveTitlebar3=Operations menu
CommandAll1=Move
CommandAll2=Toggle raise and lower
CommandAll3=Resize
CommandAllKey=Meta
CommandAllWheel=Shade/Unshade
CommandInactiveTitlebar1=Activate and raise
CommandInactiveTitlebar2=Start window tab drag
CommandInactiveTitlebar3=Operations menu
CommandTitlebarWheel=Raise/Lower
CommandWindow1=Activate, raise and pass click
CommandWindow2=Activate and pass click
CommandWindow3=Activate and pass click
CommandWindowWheel=Scroll

[Plugins]
cubeEnabled=true
cubeslideEnabled=false
desktopchangeosdEnabled=false
dimscreenEnabled=true
fallapartEnabled=true
glideEnabled=true
kwin4_effect_eyeonscreenEnabled=true
kwin4_effect_fadedesktopEnabled=false
kwin4_effect_scaleinEnabled=true
magiclampEnabled=true
minimizeanimationEnabled=false
mousemarkEnabled=true
sheetEnabled=true
slideEnabled=true
slidebackEnabled=true
snaphelperEnabled=true
thumbnailasideEnabled=true
touchpointsEnabled=true
windowgeometryEnabled=false
wobblywindowsEnabled=true

[Script-desktopchangeosd]
PopupHideDelay=1000
TextOnly=false

[TabBox]
BorderActivate=9
BorderAlternativeActivate=9
DesktopLayout=org.kde.breeze.desktop
DesktopListLayout=org.kde.breeze.desktop
LayoutName=org.kde.breeze.desktop

[Windows]
ActiveMouseScreen=true
AutoRaise=true
AutoRaiseInterval=1000
AutogroupInForeground=true
AutogroupSimilarWindows=false
BorderSnapZone=10
CenterSnapZone=0
ClickRaise=true
DelayFocusInterval=1000
ElectricBorderCooldown=350
ElectricBorderCornerRatio=0.25
ElectricBorderDelay=150
ElectricBorderMaximize=true
ElectricBorderTiling=true
ElectricBorders=0
FocusPolicy=FocusFollowsMouse
FocusStealingPreventionLevel=2
GeometryTip=false
HideUtilityWindowsForInactive=true
InactiveTabsSkipTaskbar=false
MaximizeButtonLeftClickCommand=Maximize
MaximizeButtonMiddleClickCommand=Maximize (vertical only)
MaximizeButtonRightClickCommand=Maximize (horizontal only)
NextFocusPrefersMouse=true
Placement=Smart
RollOverDesktops=true
SeparateScreenFocus=true
ShadeHover=false
ShadeHoverInterval=250
SnapOnlyWhenOverlapping=false
TitlebarDoubleClickCommand=Maximize
WindowSnapZone=10

[org.kde.kdecoration2]
BorderSize=Normal
ButtonsOnLeft=MHS
ButtonsOnRight=FIAX
CloseOnDoubleClickOnMenu=false
library=org.kde.breeze
Comment 8 Vlad Zahorodnii 2018-06-20 12:28:50 UTC
*** Bug 395648 has been marked as a duplicate of this bug. ***
Comment 9 kde-bugs 2018-06-21 13:57:58 UTC
I might be able to contribute something more:
I was able to reproduce KWin crashes when switching virtual desktops while a the "minimize" animation ("magic lamp") was being displayed.
That is: minimize a program on one virtual desktop and while the animation is displayed switch to another virtual desktop
Comment 10 Vlad Zahorodnii 2018-07-08 07:23:49 UTC
*** Bug 396297 has been marked as a duplicate of this bug. ***
Comment 11 Vlad Zahorodnii 2018-07-08 07:33:15 UTC
It happens because some effects transform window quads(e.g. Fall apart or Magic lamp). So, when makeSubQuad is called on a window quad that has been transformed by Magic lamp for example, makeSubQuad will abort.
Comment 12 Vlad Zahorodnii 2018-07-19 07:46:36 UTC
Even though this bug has nothing to do with the Desktop Grid effect, 368847 and this bug are caused qFatal in makeSubQuad.

If 368847 gets fixed, so this bug gets fixed.

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