Bug 338972

Summary: bogus "if (isTransformed())" check asserts in ::makeSubQuads() (debug enabled builds only)
Product: [Plasma] kwin Reporter: Victor Tran <vicr12345>
Component: compositingAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: ahepas1999, bostonsonoma, brett, bugs.kde.org.vtj1a, ferhad, fizbaum, german.brionest, gwelkind, hackersoft.ru, kde, mathias_fenouil, piral, tristan.moraine, ugotsta, yuberion, z.buildrocks
Priority: NOR Flags: thomas.luebking: ReviewRequest+
Version: git master   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
URL: https://git.reviewboard.kde.org/r/123733/
See Also: https://bugs.kde.org/show_bug.cgi?id=354486
https://bugs.kde.org/show_bug.cgi?id=362567
Latest Commit: Version Fixed In: 5.3.1
Sentry Crash Report:

Description Victor Tran 2014-09-10 11:19:58 UTC
KWin crashes when trying to switch desktops.

Reproducible: Always

Steps to Reproduce:
1. Enable System Settings > Desktop Behaviour > Desktop Effects > "Desktop Cube Animation"
2. Change System Settings > Desktop Behaviour > Screen Edges > "Switch Desktop on Edge" to "Always Enabled"
3. Make sure there is more than one virtual desktop
4. Move a window to another virtual desktop by dragging it.

Actual Results:  
KWin crashed and relaunched, with desktop effects disabled. To re-enable, try pressing Shift+Alt+F12

Expected Results:  
The window should have moved to the other desktop.

Executable: kwin_x11 PID: 17428 Signal: Aborted (6)
Comment 1 Victor Tran 2014-09-10 11:21:22 UTC
Sorry, forgot the backtrace:

Application: KWin (kwin_x11), signal: Aborted
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7fbc9d5ff800 (LWP 17428))]

