Bug 304407 - kwindecoration crash after upgrade 4.8 to 4.9
Summary: kwindecoration crash after upgrade 4.8 to 4.9
Status: RESOLVED DUPLICATE of bug 301646
Alias: None
Product: kwin
Classification: Plasma
Component: decorations (show other bugs)
Version: 4.9.0
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
: 304434 (view as bug list)
Depends on:
Blocks:
 
Reported: 2012-08-01 23:15 UTC by Daniel Keenaghan
Modified: 2012-08-04 14:25 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
New crash information added by DrKonqi (6.97 KB, text/plain)
2012-08-02 18:31 UTC, Usul
Details
New crash information added by DrKonqi (5.38 KB, text/plain)
2012-08-04 07:33 UTC, dopiront
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Daniel Keenaghan 2012-08-01 23:15:28 UTC
Application: systemsettings (1.0)
KDE Platform Version: 4.9.00
Qt Version: 4.8.1
Operating System: Linux 3.2.0-27-generic x86_64
Distribution: Ubuntu 12.04 LTS

-- Information about the crash:
- What I was doing when the application crashed:
Application crashes when opened

- Custom settings of the application:
QTCurve window decoration was installed and active before upgrading from 4.8 to 4.9

The crash can be reproduced every time.

-- Backtrace:
Application: System Settings (systemsettings), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f5dd7be27c0 (LWP 3849))]

Thread 3 (Thread 0x7f5db9c4d700 (LWP 3850)):
#0  0x00007f5dd4b7a0bd in read () at ../sysdeps/unix/syscall-template.S:82
#1  0x00007f5dc9b920bc in ?? () from /usr/lib/nvidia-current/libGL.so.1
#2  0x00007f5dc740db27 in ?? () from /usr/lib/nvidia-current/tls/libnvidia-tls.so.295.40
#3  0x00007f5dce3098cf in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f5dce2ceba4 in g_main_context_check () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f5dce2cefd6 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#6  0x00007f5dce2cf164 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#7  0x00007f5dd52fc426 in QEventDispatcherGlib::processEvents (this=0x7f5db40008e0, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#8  0x00007f5dd52cbc82 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#9  0x00007f5dd52cbed7 in QEventLoop::exec (this=0x7f5db9c4ccd0, flags=...) at kernel/qeventloop.cpp:204
#10 0x00007f5dd51cafa7 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:501
#11 0x00007f5dd52ab9ff in QInotifyFileSystemWatcherEngine::run (this=0x18da7c0) at io/qfilesystemwatcher_inotify.cpp:248
#12 0x00007f5dd51cdfcb in QThreadPrivate::start (arg=0x18da7c0) at thread/qthread_unix.cpp:298
#13 0x00007f5dc9b93b74 in ?? () from /usr/lib/nvidia-current/libGL.so.1
#14 0x00007f5dce79be9a in start_thread (arg=0x7f5db9c4d700) at pthread_create.c:308
#15 0x00007f5dd4b874bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#16 0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7f5db8fd2700 (LWP 3851)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007f5dd29c1222 in ?? () from /usr/lib/x86_64-linux-gnu/libQtScript.so.4
#2  0x00007f5dd29c1259 in ?? () from /usr/lib/x86_64-linux-gnu/libQtScript.so.4
#3  0x00007f5dc9b93b74 in ?? () from /usr/lib/nvidia-current/libGL.so.1
#4  0x00007f5dce79be9a in start_thread (arg=0x7f5db8fd2700) at pthread_create.c:308
#5  0x00007f5dd4b874bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#6  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f5dd7be27c0 (LWP 3849)):
[KCrash Handler]
#6  0x00007f5db39c0300 in KDecorationOptions::showTooltips() const () from /usr/lib/libkdecorations.so.4
#7  0x00007f5db39c03a7 in KDecoration::createMainWidget(QFlags<Qt::WindowType>) () from /usr/lib/libkdecorations.so.4
#8  0x00007f5db3df5a1a in ?? () from /usr/lib/kde4/kwin3_deKorator.so
#9  0x00007f5db9234232 in KDecorationPreview::recreateDecoration (this=0x1a3fc10, plugins=0x1a3fb70) at ../../../../kwin/kcmkwin/kwindecoration/preview.cpp:77
#10 0x00007f5db923643d in KWin::DecorationModel::regeneratePreview (this=0x1a3fa40, index=..., size=...) at ../../../../kwin/kcmkwin/kwindecoration/decorationmodel.cpp:332
#11 0x00007f5db9236835 in KWin::DecorationModel::regenerateNextPreview (this=0x1a3fa40) at ../../../../kwin/kcmkwin/kwindecoration/decorationmodel.cpp:279
#12 0x00007f5dd52e6446 in QObject::event (this=0x1a3fa40, e=<optimized out>) at kernel/qobject.cpp:1195
#13 0x00007f5dd5f43894 in notify_helper (e=0x1d1f8d0, receiver=0x1a3fa40, this=0x130dd10) at kernel/qapplication.cpp:4559
#14 QApplicationPrivate::notify_helper (this=0x130dd10, receiver=0x1a3fa40, e=0x1d1f8d0) at kernel/qapplication.cpp:4531
#15 0x00007f5dd5f48713 in QApplication::notify (this=0x7fff850a6690, receiver=0x1a3fa40, e=0x1d1f8d0) at kernel/qapplication.cpp:4420
#16 0x00007f5dd6c7d456 in KApplication::notify (this=0x7fff850a6690, receiver=0x1a3fa40, event=0x1d1f8d0) at ../../kdeui/kernel/kapplication.cpp:311
#17 0x00007f5dd52cce9c in QCoreApplication::notifyInternal (this=0x7fff850a6690, receiver=0x1a3fa40, event=0x1d1f8d0) at kernel/qcoreapplication.cpp:876
#18 0x00007f5dd52d0c6a in sendEvent (event=0x1d1f8d0, receiver=0x1a3fa40) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#19 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x123f1f0) at kernel/qcoreapplication.cpp:1500
#20 0x00007f5dd52fbf93 in sendPostedEvents () at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:236
#21 postEventSourceDispatch (s=<optimized out>) at kernel/qeventdispatcher_glib.cpp:279
#22 0x00007f5dce2ced53 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#23 0x00007f5dce2cf0a0 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#24 0x00007f5dce2cf164 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#25 0x00007f5dd52fc3bf in QEventDispatcherGlib::processEvents (this=0x1240ad0, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#26 0x00007f5dd5febd5e in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#27 0x00007f5dd52cbc82 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#28 0x00007f5dd52cbed7 in QEventLoop::exec (this=0x7fff850a6620, flags=...) at kernel/qeventloop.cpp:204
#29 0x00007f5dd52d0f67 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1148
#30 0x000000000040a9e5 in main (argc=5, argv=0x7fff850a6958) at ../../../systemsettings/app/main.cpp:49

