Bug 207142 - KWin crash (KDecoration::geometry, DeKorator::DeKoratorClient::doShape)
Summary: KWin crash (KDecoration::geometry, DeKorator::DeKoratorClient::doShape)
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: decorations (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-09-12 03:22 UTC by smalcom
Modified: 2010-03-29 12:25 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description smalcom 2009-09-12 03:22:12 UTC
Application: kwin (4.3.68 (KDE 4.3.68 (KDE 4.4 >= 20090907)))
KDE Version: 4.3.68 (KDE 4.3.68 (KDE 4.4 >= 20090907)) (Compiled from sources)
Qt Version: 4.5.1
Operating System: Linux 2.6.29.5-rt22.rtsm2 x86_64

What I was doing when the application crashed:
At crash time im working in codeblocks and launch/stop debugger. so, many windows are created and destroyed. Composite disabled using hotkey.
KDE built with kdesvnduild.
Distr:bluewhite64
Revision:
kdebase,kdelibs - 1021047
kdeplasma-addons - 1021051


 -- Backtrace:
Application: KWin (kwin), signal: Segmentation fault
[KCrash Handler]
#5  0x00007f2f1607a298 in KDecoration::geometry () from /opt/kde4/lib/libkdecorations.so.4
#6  0x00007f2f068b5350 in DeKorator::DeKoratorClient::doShape () from /mnt/sda3/opt/kde4/lib/kde4/kwin3_deKorator.so
#7  0x00007f2f068b778a in DeKorator::DeKoratorClient::eventFilter () from /mnt/sda3/opt/kde4/lib/kde4/kwin3_deKorator.so
#8  0x00007f2f138d92d7 in QCoreApplicationPrivate::sendThroughObjectEventFilters () from /opt/qt4/lib/libQtCore.so.4
#9  0x00007f2f14009cdc in QApplicationPrivate::notify_helper () from /opt/qt4/lib/libQtGui.so.4
#10 0x00007f2f14012532 in QApplication::notify () from /opt/qt4/lib/libQtGui.so.4
#11 0x00007f2f1559ba6b in KApplication::notify () from /opt/kde4/lib/libkdeui.so.5
#12 0x00007f2f138d9f93 in QCoreApplication::notifyInternal () from /opt/qt4/lib/libQtCore.so.4
#13 0x00007f2f14011798 in QApplicationPrivate::sendMouseEvent () from /opt/qt4/lib/libQtGui.so.4
#14 0x00007f2f1407aa21 in QETWidget::translateMouseEvent () from /opt/qt4/lib/libQtGui.so.4
#15 0x00007f2f1407975d in QApplication::x11ProcessEvent () from /opt/qt4/lib/libQtGui.so.4
#16 0x00007f2f140a0744 in x11EventSourceDispatch () from /opt/qt4/lib/libQtGui.so.4
#17 0x00007f2f0bc2b28b in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#18 0x00007f2f0bc2ea4d in ?? () from /usr/lib/libglib-2.0.so.0
#19 0x00007f2f0bc2ec0b in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#20 0x00007f2f13902d8f in QEventDispatcherGlib::processEvents () from /opt/qt4/lib/libQtCore.so.4
#21 0x00007f2f1409feff in QGuiEventDispatcherGlib::processEvents () from /opt/qt4/lib/libQtGui.so.4
#22 0x00007f2f138d8892 in QEventLoop::processEvents () from /opt/qt4/lib/libQtCore.so.4
#23 0x00007f2f138d8c5d in QEventLoop::exec () from /opt/qt4/lib/libQtCore.so.4
#24 0x00007f2f138dae94 in QCoreApplication::exec () from /opt/qt4/lib/libQtCore.so.4
#25 0x00007f2f162cb615 in kdemain () from /opt/kde4/lib/libkdeinit4_kwin.so
#26 0x00007f2f108eb526 in __libc_start_main () from /lib/libc.so.6
#27 0x0000000000400809 in _start () at ../sysdeps/x86_64/elf/start.S:113

Reported using DrKonqi
Comment 1 Martin Flöser 2009-09-12 09:37:09 UTC
The crash report is missing some important parts (e.g. the line numbers), but it seems to crash in dekorator, so I add the maintainer to CC. Perhaps he knows the crash ;-)
Comment 2 smalcom 2009-09-12 10:35:48 UTC
>>report is missing
generated automatically by KDE crashreport tool. KDE compiled with '-O3 -g1'.
Comment 3 Christoph Feck 2009-09-29 03:40:21 UTC
This looks like a bug in KWin. I will try to describe what happens:

- deKorator installs an event filter for widget() in DeKoratorClient::init() after calling createMainWidget().
- later that event filter is called on the widget(), and inside the event handler, DeKoratorClient::width() / height() are called, and this causes this crash.

It looks like the internal geometry handling is "shut down" before the objects/widgets are deleted. As long as the client and its widget() are not deleted, it should not crash on calling client's width() / height().

If you are sure this is no KWin bug, please resolve as invalid.
Comment 4 Christoph Feck 2009-09-29 03:50:44 UTC
Looking at the implementation of KDecoration::geometry(), the "bridge_" is probably invalid while the decoration client and widget() are still receiving events.
Comment 5 Christoph Feck 2010-03-29 12:25:38 UTC
SVN commit 1108575 by cfeck:

Fix crash when setting "No Border" from RMB menu

I have no clue why doShape() should be called after every
mouse click event, but not calling it will prevent it from
accessing the internal widget when it gets deleted by the
event handler.

BUG: 207142


 M  +0 -2      deKoratorclient.cc  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1108575