Bug 344312

Summary: Managing client on second head crashes
Product: [Plasma] kwin Reporter: Martin Flöser <mgraesslin>
Component: multi-screenAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED WORKSFORME    
Severity: crash    
Priority: NOR    
Version: git master   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Martin Flöser 2015-02-18 10:58:46 UTC
Steps to reproduce:
1. Xephyr -screen 1024x768x24 -screen 1280x1024x24 :99
2. DISPLAY=:99 kwin_x11
3.1: DISPLAY=:99.0 kwrite
-> everything fine
3.2: DISPLAY=:99.1 kwrite
-> boom

Program received signal SIGABRT, Aborted.
0x00007f3954794107 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
56      ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0  0x00007f3954794107 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1  0x00007f39547954e8 in __GI_abort () at abort.c:89
#2  0x00007f3955ad92f1 in qt_message_fatal (context=..., message=...) at global/qlogging.cpp:1422
#3  0x00007f3955ad5b12 in QMessageLogger::fatal (this=0x7fff75d006a0, msg=0x7f3955e3e0f0 "ASSERT failure in %s: \"%s\", file %s, line %d") at global/qlogging.cpp:643
#4  0x00007f3955acfaf5 in qt_assert_x (where=0x7f395e5fd405 "QVector<T>::operator[]", what=0x7f395e5fd3f2 "index out of range", file=0x7f395e5fd390 "/opt/qt5/include/QtCore/qvector.h", line=392) at global/qglobal.cpp:2876
#5  0x00007f395e4cef49 in QVector<QRect>::operator[] (this=0x14090e0, i=1) at /opt/qt5/include/QtCore/qvector.h:392
#6  0x00007f395e4bb2c3 in KWin::Workspace::clientArea (this=0x12d5b40, opt=KWin::PlacementArea, screen=0, desktop=1) at /home/martin/src/kf5/kde/workspace/kwin/geometry.cpp:270
#7  0x00007f395e4bb5d1 in KWin::Workspace::clientArea (this=0x12d5b40, opt=KWin::PlacementArea, p=..., desktop=1) at /home/martin/src/kf5/kde/workspace/kwin/geometry.cpp:311
#8  0x00007f395e49ddb2 in KWin::Client::manage (this=0x132d280, w=6291463, isMapped=false) at /home/martin/src/kf5/kde/workspace/kwin/manage.cpp:262
#9  0x00007f395e429e88 in KWin::Workspace::createClient (this=0x12d5b40, w=6291463, is_mapped=false) at /home/martin/src/kf5/kde/workspace/kwin/workspace.cpp:460
#10 0x00007f395e4820f0 in KWin::Workspace::workspaceEvent (this=0x12d5b40, e=0x7f39400017d0) at /home/martin/src/kf5/kde/workspace/kwin/events.cpp:414
#11 0x00007f395e477983 in KWin::XcbEventFilter::nativeEventFilter (this=0x12ae8b0, eventType=..., message=0x7f39400017d0, result=0x7fff75d01758) at /home/martin/src/kf5/kde/workspace/kwin/main.cpp:396
#12 0x00007f3955d5f903 in QAbstractEventDispatcher::filterNativeEvent (this=0x1292e20, eventType=..., message=0x7f39400017d0, result=0x7fff75d01758) at kernel/qabstracteventdispatcher.cpp:460
#13 0x00007f39480996c9 in QXcbConnection::handleXcbEvent (this=0x1262640, event=0x7f39400017d0) at qxcbconnection.cpp:854
#14 0x00007f394809b698 in QXcbConnection::processXcbEvents (this=0x1262640) at qxcbconnection.cpp:1297
#15 0x00007f39480dc1d6 in QXcbConnection::qt_static_metacall (_o=0x1262640, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0x7f3940006000) at .moc/moc_qxcbconnection.cpp:185
#16 0x00007f3955d9fd0f in QMetaCallEvent::placeMetaCall (this=0x7f3940003f70, object=0x1262640) at kernel/qobject.cpp:485
#17 0x00007f3955da0dd8 in QObject::event (this=0x1262640, e=0x7f3940003f70) at kernel/qobject.cpp:1245
#18 0x00007f394809cab3 in QXcbConnection::event (this=0x1262640, e=0x7f3940003f70) at qxcbconnection.cpp:1910
#19 0x00007f39568a95ec in QApplicationPrivate::notify_helper (this=0x1259fd0, receiver=0x1262640, e=0x7f3940003f70) at kernel/qapplication.cpp:3720
#20 0x00007f39568a6d68 in QApplication::notify (this=0x7fff75d026c0, receiver=0x1262640, e=0x7f3940003f70) at kernel/qapplication.cpp:3164
#21 0x00007f395e4766e1 in KWin::Application::notify (this=0x7fff75d026c0, o=0x1262640, e=0x7f3940003f70) at /home/martin/src/kf5/kde/workspace/kwin/main.cpp:229
#22 0x00007f3955d643bc in QCoreApplication::notifyInternal (this=0x7fff75d026c0, receiver=0x1262640, event=0x7f3940003f70) at kernel/qcoreapplication.cpp:935
#23 0x00007f3955d6801d in QCoreApplication::sendEvent (receiver=0x1262640, event=0x7f3940003f70) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:228
#24 0x00007f3955d656f5 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x124a2b0) at kernel/qcoreapplication.cpp:1552
#25 0x00007f3955dd9aff in QEventDispatcherUNIX::processEvents (this=0x1292e20, flags=...) at kernel/qeventdispatcher_unix.cpp:579
#26 0x00007f394811f30e in QUnixEventDispatcherQPA::processEvents (this=0x1292e20, flags=...) at eventdispatchers/qunixeventdispatcher.cpp:62
#27 0x00007f3955d61060 in QEventLoop::processEvents (this=0x7fff75d025e0, flags=...) at kernel/qeventloop.cpp:128
#28 0x00007f3955d61339 in QEventLoop::exec (this=0x7fff75d025e0, flags=...) at kernel/qeventloop.cpp:204
#29 0x00007f3955d64a96 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1188
#30 0x00007f3956165d36 in QGuiApplication::exec () at kernel/qguiapplication.cpp:1507
#31 0x00007f39568a6595 in QApplication::exec () at kernel/qapplication.cpp:2956
#32 0x00007f395e8da13a in kdemain (argc=1, argv=0x7fff75d02938) at /home/martin/src/kf5/kde/workspace/kwin/main_x11.cpp:297
#33 0x0000000000400d18 in main (argc=1, argv=0x7fff75d02938) at /opt/build/kf5/kde/workspace/kwin/kwin_x11_dummy.cpp:3
Comment 1 Thomas Lübking 2015-02-19 14:34:32 UTC
s/screen_number/screen