Possible duplicates by query: bug 302850, bug 302082, bug 301787.

Reported using DrKonqi
Comment 1 Christoph Feck 2012-08-02 00:55:33 UTC
Thomas, looks like the regression is still there ... Actually, I did not see an API break in the commits, so it is a different bug, maybe we need valgrind logs to find out why the decoration isn't initialized correctly, and causes crashes whenever information is queried (font, etc., see other backtraces).
Comment 2 Christoph Feck 2012-08-02 12:20:37 UTC
*** Bug 304434 has been marked as a duplicate of this bug. ***
Comment 3 Thomas Lübking 2012-08-02 18:09:54 UTC
I "accidentally" removed exported functions and classes (from the original tabbin implementation) - that is not ABI stable.
I however re-added them (as stubs, but not NULL)

For everything < 4.9.0 and in the kcm /only/ there's a chance for a dangeling factory pointer in the preview ( https://git.reviewboard.kde.org/r/105721/ ) but that should randomly affect *all* decos while atm. it only seems to hit 3rd party ones (including oc. those which are binary incompatible for sure (using instable API))

Also i've skulpture installed and just installed dekorator - w/o any issues.
Still smells like ABI to me...

What's interesting though, is that Mirza (bug #301646) has a bunch of old decos like redmond etc. installed which are no longer shipped with kwin since i think 4.8 and that do NOT seem to raise this issue.
Comment 4 Usul 2012-08-02 18:31:08 UTC
Created attachment 72910 [details]
New crash information added by DrKonqi

systemsettings (1.0) on KDE Platform 4.9.00 using Qt 4.8.1

- What I was doing when the application crashed:
Application crashes when opened

