Summary: | Going back to icon view from "Global Keyboard Shortcuts" crashes [QWidget::ensurePolished, QWidgetPrivate::activateChildLayoutsRecursively, QWidgetPrivate::activateChildLayoutsRecursively] | ||
---|---|---|---|
Product: | [Plasma] Oxygen | Reporter: | Christoph Feck <cfeck> |
Component: | style | Assignee: | Camilla Boemann <cbo> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | aevar.gudmundsson, andresbajotierra, bcooksley, benpro82, biasquez, bugs.kde.org.id324, hugo.pereira.da.costa, javier.conti, marokanski.kazak, mirza.dervisevic, ophir.geffen, pprzemal, simon, sourtooth+ssbugs |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: |
New crash information added by DrKonqi
New crash information added by DrKonqi New crash information added by DrKonqi New crash information added by DrKonqi New crash information added by DrKonqi |
Description
Christoph Feck
2009-11-26 05:54:54 UTC
Looks like the Oxygen style is at fault, and I can't reproduce locally. It crashes for me here using: Qt: 4.6.0 (kde-qt master commit cd8595efe9aace2afdaa5db37af7cfe82b87e4aa Date: Wed Nov 18 01:33:21 2009 +0100) KDE: 4.3.77 (KDE 4.3.77 (KDE 4.4 >= 20091123)) kdelibs svn rev. 1053388 / kdebase svn rev. 1053388 on ArchLinux i686 - Kernel 2.6.31.6 In fact, it seems to be Oxygen related... I couldn't get it to crash with "systemsettings -style plastique" Regards *** Bug 216314 has been marked as a duplicate of this bug. *** Yep. Oxygen related. More precisely, animation related. Could you check whether or not the crash still happens if you uncheck the "animate tab transitions" checkbox in the oxygen style configuration dialog ? systemsettings->Appearance->style->configure (right of the style selection combobox)->animations (last tab) ? thanks in advance Here using: Qt: 4.6.0 (kde-qt master commit cd8595efe9aace2afdaa5db37af7cfe82b87e4aa Date: Wed Nov 18 01:33:21 2009 +0100) KDE: 4.3.80 (KDE 4.3.80 (KDE 4.4 Beta1)) kdelibs svn rev. 1056270 / kdebase svn rev. 1056271 on ArchLinux i686 - Kernel 2.6.31.6 I can confirm that disabling the Oxygen tab animation, and restarting SystemSettings, "fixes" the crash. Thanks for the info. What is surprising though is that the crash occurs in QWidget::render. while the widget to which it is called is valid (non NULL) In that sense that might actually be a Qt bug. How can I know whether I am allowed to call QWidget::render or not otherwise ? *** Bug 217179 has been marked as a duplicate of this bug. *** *** Bug 218472 has been marked as a duplicate of this bug. *** *** Bug 218917 has been marked as a duplicate of this bug. *** There is a backtrace related to this at https://bugs.kde.org/attachment.cgi?id=39091 , it is a bit different (it includes more Oxygen calls), but may be the same. @Hugo: can you check it ? Thanks Looking into this one too. @Dario thanks for the backtrace. What anoys me here like in the other oxygen related bugs is that - the crash really happens in Qt (which is not to say that Oxygen don't trigger it). - none of these crash happen when using Qt4.5 (against which oxygen-style compiles just fine). Which is more suspicious to me. But I'm still looking. Anyway, I guess if it can't be fixed for kde4.4 release, One might need to disable "transitions" as a whole (tabwidgets, lineEditors, ComboBoxes and QLabel), since all of them crash Qt one way or the other (all of them by either calling QWidget::render, or QPixmap::grab). 2009/12/16 Hugo Pereira Da Costa <hugo.pereira@free.fr>: > https://bugs.kde.org/show_bug.cgi?id=216215 > > > > > > --- Comment #11 from Hugo Pereira Da Costa <hugo pereira free fr> 2009-12-16 16:41:43 --- > Looking into this one too. @Dario thanks for the backtrace. > What anoys me here like in the other oxygen related bugs is that > - the crash really happens in Qt (which is not to say that Oxygen don't trigger > it). > - none of these crash happen when using Qt4.5 (against which oxygen-style > compiles just fine). Which is more suspicious to me. Hi Hugo, just to mention, I'm experiencing (probably) the same problem, but with QT 4.6. Ciao, Javier > > But I'm still looking. > > Anyway, I guess if it can't be fixed for kde4.4 release, One might need to > disable "transitions" as a whole (tabwidgets, lineEditors, ComboBoxes and > QLabel), since all of them crash Qt one way or the other (all of them by either > calling QWidget::render, or QPixmap::grab). > > -- > Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email > ------- You are receiving this mail because: ------- > You are on the CC list for the bug. > So I looked into the backtrace in a bit more detail. Interesting things are: #6 QWidget::ensurePolished (this=0x9daee48) while earlier in the loop: #51 0xb6552257 in QWidget::~QWidget (this=0x9daee48, __in_chrg=<value optimized out>) at /local/git/Qt/qt/src/gui/kernel/qwidget.cpp:1459 #52 0xb691f191 in QFrame::~QFrame (this=0x9daee48, __in_chrg=<value optimized out>) at /local/git/Qt/qt/src/gui/widgets/qframe.cpp:242 (note that this is the same widget address). So clearly: QWidget::render tries (recursively) to access a pointer that already has been deleted. Bad. The same scenario is true for but 217179, bug 218472, and in the backtrace of comment #10. I am not sure about what can be done about this: either it is a QWidget::render bug, or the call to QWidget::render done by oxygen (and triggered by a signal/slot connection) is done too early in the event loop. May be this should be forwarded to the Qt bugtracker ? may be the Qt team can give you some hints @dario: yes. I plan to do this today. Just submitted a qt bug report at: http://bugreports.qt.nokia.com/browse/QTBUG-6896 Waiting for suggestions/advice. Created attachment 41509 [details]
New crash information added by DrKonqi
Crash happend after exiting Global Keyboard Shortcuts.
Created attachment 41510 [details]
New crash information added by DrKonqi
Crash happend after exiting Global Keyboard Shortcuts.
Created attachment 41511 [details]
New crash information added by DrKonqi
Crash happend after exiting Global Keyboard Shortcuts.
*** Bug 230710 has been marked as a duplicate of this bug. *** Bug 231410 looks like a similar backtrace with a different way to reproduce... it may be useful... *** Bug 231547 has been marked as a duplicate of this bug. *** SVN commit 1106745 by hpereiradacosta: Added protection to disable animation when target is destroyed. CCBUG: 216215 231410 M +8 -0 oxygencomboboxdata.cpp M +3 -0 oxygencomboboxdata.h M +10 -0 oxygenlabeldata.cpp M +3 -0 oxygenlabeldata.h M +18 -3 oxygenlineeditdata.cpp M +4 -5 oxygenlineeditdata.h M +8 -0 oxygenstackedwidgetdata.cpp M +3 -0 oxygenstackedwidgetdata.h WebSVN link: http://websvn.kde.org/?view=rev&revision=1106745 I can no longer reproduce the crash using the steps provided in comment #1 even with Tab transitions enabled. Seems to be fixed now, please reopen if you can reproduce. awesome :) *** Bug 233308 has been marked as a duplicate of this bug. *** Created attachment 43361 [details]
New crash information added by DrKonqi
Crash step:
* Run systemsettings
* Click Mouse/Keyboard
* Click Global Keyboard Shortcuts
* Click "Back" in Toolbar
*** Bug 237253 has been marked as a duplicate of this bug. *** SVN commit 1125643 by hpereiradacosta: Backport r1106745 Added protection to disable animation when target is destroyed. CCBUG: 216215 M +9 -1 oxygencomboboxdata.cpp M +3 -0 oxygencomboboxdata.h M +10 -0 oxygenlabeldata.cpp M +3 -0 oxygenlabeldata.h M +17 -2 oxygenlineeditdata.cpp M +4 -5 oxygenlineeditdata.h M +8 -0 oxygenstackedwidgetdata.cpp M +3 -0 oxygenstackedwidgetdata.h WebSVN link: http://websvn.kde.org/?view=rev&revision=1125643 see comment #30. I just backported to the 4.4 branch the changes of commen #23, which apparently fixed it. Hopefully this will make it into kde4.4.4, if there is such a thing. Hugo Created attachment 60119 [details] New crash information added by DrKonqi systemsettings (1.0) on KDE Platform 4.6.2 (4.6.2) using Qt 4.7.2 - What I was doing when the application crashed: Navigated to "global keyboard shortcuts", I then clicked "standard keyboard shortcuts" and BOOM. Everytime. Crash. Comment #4 is indeed a valid work around for me. I am on KDE 4.6.2. -- Backtrace (Reduced): #6 isWidgetType (this=0x12c42d0) at ../../include/QtCore/../../src/corelib/kernel/qobject.h:156 #7 QWidget::ensurePolished (this=0x12c42d0) at kernel/qwidget.cpp:9602 #8 0x00007f7c15393867 in QWidgetPrivate::activateChildLayoutsRecursively (this=0xe87720) at kernel/qwidget.cpp:7354 #9 0x00007f7c1539388f in QWidgetPrivate::activateChildLayoutsRecursively (this=0xe873d0) at kernel/qwidget.cpp:7367 #10 0x00007f7c1539388f in QWidgetPrivate::activateChildLayoutsRecursively (this=0xe86e80) at kernel/qwidget.cpp:7367 |