Using screen_number seems absurd - you could eg. have 2 screens on head 1.
Given the xrandr implementation of Screens, we have resources->num_crtcs and resources is per rootWindow(), so I do totally not see, how the head comes in here. (Porting issue and original assumption that you had two screens at max in either xinerama XOR zaphod?)
Comment 2 Martin Flöser 2015-02-19 14:40:44 UTC
screen_number is the number of the head. In that case it should have been 1 as it run on display 99.1
Comment 3 Thomas Lübking 2015-02-19 15:02:53 UTC
Yes, but the head will only have one screen (the "screen" parameter is 0!), so the array is only one field wide => crash.
Comment 4 Martin Flöser 2015-02-19 15:45:39 UTC
yeah the array access looks "fishy".
Comment 5 Andrew Crouthamel 2018-10-31 04:09:38 UTC
Dear Bug Submitter,

This bug has been stagnant for a long time. Could you help us out and re-test if the bug is valid in the latest version? I am setting the status to NEEDSINFO pending your response, please change the Status back to REPORTED when you respond.

Thank you for helping us make KDE software even better for everyone!
Comment 6 Bug Janitor Service 2018-11-15 10:51:32 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least
15 days. Please provide the requested information as soon as
possible and set the bug status as REPORTED. Due to regular bug
tracker maintenance, if the bug is still in NEEDSINFO status with
no change in 30 days the bug will be closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please
mark the bug as REPORTED so that the KDE team knows that the bug is
ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 7 Bug Janitor Service 2018-11-30 04:04:10 UTC
This bug has been in NEEDSINFO status with no change for at least
30 days. The bug is now closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

Thank you for helping us make KDE software even better for everyone!