- Custom settings of the application:
QTCurve window decoration was installed and active before upgrading from 4.8 to 4.9

The crash can be reproduced every time.

-- Backtrace (Reduced):
#6  0x00007fde6776e300 in KDecorationOptions::showTooltips() const () from /usr/lib/libkdecorations.so.4
#7  0x00007fde6776e3a7 in KDecoration::createMainWidget(QFlags<Qt::WindowType>) () from /usr/lib/libkdecorations.so.4
[...]
#9  0x00007fde74f55232 in KDecorationPreview::recreateDecoration (this=0x1d25710, plugins=0x1d25670) at ../../../../kwin/kcmkwin/kwindecoration/preview.cpp:77
#10 0x00007fde74f5743d in KWin::DecorationModel::regeneratePreview (this=0x1d25540, index=..., size=...) at ../../../../kwin/kcmkwin/kwindecoration/decorationmodel.cpp:332
#11 0x00007fde74f57835 in KWin::DecorationModel::regenerateNextPreview (this=0x1d25540) at ../../../../kwin/kcmkwin/kwindecoration/decorationmodel.cpp:279
Comment 5 Christoph Feck 2012-08-02 18:53:36 UTC
> that do NOT seem to raise this issue

Those other decorations don't try to use the options.
Comment 6 Thomas Lübking 2012-08-02 19:47:32 UTC
of course they did:
https://projects.kde.org/projects/kde/kde-workspace/repository/revisions/v4.5.0/entry/kwin/clients/redmond/redmond.cpp

more important is that this option call is via KDecoration::createMainWidget() which about every decoration should call at a time.

I had rather guessed that they'd be guarded through KCommonDecoration, but Skulpture uses it as well ...
Comment 7 dopiront 2012-08-04 07:33:11 UTC
Created attachment 72942 [details]
New crash information added by DrKonqi

systemsettings (1.0) on KDE Platform 4.9.00 using Qt 4.8.1

- What I was doing when the application crashed:

In system settings, crah when clicking on workspace appearance.

-- Backtrace (Reduced):
#6  0x00007f327efad300 in KDecorationOptions::showTooltips() const () from /usr/lib/libkdecorations.so.4
#7  0x00007f327efad3a7 in KDecoration::createMainWidget(QFlags<Qt::WindowType>) () from /usr/lib/libkdecorations.so.4
[...]
#9  0x00007f32845e2232 in KDecorationPreview::recreateDecoration (this=0x13f6520, plugins=0x13f6480) at ../../../../kwin/kcmkwin/kwindecoration/preview.cpp:77
#10 0x00007f32845e443d in KWin::DecorationModel::regeneratePreview (this=0x13f6350, index=..., size=...) at ../../../../kwin/kcmkwin/kwindecoration/decorationmodel.cpp:332
#11 0x00007f32845e4835 in KWin::DecorationModel::regenerateNextPreview (this=0x13f6350) at ../../../../kwin/kcmkwin/kwindecoration/decorationmodel.cpp:279
Comment 8 Thomas Lübking 2012-08-04 13:06:06 UTC

*** This bug has been marked as a duplicate of bug 301646 ***
Comment 9 dopiront 2012-08-04 13:43:12 UTC
The problem was in my case the following file:
/usr/lib/kde4/kwin3deKorator.so  after deleting the file everything worked
again.  This was the case on two different computers.

2012/8/4 Thomas Lübking <thomas.luebking@gmail.com>

> https://bugs.kde.org/show_bug.cgi?id=304407
>
> Thomas Lübking <thomas.luebking@gmail.com> changed:
>
>            What    |Removed                     |Added
>
> ----------------------------------------------------------------------------
>              Status|UNCONFIRMED                 |RESOLVED
>          Resolution|---                         |DUPLICATE
>
> --- Comment #8 from Thomas Lübking <thomas.luebking@gmail.com> ---
>
>
> *** This bug has been marked as a duplicate of bug 301646 ***
>
> --
> You are receiving this mail because:
> You are on the CC list for the bug.
Comment 10 Thomas Lübking 2012-08-04 14:25:44 UTC
Yes, we know that it's ABI compatibility with 3rd party decorations (just recompiling the decoration or having your distro do so would do as well)

The remaining issue is "what actually breaks the ABI" - see bug #301646