Bug 176147

Summary: kwin crashes moving windows when two monitors are setup using unequal screen resolutions
Product: [Plasma] kwin Reporter: Matt Rogers <mattr>
Component: generalAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED DUPLICATE    
Severity: crash    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Matt Rogers 2008-11-26 17:10:25 UTC
Version:           unknown (using 4.1.80 (KDE 4.1.80 (KDE 4.2 Beta1)), compiled sources)
Compiler:          gcc
OS:                Linux (i686) release 2.6.27-7-generic

KWin crashes when moving windows between monitors if about half of the window being moved is off screen and I'm moving the window from the external monitor to the laptop screen. 

I think the problem might be the difference in screen resolution since the vertical sizes of the screens differ and I can also reproduce the crash just moving the window to the bottom of the screen on the laptop display (which is smaller)

This is with intel hardware (macbook 2nd gen) and the screens have been set up using the following:
$ xrandr --output VGA --mode 1280x1024 --right-of LVDS
$ xrandr --output LVDS --mode 1280x800 --left-of VGA

Desktop effects are turned off due to the 2048x2048 virtual screen size limitation with DRI.

Backtrace:
Application: KWin (kwin), signal SIGABRT

Thread 1 (Thread 0xb655e6c0 (LWP 16605)):
[KCrash Handler]
#6  0xb7fd6430 in __kernel_vsyscall ()
#7  0xb68ef880 in raise () from /lib/tls/i686/cmov/libc.so.6
#8  0xb68f1248 in abort () from /lib/tls/i686/cmov/libc.so.6
#9  0xb76897b5 in qt_message_output (msgType=QtFatalMsg, 
    buf=0xbfed592c "ASSERT failure in QVector<T>::operator[]: \"index out of range\", file /home/matt/Projects/KDE/4.2/include/QtCore/qvector.h, line 321")
    at /home/matt/Projects/KDE/Source/trunk/qt-copy/src/corelib/global/qglobal.cpp:2102
#10 0xb7689892 in qFatal (msg=0xb77d24c8 "ASSERT failure in %s: \"%s\", file %s, line %d") at /home/matt/Projects/KDE/Source/trunk/qt-copy/src/corelib/global/qglobal.cpp:2303
#11 0xb76898ec in qt_assert_x (where=0xb7fa9ba9 "QVector<T>::operator[]", what=0xb7fa9b89 "index out of range", file=0xb7faa1b0 "/home/matt/Projects/KDE/4.2/include/QtCore/qvector.h", line=321)
    at /home/matt/Projects/KDE/Source/trunk/qt-copy/src/corelib/global/qglobal.cpp:1880
