Version: 1.0 (using Devel) OS: Linux System settings crashes when trying to add a specific-window override. I crashes if I access from systemsettings or from the Alt+F3 menu -> Configure Window Behaviour -> Window Decorations... Reproducible: Always Steps to Reproduce: Go to: 1. System Settings 2. Workspace appearance 3. Window Decorations 4. Configure Decoration 5. Window-Specific Overrides 6. Add Actual Results: It crashes Expected Results: I should be able to add a specific-window override
Same happens on my system. Archlinux 64 bit, KDE 4.8 rc2.
Please provide a backtrace then
I'm not sure if this might be useful: http://pastebin.com/AYe1111h
Proves that it happens in the oxygen plugin and provides a slight idea what's happening (but some debug symbols in the oxygen lib would certainly appreciated by hugo a lot :-) In general, please rather post backtraces here (esp. if asked for) than on pastebin etc. better for later triaging. Application: System Settings (systemsettings), signal: Aborted [KCrash Handler] #6 0x00007f53e6169935 in raise () from /lib/libc.so.6 #7 0x00007f53e616adab in abort () from /lib/libc.so.6 #8 0x00007f53e684e4a4 in qt_message_output(QtMsgType, char const*) () from /usr/lib/libQtCore.so.4 #9 0x00007f53e684e65f in ?? () from /usr/lib/libQtCore.so.4 #10 0x00007f53e684e804 in qFatal(char const*, ...) () from /usr/lib/libQtCore.so.4 #11 0x00007f53e6899eef in QtSharedPointer::ExternalRefCountData::setQObjectShared(QObject const*, bool) () from /usr/lib/libQtCore.so.4 #12 0x00007f53cdff40d9 in ?? () from /usr/lib/kde4/kwin_oxygen_config.so #13 0x00007f53e6969f51 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4 #14 0x00007f53e7c60812 in QAbstractButton::clicked(bool) () from /usr/lib/libQtGui.so.4 #15 0x00007f53e799fa9e in ?? () from /usr/lib/libQtGui.so.4 #16 0x00007f53e79a0ddb in ?? () from /usr/lib/libQtGui.so.4 #17 0x00007f53e79a104c in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/libQtGui.so.4 #18 0x00007f53e7625f64 in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4 #19 0x00007f53e75d5854 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4 #20 0x00007f53e75dafa3 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4 #21 0x00007f53e8323646 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5 #22 0x00007f53e69560ac in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4 #23 0x00007f53e75d6822 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/libQtGui.so.4 #24 0x00007f53e7652b85 in ?? () from /usr/lib/libQtGui.so.4 #25 0x00007f53e7651a4a in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/libQtGui.so.4 #26 0x00007f53e7679292 in ?? () from /usr/lib/libQtGui.so.4 #27 0x00007f53e380b84d in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #28 0x00007f53e380c048 in ?? () from /usr/lib/libglib-2.0.so.0 #29 0x00007f53e380c219 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #30 0x00007f53e69850ff in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #31 0x00007f53e7678f1e in ?? () from /usr/lib/libQtGui.so.4 #32 0x00007f53e6954e92 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #33 0x00007f53e69550e7 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #34 0x00007f53e7aa1c66 in QDialog::exec() () from /usr/lib/libQtGui.so.4 #35 0x00007f53d4f5b3af in ?? () from /usr/lib/kde4/kcm_kwindecoration.so #36 0x00007f53e6969f51 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4 #37 0x00007f53e7c60812 in QAbstractButton::clicked(bool) () from /usr/lib/libQtGui.so.4 #38 0x00007f53e799fa9e in ?? () from /usr/lib/libQtGui.so.4 #39 0x00007f53e79a0ddb in ?? () from /usr/lib/libQtGui.so.4 #40 0x00007f53e79a104c in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/libQtGui.so.4 #41 0x00007f53e7625f64 in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4 #42 0x00007f53e75d5854 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4 #43 0x00007f53e75dafa3 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4 #44 0x00007f53e8323646 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5 #45 0x00007f53e69560ac in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4 #46 0x00007f53e75d6822 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/libQtGui.so.4 #47 0x00007f53e7652b85 in ?? () from /usr/lib/libQtGui.so.4 #48 0x00007f53e7651a4a in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/libQtGui.so.4 #49 0x00007f53e7679292 in ?? () from /usr/lib/libQtGui.so.4 #50 0x00007f53e380b84d in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #51 0x00007f53e380c048 in ?? () from /usr/lib/libglib-2.0.so.0 #52 0x00007f53e380c219 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #53 0x00007f53e69850ff in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #54 0x00007f53e7678f1e in ?? () from /usr/lib/libQtGui.so.4 #55 0x00007f53e6954e92 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #56 0x00007f53e69550e7 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #57 0x00007f53e6959c45 in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4 #58 0x000000000040a9d5 in ?? () #59 0x00007f53e615638d in __libc_start_main () from /lib/libc.so.6 #60 0x000000000040aa29 in _start ()
OK! Thanks for the advice, rebuilding with Debugfull :) I will post new results in a while
@Hugo: a relevant snippet ;-) #12 0xb6c2e8b8 in qFatal(char const*, ...) () from /usr/lib/libQtCore.so.4 #13 0xb6c808ee in QtSharedPointer::ExternalRefCountData::setQObjectShared(QObject const*, bool) () from /usr/lib/libQtCore.so.4 #14 0xae86c724 in internalFinishConstruction (ptr=0x9d61220, this=<synthetic pointer>) at /usr/include/QtCore/qsharedpointer_impl.h:381 #15 internalConstruct (ptr=0x9d61220, this=<synthetic pointer>) at /usr/include/QtCore/qsharedpointer_impl.h:357 #16 ExternalRefCount (this=<synthetic pointer>, ptr=0x9d61220) at /usr/include/QtCore/qsharedpointer_impl.h:391 #17 QSharedPointer (ptr=0x9d61220, this=<synthetic pointer>) at /usr/include/QtCore/qsharedpointer_impl.h:473 #18 Oxygen::ExceptionListWidget::add (this=0x9f60858) at /home/src/KDE4/kde-workspace/kwin/clients/oxygen/config/oxygenexceptionlistwidget.cpp:116 #19 0xae86b953 in qt_static_metacall (_a=0xbff0acd8, _id=2, _o=0x9f60858, _c=<optimized out>) at /home/src/KDE4/BUILD_master/workspace/kwin/clients/oxygen/config/oxygenexceptionlistwidget.moc:62 #20 Oxygen::ExceptionListWidget::qt_static_metacall (_o=0x9f60858, _c=QMetaObject::InvokeMetaMethod, _id=2, _a=0xbff0acd8) at /home/src/KDE4/BUILD_master/workspace/kwin/clients/oxygen/config/oxygenexceptionlistwidget.moc:54 #21 0xb6d633d1 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4 #22 0xb69595ed in QAbstractButton::clicked(bool) () from /usr/lib/libQtGui.so.4
Which version of Qt is this ? (my bet is: 4.8)
yupp - got a nasty qDeleteAll in there?
Nope. This is a regression with QSharedPointer in Qt4.8 Only thing that I am doing, which is actually advertised by krazy is: QSharedPointer<ExceptionDialog> dialog( new ExceptionDialog( this ) ); In fact, its a dupe, which was closed as upstream. Will try to look it up. It was discussed that I could avoid using a QSharedPointer there, but that would be a workaround, not a fix of the actual upstream bug.
PS: does not crash with QT4.7 (which I'm still running with)
*** Bug 290981 has been marked as a duplicate of this bug. ***
ok. The krazy report that made me use QSharedPointer is http://blogs.kde.org/node/3919 Now it refers to QPointer and not QSharedPointer, so I'll use that, hoping it does not crash anymore ...
Git commit 5777ebbfada8ae0bf7f7769cdd38ff651623f092 by Hugo Pereira Da Costa. Committed on 09/01/2012 at 09:42. Pushed by hpereiradacosta into branch 'KDE/4.8'. Changed QSharedPointer -> QPointer M +8 -2 kwin/clients/oxygen/config/oxygenexceptionlistwidget.cpp http://commits.kde.org/kde-workspace/5777ebbfada8ae0bf7f7769cdd38ff651623f092
Git commit f55aa9af21097095291c2154ee16615c1ec4cc80 by Hugo Pereira Da Costa. Committed on 09/01/2012 at 09:42. Pushed by hpereiradacosta into branch 'master'. Changed QSharedPointer -> QPointer M +8 -2 kwin/clients/oxygen/config/oxygenexceptionlistwidget.cpp http://commits.kde.org/kde-workspace/f55aa9af21097095291c2154ee16615c1ec4cc80
ok. Fixed (I hope) and backported. Still, the crash with QSharedPointer *is* a Qt bug, and should be reported to Qt as such. Cheers, Hugo
Git commit a1de4f6be6908a56b7b4c45ff124a644a52ae6f5 by Hugo Pereira Da Costa. Committed on 09/01/2012 at 09:49. Pushed by hpereiradacosta into branch 'KDE/4.8'. removed other instances of QSharedPointer (damn Qt) M +31 -9 kwin/clients/oxygen/config/oxygenexceptionlistwidget.cpp http://commits.kde.org/kde-workspace/a1de4f6be6908a56b7b4c45ff124a644a52ae6f5
Git commit 81207333476e8fc47fc1400bac6a51b68229d275 by Hugo Pereira Da Costa. Committed on 09/01/2012 at 09:49. Pushed by hpereiradacosta into branch 'master'. removed other instances of QSharedPointer (damn Qt) M +31 -9 kwin/clients/oxygen/config/oxygenexceptionlistwidget.cpp http://commits.kde.org/kde-workspace/81207333476e8fc47fc1400bac6a51b68229d275