Version: (using Devel) OS: Linux Installed from: Compiled sources Description of problem: when I change position same toolbar koffice sometimes hangs Version-Release number of selected component (if applicable): koffice-core-2.1.0-2.fc12.x86_64 koffice-kpresenter-2.1.0-2.fc12.x86_64 koffice-kplato-2.1.0-2.fc12.x86_64 koffice-kformula-2.1.0-2.fc12.x86_64 koffice-krita-2.1.0-2.fc12.x86_64 koffice-langpack-en_GB-2.1.0-2.fc12.noarch koffice-kword-2.1.0-2.fc12.x86_64 koffice-langpack-2.1.0-2.fc12.noarch koffice-libs-2.1.0-2.fc12.x86_64 koffice-karbon-2.1.0-2.fc12.x86_64 koffice-suite-2.1.0-2.fc12.x86_64 koffice-kspread-2.1.0-2.fc12.x86_64 koffice-filters-2.1.0-2.fc12.x86_64 koffice-langpack-cs-2.0.0-2.fc12.noarch [kde-redhat-testing] How reproducible: sometimes Steps to Reproduce: 1.try to change position docker/toolbars and merge(merge evokes hangs everytime) 2.koffice(kword,KSpread) hangs Actual results: kword,KSpread hangs
Created attachment 39254 [details] gstack
maybe this simular to https://bugs.kde.org/show_bug.cgi?id=202723 but no crash
heh. First time in my life I've seen a 7Mb backtrace (with #63548 levels).
sorry ,but I cant make bt becouse I don`t know how
*** Bug 222833 has been marked as a duplicate of this bug. ***
Hi, I experienced the same issue today. Do you know which version of Qt you are using?
I use KOffice 2.1.1 and Qt 4.6.
Thank you for the confirmation.
I can reproduce on a non KOffice application, but still KDE (darkroom). (and I have seen the problem with oxygen, qtcurve and plastique)
By continuing my investigation, I could see on darkroom, a flickering of the docker being added, then removed, then added, I tried to capture that on this video, but the flickering is a bit to quick: http://cyrille.diwi.org/tmp/krita/darkroom-docker-bug.ogv I did not manage to see the flickering in krita.
Investigating this further, I noticed that by commenting the call to KXmlGuiWindow::setupGUI() and KXmlGuiWindow::setAutoSaveSettings I would not get anymore hanging. So something bad is happening in those two functions.
Calling "resetAutoSaveSettings();" sort of fix the problem. But I have no clue why saving window settings would trigger that infinite loop.
Here is what I think trigger the loop: for some reason saveState remove one of the tab, most likely the tab of the newly stacked docker, and then later that tab is added again, triggering the need for saving again window settings: #0 0xb5fddec1 in QTabBar::setCurrentIndex (this=0x83a31a8, index=0) at widgets/qtabbar.cpp:1179 #1 0xb5fe4cf3 in QTabBar::removeTab (this=0x83a31a8, index=0) at widgets/qtabbar.cpp:891 #2 0xb5f59f9b in QDockAreaLayoutInfo::updateTabBar (this=0x83db5f0) at widgets/qdockarealayout.cpp:2116 #3 0xb5f5a0e0 in QDockAreaLayoutInfo::tabBarSizeHint (this=0x83db5f0) at widgets/qdockarealayout.cpp:2186 #4 0xb5f5aab0 in QDockAreaLayoutInfo::maximumSize (this=0x83db5f0) at widgets/qdockarealayout.cpp:371 #5 0xb5f5abcb in QDockAreaLayoutItem::maximumSize (this=0x84b2ce0) at widgets/qdockarealayout.cpp:154 #6 0xb5f5b0ab in QDockAreaLayoutInfo::saveState (this=0x814b8d4, stream=...) at widgets/qdockarealayout.cpp:1841 #7 0xb5f5b2d1 in QDockAreaLayout::saveState (this=0x814b89c, stream=...) at widgets/qdockarealayout.cpp:2310 #8 0xb5f8c647 in QMainWindowLayoutState::saveState (this=0x814b7f0, stream=...) at widgets/qmainwindowlayout.cpp:594 #9 0xb5f87a21 in QMainWindow::saveState (this=0x8185e18, version=0) at widgets/qmainwindow.cpp:1197 #10 0xb7e3dd22 in KMainWindow::saveMainWindowSettings (this=0x8185e18, _cg=...) at /usr/src/debug/kdelibs-4.3.95/kdeui/widgets/kmainwindow.cpp:675 #11 0xb7e3e3c0 in KMainWindow::saveAutoSaveSettings (this=0x8185e18) at /usr/src/debug/kdelibs-4.3.95/kdeui/widgets/kmainwindow.cpp:1033 #12 0xb7e3e612 in KMainWindowPrivate::setSettingsDirty (this=0x815fce0, callCompression=NoCompressCalls) at /usr/src/debug/kdelibs-4.3.95/kdeui/widgets/kmainwindow.cpp:409 #13 0xb7e3e6ca in KMainWindow::setSettingsDirty (this=0x8185e18) at /usr/src/debug/kdelibs-4.3.95/kdeui/widgets/kmainwindow.cpp:971 #14 0xb7e40950 in KMainWindow::qt_metacall (this=0x8185e18, _c=InvokeMetaMethod, _id=4, _a=0xbffa4d28) at /usr/src/debug/kdelibs-4.3.95/build/kdeui/kmainwindow.moc:99 #15 0xb7e91d02 in KXmlGuiWindow::qt_metacall (this=0x8185e18, _c=InvokeMetaMethod, _id=35, _a=0xbffa4d28) at /usr/src/debug/kdelibs-4.3.95/build/kdeui/kxmlguiwindow.moc:102 #16 0x0805f75f in Darkroom::qt_metacall (this=0x8185e18, _c=InvokeMetaMethod, _id=35, _a=0xbffa4d28) at /home/cyrille/Projects/kde4/build/darkroom/src/Darkroom.moc:103 #17 0xb574632d in QMetaObject::metacall (object=0x8185e18, cl=InvokeMetaMethod, idx=35, argv=0xbffa4d28) at kernel/qmetaobject.cpp:237 #18 0xb575518a in QMetaObject::activate (sender=0x80f97d8, m=0xb644c0f8, local_signal_index=3, argv=0xbffa4d28) at kernel/qobject.cpp:3275 #19 0xb5f515bd in QDockWidget::visibilityChanged (this=0x80f97d8, _t1=false) at .moc/release-shared/moc_qdockwidget.cpp:189 #20 0xb5f54c0e in QDockWidget::event (this=0x80f97d8, event=0xbffa5184) at widgets/qdockwidget.cpp:1396 #21 0xb5afe2ac in QApplicationPrivate::notify_helper (this=0x80f5800, receiver=0x80f97d8, e=0xbffa5184) at kernel/qapplication.cpp:4298 #22 0xb5b05188 in QApplication::notify (this=0x80f97d8, receiver=0x80f97d8, e=0xbffa5184) at kernel/qapplication.cpp:4263 #23 0xb7d3a511 in KApplication::notify (this=0xbfffee7c, receiver=0x80f97d8, event=0xbffa5184) at /usr/src/debug/kdelibs-4.3.95/kdeui/kernel/kapplication.cpp:302 #24 0xb5740fbe in QCoreApplication::notifyInternal (this=0xbfffee7c, receiver=0x80f97d8, event=0xbffa5184) at kernel/qcoreapplication.cpp:704 #25 0xb5b5d458 in sendEvent (event=<value optimized out>, receiver=0x8248ac0) at ../../src/corelib/kernel/qcoreapplication.h:215 #26 QWidgetPrivate::hide_helper (event=<value optimized out>, receiver=0x8248ac0) at kernel/qwidget.cpp:7262 #27 0xb5b66db0 in QWidget::setVisible (this=0x80f97d8, visible=false) at kernel/qwidget.cpp:7435 #28 0xb5f54418 in hide (this=<value optimized out>) at ../../src/gui/kernel/qwidget.h:489 #29 QDockWidgetPrivate::setWindowState (this=<value optimized out>) at widgets/qdockwidget.cpp:1021 #30 0xb5f548c7 in QDockWidgetPrivate::plug (this=0x8248ac0, rect=...) at widgets/qdockwidget.cpp:1004 #31 0xb5f8e65d in QMainWindowLayout::animationFinished (this=0x814b7e0, widget=0x80f97d8) at widgets/qmainwindowlayout.cpp:1623 #32 0xb601e946 in QWidgetAnimator::abort (this=0x814bc70, w=0x80f97d8) at widgets/qwidgetanimator.cpp:64 #33 0xb601e9c8 in QWidgetAnimator::animationFinished (this=0x814bc70) at widgets/qwidgetanimator.cpp:75 ---Type <return> to continue, or q <return> to quit--- #34 0xb6253d86 in QWidgetAnimator::qt_metacall (this=0x814bc70, _c=InvokeMetaMethod, _id=4, _a=0xbffa545c) at .moc/release-shared/moc_qwidgetanimator_p.cpp:72 #35 0xb574632d in QMetaObject::metacall (object=0x814bc70, cl=InvokeMetaMethod, idx=4, argv=0xbffa545c) at kernel/qmetaobject.cpp:237 #36 0xb575518a in QMetaObject::activate (sender=0x852fd08, m=0xb5854874, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3275 #37 0xb561a795 in QAbstractAnimation::finished (this=0x852fd08) at .moc/release-shared/moc_qabstractanimation.cpp:176 #38 0xb561b5f8 in QAbstractAnimationPrivate::setState (this=0x8546a30, newState=Stopped) at animation/qabstractanimation.cpp:410 #39 0xb561b74a in QAbstractAnimation::stop (this=0x852fd08) at animation/qabstractanimation.cpp:761 #40 0xb561b874 in QAbstractAnimation::setCurrentTime (this=0x852fd08, msecs=0) at animation/qabstractanimation.cpp:718 #41 0xb561b542 in QAbstractAnimationPrivate::setState (this=0x8546a30, newState=Running) at animation/qabstractanimation.cpp:395 #42 0xb601e5f8 in QWidgetAnimator::animate (this=0x814bc70, widget=0x80f97d8, _final_geometry=..., animate=200) at widgets/qwidgetanimator.cpp:102 #43 0xb5f5f55d in QDockAreaLayoutInfo::apply (this=0x83db5f0, animate=false) at widgets/qdockarealayout.cpp:1550 #44 0xb5f8ae4b in QMainWindowLayout::tabChanged (this=0x814b7e0) at widgets/qmainwindowlayout.cpp:1336 #45 0xb62507a6 in QMainWindowLayout::qt_metacall (this=0x814b7e0, _c=InvokeMetaMethod, _id=4, _a=0xbffa57f8) at .moc/release-shared/moc_qmainwindowlayout_p.cpp:72 #46 0xb574632d in QMetaObject::metacall (object=0x814b7e0, cl=InvokeMetaMethod, idx=4, argv=0xbffa57f8) at kernel/qmetaobject.cpp:237 #47 0xb575518a in QMetaObject::activate (sender=0x83a31a8, m=0xb644e080, local_signal_index=0, argv=0xbffa57f8) at kernel/qobject.cpp:3275 #48 0xb5fdb945 in QTabBar::currentChanged (this=0x83a31a8, _t1=0) at .moc/release-shared/moc_qtabbar.cpp:201 #49 0xb5fddec1 in QTabBar::setCurrentIndex (this=0x83a31a8, index=0) at widgets/qtabbar.cpp:1179 #50 0xb5f58277 in QDockAreaLayoutInfo::setCurrentTabId (this=0x83db5f0, id=135239640) at widgets/qdockarealayout.cpp:1122 #51 0xb5f8e6ba in QMainWindowLayout::animationFinished (this=0x814b7e0, widget=0x80f97d8) at widgets/qmainwindowlayout.cpp:1636 #52 0xb601e946 in QWidgetAnimator::abort (this=0x814bc70, w=0x80f97d8) at widgets/qwidgetanimator.cpp:64 #53 0xb601e9c8 in QWidgetAnimator::animationFinished (this=0x814bc70) at widgets/qwidgetanimator.cpp:75 #54 0xb6253d86 in QWidgetAnimator::qt_metacall (this=0x814bc70, _c=InvokeMetaMethod, _id=4, _a=0xbffa5a6c) at .moc/release-shared/moc_qwidgetanimator_p.cpp:72 #55 0xb574632d in QMetaObject::metacall (object=0x814bc70, cl=InvokeMetaMethod, idx=4, argv=0xbffa5a6c) at kernel/qmetaobject.cpp:237 #56 0xb575518a in QMetaObject::activate (sender=0x83a9670, m=0xb5854874, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3275 #57 0xb561a795 in QAbstractAnimation::finished (this=0x83a9670) at .moc/release-shared/moc_qabstractanimation.cpp:176 #58 0xb561b5f8 in QAbstractAnimationPrivate::setState (this=0x854a308, newState=Stopped) at animation/qabstractanimation.cpp:410 #59 0xb561b74a in QAbstractAnimation::stop (this=0x83a9670) at animation/qabstractanimation.cpp:761 #60 0xb561b874 in QAbstractAnimation::setCurrentTime (this=0x83a9670, msecs=0) at animation/qabstractanimation.cpp:718 #61 0xb561b542 in QAbstractAnimationPrivate::setState (this=0x854a308, newState=Running) at animation/qabstractanimation.cpp:395 #62 0xb601e5f8 in QWidgetAnimator::animate (this=0x814bc70, widget=0x80f97d8, _final_geometry=..., animate=200) at widgets/qwidgetanimator.cpp:102 #63 0xb5f5f55d in QDockAreaLayoutInfo::apply (this=0x83db5f0, animate=false) at widgets/qdockarealayout.cpp:1550 #64 0xb5f8ae4b in QMainWindowLayout::tabChanged (this=0x814b7e0) at widgets/qmainwindowlayout.cpp:1336 #65 0xb62507a6 in QMainWindowLayout::qt_metacall (this=0x814b7e0, _c=InvokeMetaMethod, _id=4, _a=0xbffa5e08) at .moc/release-shared/moc_qmainwindowlayout_p.cpp:72 #66 0xb574632d in QMetaObject::metacall (object=0x814b7e0, cl=InvokeMetaMethod, idx=4, argv=0xbffa5e08) at kernel/qmetaobject.cpp:237 #67 0xb575518a in QMetaObject::activate (sender=0x83a31a8, m=0xb644e080, local_signal_index=0, argv=0xbffa5e08) at kernel/qobject.cpp:3275 #68 0xb5fdb945 in QTabBar::currentChanged (this=0x83a31a8, _t1=0) at .moc/release-shared/moc_qtabbar.cpp:201 ---Type <return> to continue, or q <return> to quit--- Unfortunately, there is no way to easilly browse commits to a file with qt's gitorious, so I can't really track what have changed. So my suggestion is to use resetAutoSaveSettings() in koffice/branch/2.1, and for 2.2 hopes that someone will keep the investigation from here.
*** Bug 222976 has been marked as a duplicate of this bug. ***
Thanks for the investigation, it is likely a kdelibs bug which is tracked as bug 225025. It has a proposed fix, please test it. *** This bug has been marked as a duplicate of bug 225025 ***