Thread 3 (Thread 0x7fbc7f3c7700 (LWP 17434)):
#0  0x00007fbc9cf618e3 in select () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007fbc9aebb933 in qt_safe_select(int, fd_set*, fd_set*, fd_set*, timespec const*) () from /opt/project-neon5/lib/libQt5Core.so.5
#2  0x00007fbc9aebd086 in QEventDispatcherUNIX::select(int, fd_set*, fd_set*, fd_set*, timespec*) () from /opt/project-neon5/lib/libQt5Core.so.5
#3  0x00007fbc9aebc830 in QEventDispatcherUNIXPrivate::doSelect(QFlags<QEventLoop::ProcessEventsFlag>, timespec*) () from /opt/project-neon5/lib/libQt5Core.so.5
#4  0x00007fbc9aebe2af in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/project-neon5/lib/libQt5Core.so.5
#5  0x00007fbc9ae48388 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/project-neon5/lib/libQt5Core.so.5
#6  0x00007fbc9ae48649 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/project-neon5/lib/libQt5Core.so.5
#7  0x00007fbc9abd5b9e in QThread::exec() () from /opt/project-neon5/lib/libQt5Core.so.5
#8  0x00007fbc943b52d5 in ?? () from /opt/project-neon5/lib/libQt5Qml.so.5
#9  0x00007fbc9abdcf17 in ?? () from /opt/project-neon5/lib/libQt5Core.so.5
#10 0x00007fbc934e1182 in start_thread (arg=0x7fbc7f3c7700) at pthread_create.c:312
#11 0x00007fbc9cf69fbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 2 (Thread 0x7fbc7c8fa700 (LWP 17437)):
#0  0x00007fbc9abd2ad6 in ?? () from /opt/project-neon5/lib/libQt5Core.so.5
#1  0x00007fbc9abd27f2 in ?? () from /opt/project-neon5/lib/libQt5Core.so.5
#2  0x00007fbc9abd2173 in QMutex::unlock() () from /opt/project-neon5/lib/libQt5Core.so.5
#3  0x00007fbc9abb650e in ?? () from /opt/project-neon5/lib/libQt5Core.so.5
#4  0x00007fbc9abb64c8 in ?? () from /opt/project-neon5/lib/libQt5Core.so.5
#5  0x00007fbc9aebe518 in ?? () from /opt/project-neon5/lib/libQt5Core.so.5
#6  0x00007fbc9aebe181 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/project-neon5/lib/libQt5Core.so.5
#7  0x00007fbc9ae48388 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/project-neon5/lib/libQt5Core.so.5
#8  0x00007fbc9ae48649 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/project-neon5/lib/libQt5Core.so.5
#9  0x00007fbc9abd5b9e in QThread::exec() () from /opt/project-neon5/lib/libQt5Core.so.5
#10 0x00007fbc943b52d5 in ?? () from /opt/project-neon5/lib/libQt5Qml.so.5
#11 0x00007fbc9abdcf17 in ?? () from /opt/project-neon5/lib/libQt5Core.so.5
#12 0x00007fbc934e1182 in start_thread (arg=0x7fbc7c8fa700) at pthread_create.c:312
#13 0x00007fbc9cf69fbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 1 (Thread 0x7fbc9d5ff800 (LWP 17428)):
[KCrash Handler]
#6  0x00007fbc9cea5bb9 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#7  0x00007fbc9cea8fc8 in __GI_abort () at abort.c:89
#8  0x00007fbc9abca1cc in ?? () from /opt/project-neon5/lib/libQt5Core.so.5
#9  0x00007fbc9abc7cfe in QMessageLogger::fatal(char const*, ...) const () from /opt/project-neon5/lib/libQt5Core.so.5
#10 0x00007fbc9a1a819e in KWin::WindowQuad::makeSubQuad (this=0x3b2b310, x1=434, y1=25.526659674497665, x2=435.23659589961591, y2=40.822059173190894) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/libkwineffects/kwineffects.cpp:873
#11 0x00007fbc9cad52e2 in KWin::SceneOpenGL::Window::beginRenderWindow (this=0x2737a50, mask=117, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/scene_opengl.cpp:880
#12 0x00007fbc9cad5c44 in KWin::SceneOpenGL2Window::performPaint (this=0x2737a50, mask=117, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/scene_opengl.cpp:1036
#13 0x00007fbc9cad4526 in KWin::SceneOpenGL2::performPaintWindow (this=0x2b69ea0, w=0x32dba80, mask=117, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/scene_opengl.cpp:711
#14 0x00007fbc9cad43d5 in KWin::SceneOpenGL2::finalDrawWindow (this=0x2b69ea0, w=0x32dba80, mask=117, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/scene_opengl.cpp:697
#15 0x00007fbc9caef989 in KWin::EffectsHandlerImpl::drawWindow (this=0x35adf60, w=0x32dba80, mask=117, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/effects.cpp:475
#16 0x00007fbc9a1a52de in KWin::Effect::drawWindow (this=0x37ca860, w=0x32dba80, mask=117, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/libkwineffects/kwineffects.cpp:546
#17 0x00007fbc9caef91b in KWin::EffectsHandlerImpl::drawWindow (this=0x35adf60, w=0x32dba80, mask=117, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/effects.cpp:472
#18 0x00007fbc99d1d673 in KWin::ContrastEffect::drawWindow (this=0x3361b10, w=0x32dba80, mask=117, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/effects/backgroundcontrast/contrast.cpp:345
#19 0x00007fbc9caef91b in KWin::EffectsHandlerImpl::drawWindow (this=0x35adf60, w=0x32dba80, mask=117, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/effects.cpp:472
#20 0x00007fbc99c7632e in KWin::BlurEffect::drawWindow (this=0x2ecde50, w=0x32dba80, mask=117, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/effects/blur/blur.cpp:415
#21 0x00007fbc9caef91b in KWin::EffectsHandlerImpl::drawWindow (this=0x35adf60, w=0x32dba80, mask=117, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/effects.cpp:472
#22 0x00007fbc9a1a52de in KWin::Effect::drawWindow (this=0x374ebe0, w=0x32dba80, mask=117, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/libkwineffects/kwineffects.cpp:546
#23 0x00007fbc9caef91b in KWin::EffectsHandlerImpl::drawWindow (this=0x35adf60, w=0x32dba80, mask=117, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/effects.cpp:472
#24 0x00007fbc9a1a52de in KWin::Effect::drawWindow (this=0x37fb240, w=0x32dba80, mask=117, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/libkwineffects/kwineffects.cpp:546
#25 0x00007fbc9caef91b in KWin::EffectsHandlerImpl::drawWindow (this=0x35adf60, w=0x32dba80, mask=117, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/effects.cpp:472
#26 0x00007fbc9a1a52de in KWin::Effect::drawWindow (this=0x37e54f0, w=0x32dba80, mask=117, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/libkwineffects/kwineffects.cpp:546
#27 0x00007fbc9caef91b in KWin::EffectsHandlerImpl::drawWindow (this=0x35adf60, w=0x32dba80, mask=117, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/effects.cpp:472
#28 0x00007fbc9cac197c in KWin::Scene::finalPaintWindow (this=0x2b69ea0, w=0x32dba80, mask=117, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/scene.cpp:601
#29 0x00007fbc9caef631 in KWin::EffectsHandlerImpl::paintWindow (this=0x35adf60, w=0x32dba80, mask=117, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/effects.cpp:438
#30 0x00007fbc9a1a514e in KWin::Effect::paintWindow (this=0x37ca860, w=0x32dba80, mask=117, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/libkwineffects/kwineffects.cpp:516
#31 0x00007fbc9caef5d7 in KWin::EffectsHandlerImpl::paintWindow (this=0x35adf60, w=0x32dba80, mask=117, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/effects.cpp:435
#32 0x00007fbc9a1a514e in KWin::Effect::paintWindow (this=0x3361b10, w=0x32dba80, mask=117, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/libkwineffects/kwineffects.cpp:516
#33 0x00007fbc9caef5d7 in KWin::EffectsHandlerImpl::paintWindow (this=0x35adf60, w=0x32dba80, mask=117, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/effects.cpp:435
#34 0x00007fbc9a1a514e in KWin::Effect::paintWindow (this=0x2ecde50, w=0x32dba80, mask=117, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/libkwineffects/kwineffects.cpp:516
#35 0x00007fbc9caef5d7 in KWin::EffectsHandlerImpl::paintWindow (this=0x35adf60, w=0x32dba80, mask=117, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/effects.cpp:435
#36 0x00007fbc99c9406d in KWin::CubeSlideEffect::paintWindow (this=0x374ebe0, w=0x32dba80, mask=117, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/effects/cube/cubeslide.cpp:347
#37 0x00007fbc9caef5d7 in KWin::EffectsHandlerImpl::paintWindow (this=0x35adf60, w=0x32dba80, mask=117, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/effects.cpp:435
#38 0x00007fbc99ceb59b in KWin::WobblyWindowsEffect::paintWindow (this=0x37fb240, w=0x32dba80, mask=117, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/effects/wobblywindows/wobblywindows.cpp:331
#39 0x00007fbc9caef5d7 in KWin::EffectsHandlerImpl::paintWindow (this=0x35adf60, w=0x32dba80, mask=117, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/effects.cpp:435
#40 0x00007fbc9a1a514e in KWin::Effect::paintWindow (this=0x37e54f0, w=0x32dba80, mask=117, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/libkwineffects/kwineffects.cpp:516
#41 0x00007fbc9caef5d7 in KWin::EffectsHandlerImpl::paintWindow (this=0x35adf60, w=0x32dba80, mask=117, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/effects.cpp:435
#42 0x00007fbc9cac06ae in KWin::Scene::paintWindow (this=0x2b69ea0, w=0x2737a50, mask=117, region=..., quads=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/scene.cpp:474
#43 0x00007fbc9cabf213 in KWin::Scene::paintGenericScreen (this=0x2b69ea0, orig_mask=112) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/scene.cpp:240
#44 0x00007fbc9cad4065 in KWin::SceneOpenGL2::paintGenericScreen (this=0x2b69ea0, mask=112, data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/scene_opengl.cpp:649
#45 0x00007fbc9cabed3d in KWin::Scene::finalPaintScreen (this=0x2b69ea0, mask=112, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/scene.cpp:196
#46 0x00007fbc9caef33a in KWin::EffectsHandlerImpl::paintScreen (this=0x35adf60, mask=112, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/effects.cpp:395
#47 0x00007fbc99ce8e0d in KWin::WindowGeometry::paintScreen (this=0x37ca860, mask=112, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/effects/windowgeometry/windowgeometry.cpp:90
#48 0x00007fbc9caef2e7 in KWin::EffectsHandlerImpl::paintScreen (this=0x35adf60, mask=112, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/effects.cpp:392
#49 0x00007fbc9a1a5061 in KWin::Effect::paintScreen (this=0x3361b10, mask=112, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/libkwineffects/kwineffects.cpp:501
#50 0x00007fbc9caef2e7 in KWin::EffectsHandlerImpl::paintScreen (this=0x35adf60, mask=112, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/effects.cpp:392
#51 0x00007fbc9a1a5061 in KWin::Effect::paintScreen (this=0x2ecde50, mask=112, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/libkwineffects/kwineffects.cpp:501
#52 0x00007fbc9caef2e7 in KWin::EffectsHandlerImpl::paintScreen (this=0x35adf60, mask=112, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/effects.cpp:392
#53 0x00007fbc99c92851 in KWin::CubeSlideEffect::paintSlideCube (this=0x374ebe0, mask=112, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/effects/cube/cubeslide.cpp:176
#54 0x00007fbc99c91deb in KWin::CubeSlideEffect::paintScreen (this=0x374ebe0, mask=112, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/effects/cube/cubeslide.cpp:87
#55 0x00007fbc9caef2e7 in KWin::EffectsHandlerImpl::paintScreen (this=0x35adf60, mask=112, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/effects.cpp:392
#56 0x00007fbc9a1a5061 in KWin::Effect::paintScreen (this=0x37fb240, mask=112, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/libkwineffects/kwineffects.cpp:501
#57 0x00007fbc9caef2e7 in KWin::EffectsHandlerImpl::paintScreen (this=0x35adf60, mask=112, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/effects.cpp:392
#58 0x00007fbc9a1a5061 in KWin::Effect::paintScreen (this=0x37e54f0, mask=112, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/libkwineffects/kwineffects.cpp:501
#59 0x00007fbc9caef2e7 in KWin::EffectsHandlerImpl::paintScreen (this=0x35adf60, mask=112, region=..., data=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/effects.cpp:392
#60 0x00007fbc9cabea46 in KWin::Scene::paintScreen (this=0x2b69ea0, mask=0x7fff993af2b8, damage=..., repaint=..., updateRegion=0x7fff993af2d0, validRegion=0x7fff993af2e0) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/scene.cpp:148
#61 0x00007fbc9cad197a in KWin::SceneOpenGL::paint (this=0x2b69ea0, damage=..., toplevels=...) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/scene_opengl.cpp:357
#62 0x00007fbc9cab8665 in KWin::Compositor::performCompositing (this=0x2462420) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/composite.cpp:638
#63 0x00007fbc9cab7f98 in KWin::Compositor::timerEvent (this=0x2462420, te=0x7fff993afa60) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/composite.cpp:557
#64 0x00007fbc9ae86ab0 in QObject::event(QEvent*) () from /opt/project-neon5/lib/libQt5Core.so.5
#65 0x00007fbc9baa00d0 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /opt/project-neon5/lib/libQt5Widgets.so.5
#66 0x00007fbc9ba9d718 in QApplication::notify(QObject*, QEvent*) () from /opt/project-neon5/lib/libQt5Widgets.so.5
#67 0x00007fbc9ca5242a in KWin::Application::notify (this=0x7fff993afd50, o=0x2462420, e=0x7fff993afa60) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/main.cpp:228
#68 0x00007fbc9ae4b650 in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /opt/project-neon5/lib/libQt5Core.so.5
#69 0x00007fbc9ae4f1dd in QCoreApplication::sendEvent(QObject*, QEvent*) () from /opt/project-neon5/lib/libQt5Core.so.5
#70 0x00007fbc9aec0044 in QTimerInfoList::activateTimers() () from /opt/project-neon5/lib/libQt5Core.so.5
#71 0x00007fbc9aebdf75 in QEventDispatcherUNIX::activateTimers() () from /opt/project-neon5/lib/libQt5Core.so.5
#72 0x00007fbc9aebe2e2 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/project-neon5/lib/libQt5Core.so.5
#73 0x00007fbc872ddb94 in ?? () from /opt/project-neon5/plugins/platforms/libqxcb.so
#74 0x00007fbc9ae48388 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/project-neon5/lib/libQt5Core.so.5
#75 0x00007fbc9ae48649 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/project-neon5/lib/libQt5Core.so.5
#76 0x00007fbc9ae4bd08 in QCoreApplication::exec() () from /opt/project-neon5/lib/libQt5Core.so.5
#77 0x00007fbc9b232938 in QGuiApplication::exec() () from /opt/project-neon5/lib/libQt5Gui.so.5
#78 0x00007fbc9ba9cf39 in QApplication::exec() () from /opt/project-neon5/lib/libQt5Widgets.so.5
#79 0x00007fbc9d239ca7 in kdemain (argc=3, argv=0x7fff993afe98) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/main_x11.cpp:294
#80 0x00000000004009ff in main (argc=3, argv=0x7fff993afe98) at /build/buildd/project-neon5-kwin-0.0+git20140910.0311+neon4~1b091a0~14.04/obj-x86_64-linux-gnu/kwin_x11_dummy.cpp:3
Comment 2 Brett 2014-10-04 07:39:27 UTC
I also see this crash and it will happen every time.  To recreate:

