Bug 298669 - KWin crashes when interacting with Plasma
Summary: KWin crashes when interacting with Plasma
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: core (show other bugs)
Version: git master
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: 4.9
Assignee: KWin default assignee
URL: https://git.reviewboard.kde.org/r/104...
Keywords: regression
Depends on:
Blocks:
 
Reported: 2012-04-23 14:58 UTC by Alex Fiestas
Modified: 2012-04-24 20:05 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In: 4.9.0
mgraesslin: Triaged+
mgraesslin: ReviewRequest+


Attachments
Backtrace (2.35 KB, application/octet-stream)
2012-04-23 14:59 UTC, Alex Fiestas
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Alex Fiestas 2012-04-23 14:58:52 UTC
When I tried to "unhide" my panel by mouseovering it KWin crashes from time to time. 
It also happens when I launch KRunner and in some other situations (like when I plug/unplug a usb)

In the case of the Panel and the Device Notifier the popup is shown misplaced in the top-left corner of my dual-monitor setup.

Reproducible: Always

Actual Results:  
 

Expected Results:
Comment 1 Alex Fiestas 2012-04-23 14:59:34 UTC
Created attachment 70596 [details]
Backtrace
Comment 2 Martin Flöser 2012-04-23 15:57:49 UTC
Backtrace from attachement:

Application: KWin (kwin), signal: Segmentation fault
Using host libthread_db library "/lib/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f76d3525780 (LWP 27780))]

Thread 2 (Thread 0x7f76b2b09700 (LWP 27828)):
#0  0x00007f76ce2e18f4 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007f76cffdbae7 in ?? () from /usr/lib/libQtScript.so.4
#2  0x00007f76cffdbb19 in ?? () from /usr/lib/libQtScript.so.4
#3  0x00007f76ce2dde0e in start_thread () from /lib/libpthread.so.0
#4  0x00007f76cc2ae1ed in clone () from /lib/libc.so.6

Thread 1 (Thread 0x7f76d3525780 (LWP 27780)):
[KCrash Handler]
#6  KWin::Client::belongToSameApplication (c1=0x30fe310, c2=0x0, active_hack=false) at /home/afiestas/cod3s/cpp/kde/source/kde-workspace/kwin/group.cpp:476
#7  0x00007f76d3066043 in KWin::Workspace::restack (this=0x23a5f90, c=0x3036110, under=0x30fe310) at /home/afiestas/cod3s/cpp/kde/source/kde-workspace/kwin/layers.cpp:423
#8  0x00007f76d3084ef3 in KWin::Client::manage (this=0x3036110, w=<optimized out>, isMapped=false) at /home/afiestas/cod3s/cpp/kde/source/kde-workspace/kwin/manage.cpp:565
#9  0x00007f76d3041cf3 in KWin::Workspace::createClient (this=0x23a5f90, w=39846334, is_mapped=false) at /home/afiestas/cod3s/cpp/kde/source/kde-workspace/kwin/workspace.cpp:559
#10 0x00007f76d3073f85 in KWin::Workspace::workspaceEvent (this=0x23a5f90, e=0x7fff90534020) at /home/afiestas/cod3s/cpp/kde/source/kde-workspace/kwin/events.cpp:359
#11 0x00007f76d3068b29 in KWin::Application::x11EventFilter (this=0x7fff90534500, e=0x7fff90534020) at /home/afiestas/cod3s/cpp/kde/source/kde-workspace/kwin/main.cpp:362
#12 0x00007f76cd86a03c in ?? () from /usr/lib/libQtGui.so.4
#13 0x00007f76cd877c8b in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/libQtGui.so.4
#14 0x00007f76cd89f1e9 in ?? () from /usr/lib/libQtGui.so.4
#15 0x00007f76ce665f8f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#16 0x00007f76ce666218 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#17 0x00007f76ce66abf8 in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#18 0x00007f76d306a314 in kdemain (argc=3, argv=0x7fff90534648) at /home/afiestas/cod3s/cpp/kde/source/kde-workspace/kwin/main.cpp:545
#19 0x00007f76cc1eb455 in __libc_start_main () from /lib/libc.so.6
#20 0x00000000004008d1 in _start ()

It's probably what Thomas already discovered in (post)review https://git.reviewboard.kde.org/r/104519/

I had the crash once, but had my new system compiled without debug symbols.
Comment 3 Martin Flöser 2012-04-24 20:05:56 UTC
Git commit fde0381bb1852793c4991def246b8bc0114e359d by Martin Gräßlin.
Committed on 24/04/2012 at 21:10.
Pushed by graesslin into branch 'master'.

Fix regressions related to stacking order changes

The change to have stacking order containing
Toplevel inestead of Clients (431aad6d6994695e72697fcc3299ec2cb6f0684e)
introduced possible crashers as recognized in:
http://git.reviewboard.kde.org/r/104519/#review12714

This change fixes these issues by adding missing
null pointer checks after casting to Client.
FIXED-IN: 4.9.0
REVIEW: 104714

M  +4    -4    kwin/layers.cpp

http://commits.kde.org/kde-workspace/fde0381bb1852793c4991def246b8bc0114e359d