Bug 165387

Summary: kwin crashes when screen resolution changes through xrandr
Product: [Plasma] kwin Reporter: Drew Fisher <drew.m.fisher>
Component: generalAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED DUPLICATE    
Severity: crash    
Priority: NOR    
Version First Reported In: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description Drew Fisher 2008-06-30 06:05:07 UTC
Version:           SVN r823211 (using Devel)
Installed from:    Compiled sources
Compiler:          g++ 4.2.3 (Ubuntu) 
OS:                Linux

When monitor count is changed through xrandr on the commandline (ie xrandr -s 1280x1024, xrandr -s 2560x1024), kwin fails an assert and crashes.  Fortunately, it auto-respawns.  The crash occurs regardless of whether I'm adding or removing a monitor.

The behavior occurs with both the OpenGL and XRender engines.  I have the nvidia binary graphics driver; so this may be a problem with nVidia's TwinView implementation.

Bug 163045 looked similar, but my backtrace went down a different path, so I opted to file a new bug.

Using SVN r823211, backtrace follows:
Application: KWin (kwin), signal SIGABRT
[Thread debugging using libthread_db enabled]
[New Thread 0xb579fb40 (LWP 14413)]
[KCrash handler]
#6  0xb7f28410 in __kernel_vsyscall ()
#7  0xb64e6085 in raise () from /lib/tls/i686/cmov/libc.so.6
#8  0xb64e7a01 in abort () from /lib/tls/i686/cmov/libc.so.6
#9  0xb78581d8 in qt_message_output (msgType=QtFatalMsg, 
    buf=0xbfca3fc0 "ASSERT failure in QVector<T>::operator[]: \"index out of range\", file /home/kdedev/qt-copy/include/QtCore/../../src/corelib/tools/qvector.h, line 331") at global/qglobal.cpp:2058
#10 0xb785825d in qFatal (
    msg=0xb79d5e48 "ASSERT failure in %s: \"%s\", file %s, line %d")
    at global/qglobal.cpp:2260
#11 0xb78582b4 in qt_assert_x (where=0xb7f1753a "QVector<T>::operator[]", 
    what=0xb7f174d1 "index out of range", 
    file=0xb7f174f4 "/home/kdedev/qt-copy/include/QtCore/../../src/corelib/tools/qvector.h", line=331) at global/qglobal.cpp:1836
#12 0xb7e9916d in QVector<QRect>::operator[] (this=0x815309c, i=1)
    at /home/kdedev/qt-copy/include/QtCore/../../src/corelib/tools/qvector.h:331
#13 0xb7eebf3f in KWin::Workspace::updateClientArea (this=0x8092930, 
    force=false)
    at /home/kdedev/kde/src/KDE/kdebase/workspace/kwin/geometry.cpp:181
#14 0xb7eec263 in KWin::Workspace::updateClientArea (this=0x8092930)
    at /home/kdedev/kde/src/KDE/kdebase/workspace/kwin/geometry.cpp:213
#15 0xb7eec78f in KWin::Client::configureRequest (this=0x8187138, 
    value_mask=15, rx=0, ry=976, rw=1280, rh=48, gravity=10, from_tool=true)
    at /home/kdedev/kde/src/KDE/kdebase/workspace/kwin/geometry.cpp:1458
#16 0xb7eecc01 in KWin::Client::NETMoveResizeWindow (this=0x8187138, 
    flags=7946, x=0, y=976, width=1280, height=48)
    at /home/kdedev/kde/src/KDE/kdebase/workspace/kwin/geometry.cpp:1594
#17 0xb7ebfa64 in KWin::RootInfo::moveResizeWindow (this=0x81b2900, 
    w=65011944, flags=7946, x=0, y=976, width=1280, height=48)
    at /home/kdedev/kde/src/KDE/kdebase/workspace/kwin/events.cpp:198
#18 0xb6ad684c in NETRootInfo::event (this=0x81b2900, event=0xbfca694c, 
    properties=0xbfca6468, properties_size=5)
    at /home/kdedev/kde/src/KDE/kdelibs/kdeui/windowmanagement/netwm.cpp:1915
#19 0xb7ebec45 in KWin::Workspace::workspaceEvent (this=0x8092930, 
    e=0xbfca694c)
    at /home/kdedev/kde/src/KDE/kdebase/workspace/kwin/events.cpp:233
#20 0xb7eadb61 in KWin::Application::x11EventFilter (this=0xbfca6c00, 
    e=0xbfca694c)
    at /home/kdedev/kde/src/KDE/kdebase/workspace/kwin/main.cpp:360
#21 0xb6d6a61c in qt_x11EventFilter (ev=0xbfca694c)
    at kernel/qapplication_x11.cpp:367
#22 0xb6d6c083 in QApplication::x11ProcessEvent (this=0xbfca6c00, 
    event=0xbfca694c) at kernel/qapplication_x11.cpp:3013
#23 0xb6d9c6e1 in x11EventSourceDispatch (s=0x805d510, callback=0, 
    user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:148
#24 0xb6352bf8 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#25 0xb6355e5e in ?? () from /usr/lib/libglib-2.0.so.0
#26 0xb63563ac in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#27 0xb79a778c in QEventDispatcherGlib::processEvents (this=0x805a308, 
    flags=@0xbfca6ae4) at kernel/qeventdispatcher_glib.cpp:325
#28 0xb6d9bdb0 in QGuiEventDispatcherGlib::processEvents (this=0x805a308, 
    flags=@0xbfca6b14) at kernel/qguieventdispatcher_glib.cpp:204
#29 0xb796eaca in QEventLoop::processEvents (this=0xbfca6b9c, 
    flags=@0xbfca6b54) at kernel/qeventloop.cpp:149
#30 0xb796ed09 in QEventLoop::exec (this=0xbfca6b9c, flags=@0xbfca6ba4)
    at kernel/qeventloop.cpp:200
#31 0xb7972b84 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:845
#32 0xb6cdfc6e in QApplication::exec () at kernel/qapplication.cpp:3304
#33 0xb7eaf4ec in kdemain (argc=3, argv=0xbfca6de4)
    at /home/kdedev/kde/src/KDE/kdebase/workspace/kwin/main.cpp:511
#34 0x08048776 in main (argc=)
    at /home/kdedev/kde/build/KDE/kdebase/workspace/kwin/kwin_dummy.cpp:3
#0  0xb7f28410 in __kernel_vsyscall ()
Comment 1 lucas 2008-06-30 07:47:15 UTC

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