1. Have Desktop Effect on.
2. Enable edge switching
3. Drag a window from one desktop to the next.
4. kwin crashes
Comment 3 Thomas Lübking 2014-10-04 14:16:05 UTC
The assert is wrong. It broke with
---------------------
commit cd82616ecebd66b59d22915847137536c02cc7e4
Author: Martin Gräßlin <mgraesslin@kde.org>
Date:   Sun Jun 26 12:01:13 2011 +0200

    Remove PaintClipper from OpenGL Scene rendering
    
    Construct window quads which will end on the screen instead of
    rendering the windows several times and using scissoring to
    restrict to the area which will end on screen.
    
    REVIEW: 101765
------------
which introduced (for good reason) makeSubQuads() in beginRenderWindow()

It usually just doesn't crash because kwin is usually not compiled debug enabled - apparently not even by the maintainer ;-P
Comment 4 Fredrik Höglund 2014-10-05 12:35:23 UTC
The if (isTransformed()) check is not bogus. The makeSubQuad() implementation assumes that the original quad is a rectangle. It's the error message that's wrong.
Comment 5 Thomas Lübking 2014-10-05 12:51:12 UTC
Thus commit cd82616ecebd66b59d22915847137536c02cc7e4 needs to be reverted or ::makeSubQuads() at al. extended to handle non-square cases?

