Bug 249579 - Oxygen deco segfaults in Button animation
Summary: Oxygen deco segfaults in Button animation
Status: RESOLVED DUPLICATE of bug 247827
Alias: None
Product: Oxygen
Classification: Plasma
Component: style (show other bugs)
Version: unspecified
Platform: Arch Linux Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-08-31 05:15 UTC by Dyrver Eriksson
Modified: 2010-09-03 17:03 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 Dyrver Eriksson 2010-08-31 05:15:10 UTC
Application: kwin (4.5.00 (KDE 4.5.0))
KDE Platform Version: 4.5.00 (KDE 4.5.0)
Qt Version: 4.6.3
Operating System: Linux 2.6.35-ARCH i686
Distribution (Platform): Archlinux Packages

-- Information about the crash:
- What I was doing when the application crashed:
I disconnected from Kmess 2.0.4 and just about to close it down when Kwin drops out.

- Unusual behavior I noticed:
Kwin krashed and all of a sudden my selected Gnome wallpaper and default nautilus icons show up all of a sudden as the desktop. KDE panels and plasmoids still there.

- Custom settings of the application:
standard kwin settings apart from focus slide windows: Plasmoid Smooth Tasks and Socket Sentry also added.
Gnome 2.30 base on the same system.

-- Backtrace:
Application: Kwin (kwin), signal: Aborted
[Current thread is 1 (Thread 0xb1d48720 (LWP 2271))]

Thread 2 (Thread 0xaf8d0b70 (LWP 2289)):
#0  0xb770b424 in __kernel_vsyscall ()
#1  0xb7581223 in ?? () from /lib/libc.so.6
#2  0xb7516964 in ?? () from /lib/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 1 (Thread 0xb1d48720 (LWP 2271)):
[KCrash Handler]
#7  0xb770b424 in __kernel_vsyscall ()
#8  0xb74ced61 in raise () from /lib/libc.so.6
#9  0xb74d05ee in abort () from /lib/libc.so.6
#10 0xb750a7ed in ?? () from /lib/libc.so.6
#11 0xb75107b1 in ?? () from /lib/libc.so.6
#12 0xb751152b in ?? () from /lib/libc.so.6
#13 0xb75151cd in free () from /lib/libc.so.6
#14 0xb66ad4cd in qFree(void*) () from /usr/lib/libQtCore.so.4
#15 0xb67078b3 in QVectorData::free(QVectorData*, int) () from /usr/lib/libQtCore.so.4
#16 0xb67b3792 in ?? () from /usr/lib/libQtCore.so.4
#17 0xb67ba919 in QObject::~QObject() () from /usr/lib/libQtCore.so.4
#18 0xb669846a in QAbstractAnimation::~QAbstractAnimation() () from /usr/lib/libQtCore.so.4
#19 0xb6699c18 in QVariantAnimation::~QVariantAnimation() () from /usr/lib/libQtCore.so.4
#20 0xb669cc15 in QPropertyAnimation::~QPropertyAnimation() () from /usr/lib/libQtCore.so.4
#21 0xb19c47cd in Oxygen::Animation::~Animation() () from /usr/lib/liboxygenstyle.so.4
#22 0xb67b5d37 in QObjectPrivate::deleteChildren() () from /usr/lib/libQtCore.so.4
#23 0xb67ba837 in QObject::~QObject() () from /usr/lib/libQtCore.so.4
#24 0xb1a31ed6 in Oxygen::WidgetStateData::~WidgetStateData() () from /usr/lib/kde4/plugins/styles/oxygen.so
#25 0xb1a33c06 in Oxygen::WidgetStateEngine::unregisterWidget(QObject*) () from /usr/lib/kde4/plugins/styles/oxygen.so
#26 0xb1a31f82 in Oxygen::WidgetStateEngine::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/kde4/plugins/styles/oxygen.so
#27 0xb67a9eba in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/libQtCore.so.4
#28 0xb67b8f9b in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#29 0xb67b9363 in QObject::destroyed(QObject*) () from /usr/lib/libQtCore.so.4
#30 0xb67ba58a in QObject::~QObject() () from /usr/lib/libQtCore.so.4
#31 0xb5d6edbe in QWidget::~QWidget() () from /usr/lib/libQtGui.so.4
#32 0xb61065ae in QAbstractButton::~QAbstractButton() () from /usr/lib/libQtGui.so.4
#33 0xb6e003a1 in KCommonDecorationButton::~KCommonDecorationButton() () from /usr/lib/libkdecorations.so.4
#34 0xaf0340a3 in Oxygen::Button::~Button() () from /usr/lib/kde4/kwin3_oxygen.so
#35 0xaf0340e2 in Oxygen::Button::~Button() () from /usr/lib/kde4/kwin3_oxygen.so
#36 0xb6e00708 in KCommonDecoration::~KCommonDecoration() () from /usr/lib/libkdecorations.so.4
#37 0xb6e00798 in KCommonDecorationUnstable::~KCommonDecorationUnstable() () from /usr/lib/libkdecorations.so.4
#38 0xaf03c5b7 in Oxygen::Client::~Client() () from /usr/lib/kde4/kwin3_oxygen.so
#39 0xaf03c5e2 in Oxygen::Client::~Client() () from /usr/lib/kde4/kwin3_oxygen.so
#40 0xb6e055b1 in KCommonDecorationWrapper::~KCommonDecorationWrapper() () from /usr/lib/libkdecorations.so.4
#41 0xb6e055f2 in KCommonDecorationWrapper::~KCommonDecorationWrapper() () from /usr/lib/libkdecorations.so.4
#42 0xb7624df5 in KWin::Client::destroyDecoration() () from /usr/lib/libkdeinit4_kwin.so
#43 0xb76256b3 in KWin::Client::releaseWindow(bool) () from /usr/lib/libkdeinit4_kwin.so
#44 0xb765207d in KWin::Client::unmapNotifyEvent(XUnmapEvent*) () from /usr/lib/libkdeinit4_kwin.so
#45 0xb76556ac in KWin::Client::windowEvent(_XEvent*) () from /usr/lib/libkdeinit4_kwin.so
#46 0xb765595c in KWin::Workspace::workspaceEvent(_XEvent*) () from /usr/lib/libkdeinit4_kwin.so
#47 0xb76304f2 in KWin::Application::x11EventFilter(_XEvent*) () from /usr/lib/libkdeinit4_kwin.so
#48 0xb5d846b0 in ?? () from /usr/lib/libQtGui.so.4
#49 0xb5d97975 in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/libQtGui.so.4
#50 0xb5dc0ddb in ?? () from /usr/lib/libQtGui.so.4
#51 0xb67a3119 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#52 0xb67a338a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#53 0xb67a7c6f in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#54 0xb5d11637 in QApplication::exec() () from /usr/lib/libQtGui.so.4
#55 0xb7632cdb in kdemain () from /usr/lib/libkdeinit4_kwin.so
#56 0x0804853b in _start ()