#12 0xb7f7d765 in QVector<QRect>::operator[] (this=0x8efe7a0, i=-1) at /home/matt/Projects/KDE/4.2/include/QtCore/qvector.h:321
#13 0xb7f72378 in KWin::Workspace::clientArea (this=0x8dfc290, opt=KWin::ScreenArea, screen=-1, desktop=2) at /home/matt/Projects/KDE/Source/trunk/KDE/kdebase/workspace/kwin/geometry.cpp:235
#14 0xb7f725bf in KWin::Workspace::clientArea (this=0x8dfc290, opt=KWin::ScreenArea, p=@0xbfed7a58, desktop=-1) at /home/matt/Projects/KDE/Source/trunk/KDE/kdebase/workspace/kwin/geometry.cpp:279
#15 0xb7f74d9e in KWin::Workspace::clientArea (this=0x8dfc290, opt=KWin::ScreenArea, c=0x8e79358) at /home/matt/Projects/KDE/Source/trunk/KDE/kdebase/workspace/kwin/geometry.cpp:284
#16 0xb7f797e3 in KWin::Client::adjustedClientArea (this=0x8e79358, desktopArea=@0xbfed7c90, area=@0xbfed7c90) at /home/matt/Projects/KDE/Source/trunk/KDE/kdebase/workspace/kwin/geometry.cpp:866
#17 0xb7f7c060 in KWin::Workspace::updateClientArea (this=0x8dfc290, force=false) at /home/matt/Projects/KDE/Source/trunk/KDE/kdebase/workspace/kwin/geometry.cpp:115
#18 0xb7f7c949 in KWin::Workspace::updateClientArea (this=0x8dfc290) at /home/matt/Projects/KDE/Source/trunk/KDE/kdebase/workspace/kwin/geometry.cpp:216
#19 0xb7f277cb in KWin::Workspace::addClient (this=0x8dfc290, c=0x8ef8a08) at /home/matt/Projects/KDE/Source/trunk/KDE/kdebase/workspace/kwin/workspace.cpp:552
#20 0xb7f27a87 in KWin::Workspace::createClient (this=0x8dfc290, w=8388609, is_mapped=<value optimized out>) at /home/matt/Projects/KDE/Source/trunk/KDE/kdebase/workspace/kwin/workspace.cpp:502
#21 0xb7f52098 in KWin::Workspace::workspaceEvent (this=0x8dfc290, e=0xbfed82fc) at /home/matt/Projects/KDE/Source/trunk/KDE/kdebase/workspace/kwin/events.cpp:376
#22 0xb7f41fff in KWin::Application::x11EventFilter (this=0xbfed8634, e=0xbfed82fc) at /home/matt/Projects/KDE/Source/trunk/KDE/kdebase/workspace/kwin/main.cpp:362
#23 0xb6ea378e in qt_x11EventFilter (ev=0xbfed82fc) at /home/matt/Projects/KDE/Source/trunk/qt-copy/src/gui/kernel/qapplication_x11.cpp:361
#24 0xb6eb41c5 in QApplication::x11ProcessEvent (this=0xbfed8634, event=0xbfed82fc) at /home/matt/Projects/KDE/Source/trunk/qt-copy/src/gui/kernel/qapplication_x11.cpp:2918
#25 0xb6ede16a in x11EventSourceDispatch (s=0x8d5b7a0, callback=0, user_data=0x0) at /home/matt/Projects/KDE/Source/trunk/qt-copy/src/gui/kernel/qguieventdispatcher_glib.cpp:142
#26 0xb66186f8 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#27 0xb661bda3 in ?? () from /usr/lib/libglib-2.0.so.0
#28 0xb661bf61 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#29 0xb77ac5b8 in QEventDispatcherGlib::processEvents (this=0x8d58c30, flags={i = -1074953032}) at /home/matt/Projects/KDE/Source/trunk/qt-copy/src/corelib/kernel/qeventdispatcher_glib.cpp:319
#30 0xb6edd865 in QGuiEventDispatcherGlib::processEvents (this=0x8d58c30, flags={i = -1074952984}) at /home/matt/Projects/KDE/Source/trunk/qt-copy/src/gui/kernel/qguieventdispatcher_glib.cpp:198
#31 0xb778066a in QEventLoop::processEvents (this=0xbfed8560, flags={i = -1074952920}) at /home/matt/Projects/KDE/Source/trunk/qt-copy/src/corelib/kernel/qeventloop.cpp:143
#32 0xb778082a in QEventLoop::exec (this=0xbfed8560, flags={i = -1074952856}) at /home/matt/Projects/KDE/Source/trunk/qt-copy/src/corelib/kernel/qeventloop.cpp:194
#33 0xb7782ee5 in QCoreApplication::exec () at /home/matt/Projects/KDE/Source/trunk/qt-copy/src/corelib/kernel/qcoreapplication.cpp:845
#34 0xb6e443a7 in QApplication::exec () at /home/matt/Projects/KDE/Source/trunk/qt-copy/src/gui/kernel/qapplication.cpp:3331
#35 0xb7f43719 in kdemain (argc=3, argv=0xbfed8804) at /home/matt/Projects/KDE/Source/trunk/KDE/kdebase/workspace/kwin/main.cpp:513
#36 0x08048792 in main (argc=) at /home/matt/Projects/KDE/Build/trunk/KDE/kdebase/workspace/kwin/kwin_dummy.cpp:3
Comment 1 Guillaume Pothier 2008-11-26 18:02:44 UTC
Looks like #173017 (clientArea crash)
Comment 2 lucas 2008-11-27 08:02:28 UTC

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