However, the check seems überstrict - !::isRectangle() should be sufficient(?)

bool WindowQuad::isRetangle() {
   return verts[0].px == verts[1].px && verts[1].py == verts[2].py && verts[2].px == verts[3].px && verts[3].py == verts[0].py;
}
Comment 6 Fredrik Höglund 2014-10-05 15:36:03 UTC
It can be extended to handle non-square cases as long as the sub quad is completely contained inside the original quad. Otherwise the resulting primitive won't be a quad.

The only cases where a transformed quad is a still a rectangle is when it's been scaled or translated,
so I don't think relaxing the check will help much.
Comment 7 Brett 2014-10-25 05:04:35 UTC
Is there any update on this one?  I'd like to continue testing but find this problem a show stopper for me during normal use.

Thanks 
Brett
Comment 8 Thomas Lübking 2014-10-25 21:06:50 UTC
"Hotfix"

diff --git a/libkwineffects/kwineffects.cpp b/libkwineffects/kwineffects.cpp
index cb4dc29..81dac8e 100644
--- a/libkwineffects/kwineffects.cpp
+++ b/libkwineffects/kwineffects.cpp
@@ -868,7 +868,7 @@ EffectWindowGroup::~EffectWindowGroup()
 WindowQuad WindowQuad::makeSubQuad(double x1, double y1, double x2, double y2) const
 {
     assert(x1 < x2 && y1 < y2 && x1 >= left() && x2 <= right() && y1 >= top() && y2 <= bottom());
-#ifndef NDEBUG
+#if 0 // bug #338972
     if (isTransformed())
         qFatal("Splitting quads is allowed only in pre-paint calls!");
 #endif


---------------------

Please notice that the very same problem has existed in KDE4 for ages - you're only running into this for the debug enabled build, so while the hotfix doesn't actually address the problem, it does neither cause/shadow a regression.
KWin just won't abort to tell you about the problem.


===========================

Findings on the actual issue:
Martin's original patch actually avoided subquadding for PAINT_WINDOW_TRANSFORMED.
This was later hardened to also require a partial paint

     if (region != infiniteRegion() && !(mask & PAINT_WINDOW_TRANSFORMED)) {

then altered to

-    if (region != infiniteRegion() && !(mask & PAINT_WINDOW_TRANSFORMED)) {
+    bool hardwareClipping = region != infiniteRegion() && (mask & PAINT_WINDOW_TRANSFORMED);
+    if (region != infiniteRegion() && !hardwareClipping) {

with commit 05a8777e and ultimately weakened:

commit 466bef3a6d1dc7db02da050042dad059985a3526
Author: Martin Gräßlin <mgraesslin@kde.org>
Date:   Thu Mar 29 20:17:57 2012 +0200

    Adding a DesktopThumbnailItem declarative item
    
    Similar to WindowThumbnailItem for rendering a desktop thumbnail.
    Uses the new paintDesktop hook.
    
    FEATURE: 296067
    FIXED-IN: 4.11.0
    REVIEW: 104441


-    bool hardwareClipping = region != infiniteRegion() && (mask & PAINT_WINDOW_TRANSFORMED);
+    bool hardwareClipping = region != infiniteRegion() && (mask & PAINT_WINDOW_TRANSFORMED) && !(mask & PAINT_SCREEN_TRANSFORMED);
     if (region != infiniteRegion() && !hardwareClipping) {

The implication is that for "PAINT_SCREEN_TRANSFORMED", hardwareClipping is skipped and whenever that goes with a partial repaint, we cause subquadding on evtl. PAINT_WINDOW_TRANSFORMED.

Since we can easily fail on "sub quad is completely contained inside the original quad" (eg. when a window is flipped/rotated - the problematic clipping code operates on the logic coordinates left/right/top/bottom), we might have to specify the subquadding condition?
Comment 9 Thomas Lübking 2015-03-28 08:03:30 UTC
*** Bug 345582 has been marked as a duplicate of this bug. ***
Comment 10 pipapo 2015-04-04 14:36:58 UTC
kwin didn't crash with woobly windows when the animation of switching virtual desktops is "fade in/fade out" (Arbeitsfläche aus-/einblenden).

kubuntu (5:84ubuntu4) utopic
kwin 4:5.2.0-0ubuntu1~ubuntu14.10~ppa1
Comment 11 Thomas Lübking 2015-04-16 18:47:18 UTC
*** Bug 346273 has been marked as a duplicate of this bug. ***
Comment 12 Thomas Lübking 2015-04-24 09:23:14 UTC
*** Bug 346531 has been marked as a duplicate of this bug. ***
Comment 13 kde 2015-04-27 18:10:17 UTC
Confirmed wobbly windows + fade does not crash. Wobbly windows + desktop cube/slide does. Fresh install, Kubunutu 15.04
Comment 14 Thomas Lübking 2015-04-27 19:49:02 UTC
*** Bug 346654 has been marked as a duplicate of this bug. ***
Comment 15 Thomas Lübking 2015-04-30 10:06:53 UTC
*** Bug 346872 has been marked as a duplicate of this bug. ***
Comment 16 Thomas Lübking 2015-04-30 10:07:04 UTC
*** Bug 346856 has been marked as a duplicate of this bug. ***
Comment 17 Thomas Lübking 2015-05-01 13:18:30 UTC
*** Bug 346959 has been marked as a duplicate of this bug. ***
Comment 18 Thomas Lübking 2015-05-06 20:38:54 UTC
*** Bug 347213 has been marked as a duplicate of this bug. ***
Comment 19 Thomas Lübking 2015-05-06 20:52:26 UTC
*** Bug 347144 has been marked as a duplicate of this bug. ***
Comment 20 Brett 2015-05-07 00:58:43 UTC
Is this bug going to be fixed or is it considered just a side effect of running in debug mode?  I'm OK with either answer.
Comment 21 Martin Flöser 2015-05-08 11:53:11 UTC
(In reply to Brett from comment #20)
> Is this bug going to be fixed

Ideally we'll fix it :-)

> or is it considered just a side effect of
> running in debug mode?  I'm OK with either answer.

It is a side effect of a debug build. I noticed Kubuntu packagers a few days ago to have them look into it.
Comment 22 Christoph Feck 2015-05-09 18:55:21 UTC
*** Bug 347396 has been marked as a duplicate of this bug. ***
Comment 23 Christoph Feck 2015-05-09 19:24:31 UTC
*** Bug 347440 has been marked as a duplicate of this bug. ***
Comment 24 Martin Flöser 2015-05-12 08:22:47 UTC
I think I understand the problem: it only happens if wobbly windows and cube slide are enabled.

Wobbly transforms the vertices, cube slide performs a split later. Both are in prePaint calls so all should be correct, but due to wobbly having transformed the vertices we get quad.isTransformed() to return true and thus aborting.

Unfortunately I don't see a straight forward way to fix it:
a) remove check
b) ensure cube slide operates before wobbly
c) introduce a grab role for window moving and block cube slide in that case
Comment 25 Thomas Lübking 2015-05-12 13:42:01 UTC
nope - see comment #3, #5 & #8, also the backtrace in comment #1 - makeSubQuad() is actually called from the painting pass.

The problematic constellation is that indeed the wobblannoyance transforms the quads (but in the painting pass, the prepaint pass only performs a split) and then the painting of the transformed screen  is "scissored" by (now) subquadding.
Bang. Assertion violated.

That's why I called the assert bogus - though it's rather the comment.
SubQuadding in the paint pass is actually a valid (and common) usecase.

A possible solution (other that simply ignoring the "violation" and not aborting) for the *particular* case could be to stall the wobblannoyance if (mask & PAINT_SCREEN_TRANSFORMED) ?! (gotta test ;-)
Comment 26 Thomas Lübking 2015-05-15 22:16:50 UTC
Git commit 82e0601af97c508580e255759064c25fb02c276d by Thomas Lübking.
Committed on 15/05/2015 at 20:02.
Pushed by luebking into branch 'Plasma/5.3'.

stall wobbling while screen is transformed

transformed screens prevent hardware clipping
leading through filtering subquads
This requires to subquad in the painting pass
what is not supported for non rectangular
qauds ands presently aborts (in debug builds)
if any quad is transformed (as by eg. the wobbling)

REVIEW: 123733

M  +1    -1    effects/wobblywindows/wobblywindows.cpp

http://commits.kde.org/kwin/82e0601af97c508580e255759064c25fb02c276d
Comment 27 Thomas Lübking 2015-05-15 22:47:03 UTC
Git commit 8ba16371e781013cebbc4e9c33d9b00878c051b9 by Thomas Lübking.
Committed on 15/05/2015 at 21:55.
Pushed by luebking into branch 'master'.

stall wobbling while screen is transformed

transformed screens prevent hardware clipping
leading through filtering subquads
This requires to subquad in the painting pass
what is not supported for non rectangular
qauds ands presently aborts (in debug builds)
if any quad is transformed (as by eg. the wobbling)

REVIEW: 123733

M  +1    -1    effects/wobblywindows/wobblywindows.cpp

http://commits.kde.org/kwin/8ba16371e781013cebbc4e9c33d9b00878c051b9
Comment 28 Christoph Feck 2015-05-16 17:08:44 UTC
*** Bug 347580 has been marked as a duplicate of this bug. ***
Comment 29 Christoph Feck 2015-06-07 10:09:42 UTC
*** Bug 348793 has been marked as a duplicate of this bug. ***
Comment 30 Christoph Feck 2015-06-07 10:10:39 UTC
Bug 348793 is from kwin 5.3.1.
Comment 31 Christoph Feck 2015-08-02 09:33:19 UTC
*** Bug 350726 has been marked as a duplicate of this bug. ***
Comment 32 Thomas Lübking 2015-08-06 20:58:50 UTC
*** Bug 351044 has been marked as a duplicate of this bug. ***
Comment 33 Christoph Feck 2015-09-23 14:58:06 UTC
*** Bug 353057 has been marked as a duplicate of this bug. ***
Comment 34 Christoph Feck 2015-11-09 21:27:57 UTC
*** Bug 355096 has been marked as a duplicate of this bug. ***