Reported using DrKonqi
Comment 1 Thomas Lübking 2010-08-31 13:36:07 UTC
crash is in the hover animation of a button in the oxygen decoration

the backtrace isn't much complete, you need to install the debug packages of kdebase, kdelibs, Qt libc to give us a better insight in the crash (and oc reproduce it ;-)
it could be a Qt bug (double free) or wrong usage of the property animation ./. deconstructors - but it could as well be in glibc

@martin:
looks a bit like the "strange libc crashes", but it's not ubuntu...
Comment 2 Hugo Pereira Da Costa 2010-08-31 16:20:41 UTC
Its actually a crash in oxygen::Style and not decoration.
See: 

Oxygen::WidgetStateData::~WidgetStateData() () from
/usr/lib/kde4/plugins/styles/oxygen.so

(and later the liboxygen.so is actually common to the style and the decoration).

Now I checked: the animation objects are never deleted in oxygen, (relying on Qt parent tree deletion, and are protected behind weak pointers ... So double deletion is unlikely (at least not by oxygen) .
Comment 3 Hugo Pereira Da Costa 2010-09-03 17:02:24 UTC
I think its a duplicate of 247827.
The backtraces are not 100% identical but crash is in ~Animation, ~QObject, QVector::free. in both cases. 

One workaround I can think of is to not install animations on kwin decoration buttons (from the style), since they are not used anyway: by construction, all decoration buttons re-implement their paintEvent, and don't rely on the widget style for painting.

(in the style, the animations are installed on QAbstractButton, because some private classes from Qt inherits from it, and need animation. E.G. the dockwidget buttons)
Comment 4 Hugo Pereira Da Costa 2010-09-03 17:03:01 UTC

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