SUMMARY Trying to dock a docker created by pykrita (either floating, or already docked somewhere else) causes a SIGSEGV. Originally I found this problem with a third-party plugin, but then I reproduced it with the built-in comic manager and last documents pykrita plugins, so I think this is a problem with pykrita and not the actual python scripts. Also, I can dock built-in dockers without problem, only dockers created by python scripts crash. >>> bt full #0 0x0000000000000000 in () #1 0x00007ffff5a94319 in QMetaObject::cast(QObject const*) const (this=0x7ffff6c97b40 <QWidgetWindow::staticMetaObject>, obj=0x555559f45e50) at /usr/src/debug/dev-qt/qtcore-5.15.7/qtbase-everywhere-src-5.15.7/src/corelib/kernel/qmetaobject.cpp:389 #2 0x00007ffff5a94355 in QMetaObject::cast(QObject*) const (this=<optimized out>, obj=<optimized out>) at /usr/src/debug/dev-qt/qtcore-5.15.7/qtbase-everywhere-src-5.15.7/src/corelib/kernel/qmetaobject.cpp:378 #3 0x00007ffff679b53b in qobject_cast<QWidgetWindow*>(QObject*) (object=<optimized out>) at /usr/src/debug/dev-qt/qtwidgets-5.15.7/qtbase-everywhere-src-5.15.7/include/QtCore/../../src/corelib/kernel/qobject.h:519 q = 0x555559f45950 window = <optimized out> #4 QWidgetPrivate::show_sys() (this=this@entry=0x555559f459d0) at /usr/src/debug/dev-qt/qtwidgets-5.15.7/qtbase-everywhere-src-5.15.7/src/widgets/kernel/qwidget.cpp:7869 q = 0x555559f45950 window = <optimized out> #5 0x00007ffff67a482b in QWidgetPrivate::show_helper() (this=0x555559f459d0) at /usr/src/debug/dev-qt/qtwidgets-5.15.7/qtbase-everywhere-src-5.15.7/src/widgets/kernel/qwidget.cpp:7839 q = 0x555559f45950 isWindow = <optimized out> isEmbedded = false showEvent = { <QEvent> = { _vptr.QEvent = 0x7ffff64538e0 <vtable for QShowEvent+16>, static staticMetaObject = { d = { superdata = { direct = 0x0 }, stringdata = 0x7ffff5c3f320 <qt_meta_stringdata_QEvent>, data = 0x7ffff5c3ed60 <qt_meta_data_QEvent>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0 } }, d = 0x0, t = 17, posted = 0, spont = 0, m_accept = 1, reserved = 2878 }, <No data fields>} #6 0x00007ffff67a45fb in QWidgetPrivate::show_recursive() (this=<optimized out>) at /usr/src/debug/dev-qt/qtwidgets-5.15.7/qtbase-everywhere-src-5.15.7/src/widgets/kernel/qwidget.cpp:7716 #7 0x00007ffff67a4789 in QWidgetPrivate::showChildren(bool) (this=this@entry=0x555559f3ecc0, spontaneous=spontaneous@entry=false) at /usr/src/debug/dev-qt/qtwidgets-5.15.7/qtbase-everywhere-src-5.15.7/src/widgets/kernel/qwidget.h:132 widget = <optimized out> i = 2 childList = { <QListSpecialMethods<QObject*>> = {<No data fields>}, members of QList<QObject*>: { p = { static shared_null = { ref = { atomic = { _q_value = std::atomic<int> = { -1 } } }, alloc = 0, begin = 0, end = 0, array = {[0] = 0x0} }, d = 0x555559f48200 }, d = 0x555559f48200 } } #8 0x00007ffff67a47ff in QWidgetPrivate::show_helper() (this=0x555559f3ecc0) at /usr/src/debug/dev-qt/qtwidgets-5.15.7/qtbase-everywhere-src-5.15.7/src/widgets/kernel/qwidget.cpp:7792 q = 0x555559f3bff0 isWindow = <optimized out> isEmbedded = <optimized out> showEvent = { <QEvent> = { _vptr.QEvent = 0x555559f3b080, static staticMetaObject = { d = { superdata = { direct = 0x0 }, stringdata = 0x7ffff5c3f320 <qt_meta_stringdata_QEvent>, data = 0x7ffff5c3ed60 <qt_meta_data_QEvent>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0 } }, d = 0x7ffff679a7a7 <QWidget::setAttribute(Qt::WidgetAttribute, bool)+295>, t = 0, posted = 0, spont = 0, m_accept = 0, reserved = 0 }, <No data fields>} #9 0x00007ffff67a45fb in QWidgetPrivate::show_recursive() (this=<optimized out>) at /usr/src/debug/dev-qt/qtwidgets-5.15.7/qtbase-everywhere-src-5.15.7/src/widgets/kernel/qwidget.cpp:7716 #10 0x00007ffff67a4789 in QWidgetPrivate::showChildren(bool) (this=this@entry=0x555559f398b0, spontaneous=spontaneous@entry=false) at /usr/src/debug/dev-qt/qtwidgets-5.15.7/qtbase-everywhere-src-5.15.7/src/widgets/kernel/qwidget.h:132 widget = <optimized out> i = 4 childList = { <QListSpecialMethods<QObject*>> = {<No data fields>}, members of QList<QObject*>: { p = { static shared_null = { ref = { atomic = { _q_value = std::atomic<int> = { -1 } } }, alloc = 0, begin = 0, end = 0, array = {[0] = 0x0} }, d = 0x555559f4eb00 }, d = 0x555559f4eb00 } } #11 0x00007ffff67a47ff in QWidgetPrivate::show_helper() (this=this@entry=0x555559f398b0) at /usr/src/debug/dev-qt/qtwidgets-5.15.7/qtbase-everywhere-src-5.15.7/src/widgets/kernel/qwidget.cpp:7792 q = 0x555559f3b080 isWindow = <optimized out> isEmbedded = <optimized out> showEvent = { <QEvent> = { _vptr.QEvent = 0x555557c0f870, static staticMetaObject = { d = { superdata = { direct = 0x0 }, stringdata = 0x7ffff5c3f320 <qt_meta_stringdata_QEvent>, data = 0x7ffff5c3ed60 <qt_meta_data_QEvent>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0 } }, d = 0x0, t = 49264, posted = 1, spont = 0, m_accept = 1, reserved = 2809 }, <No data fields>} #12 0x00007ffff67a77d3 in QWidgetPrivate::setVisible(bool) (this=0x555559f398b0, visible=<optimized out>) at /usr/src/debug/dev-qt/qtwidgets-5.15.7/qtbase-everywhere-src-5.15.7/src/widgets/kernel/qwidget.cpp:8135 pw = <optimized out> wasResized = true initialWindowState = { i = 0 } needUpdateGeometry = <optimized out> showToParentEvent = { _vptr.QEvent = 0x1, static staticMetaObject = { d = { superdata = { direct = 0x0 }, stringdata = 0x7ffff5c3f320 <qt_meta_stringdata_QEvent>, data = 0x7ffff5c3ed60 <qt_meta_data_QEvent>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0 } }, d = 0x0, t = 2904, posted = 1, spont = 0, m_accept = 1, reserved = 2809 } q = 0x555559f3b080 #13 0x00007ffff67a7ab2 in QWidget::setVisible(bool) (this=this@entry=0x555559f3b080, visible=visible@entry=true) at /usr/src/debug/dev-qt/qtwidgets-5.15.7/qtbase-everywhere-src-5.15.7/src/widgets/kernel/qwidget.cpp:8067 d = <optimized out> #14 0x00007fffbb14878b in sipDockWidget::setVisible(bool) (this=0x555559f3b080, a0=<optimized out>) at /usr/src/debug/media-gfx/krita-5.1.4-r1/krita-5.1.4_build/plugins/extensions/pykrita/sip/_tmp/krita/sipkritapart0.cpp:25244 sipGILState = (PyGILState_UNLOCKED | unknown: 0x5554) sipMeth = <optimized out> #15 0x00007ffff688d9b8 in QDockWidgetPrivate::setWindowState(bool, bool, QRect const&) (this=0x555559f398b0, floating=floating@entry=false, unplug=unplug@entry=false, rect=...) at /usr/src/debug/dev-qt/qtwidgets-5.15.7/qtbase-everywhere-src-5.15.7/src/widgets/widgets/qdockwidget.cpp:1179 q = 0x555559f3b080 wasFloating = <optimized out> hidden = false flags = { i = <optimized out> } dwLayout = <optimized out> nativeDeco = false #16 0x00007ffff688da3c in QDockWidgetPrivate::plug(QRect const&) (this=<optimized out>, rect=...) at /usr/src/debug/dev-qt/qtwidgets-5.15.7/qtbase-everywhere-src-5.15.7/src/widgets/widgets/qdockwidget.cpp:1132 #17 0x00007ffff68d11b6 in QMainWindowLayout::animationFinished(QWidget*) (this=0x555557cd0590, widget=<optimized out>) at /usr/src/debug/dev-qt/qtwidgets-5.15.7/qtbase-everywhere-src-5.15.7/src/widgets/widgets/qmainwindowlayout.cpp:2244 dw = 0x555559f3b080 #18 0x00007ffff685bc59 in QWidgetAnimator::animate(QWidget*, QRect const&, bool) (this=this@entry=0x555557cd0b30, widget=<optimized out>, widget@entry=0x555559f3b080, _final_geometry=..., animate=false) at /usr/src/debug/dev-qt/qtwidgets-5.15.7/qtbase-everywhere-src-5.15.7/src/widgets/widgets/qwidgetanimator.cpp:120 animationDuration = 0 final_geometry = { x1 = 1627, y1 = 641, x2 = 1920, y2 = 978 } #19 0x00007ffff68cdcbc in QMainWindowLayout::plug(QLayoutItem*) (this=this@entry=0x555557cd0590, widgetItem=<optimized out>) at /usr/src/debug/dev-qt/qtwidgets-5.15.7/qtbase-everywhere-src-5.15.7/src/widgets/widgets/qmainwindowlayout.cpp:2167 widget = 0x555559f3b080 groups = { <QListSpecialMethods<QDockWidgetGroupWindow*>> = {<No data fields>}, members of QList<QDockWidgetGroupWindow*>: { p = { static shared_null = { ref = { atomic = { _q_value = std::atomic<int> = { -1 } } }, alloc = 0, begin = 0, end = 0, array = {[0] = 0x0} }, d = 0x7ffff5b605f0 <QListData::shared_null> }, d = 0x7ffff5b605f0 <QListData::shared_null> } } previousPath = { <QListSpecialMethods<int>> = {<No data fields>}, members of QList<int>: { p = { static shared_null = { ref = { atomic = { _q_value = std::atomic<int> = { -1 } } }, alloc = 0, begin = 0, end = 0, array = {[0] = 0x0} }, d = 0x7fffcc007750 }, d = 0x7fffcc007750 } } it = <optimized out> globalRect = { x1 = 1627, y1 = 641, x2 = 1920, y2 = 978 } #20 0x00007ffff688c8ea in QDockWidgetPrivate::endDrag(bool) (this=this@entry=0x555559f398b0, abort=abort@entry=false) at /usr/src/debug/dev-qt/qtwidgets-5.15.7/qtbase-everywhere-src-5.15.7/src/widgets/widgets/qdockwidget.cpp:848 mainWindow = 0x555557c0f870 mwLayout = 0x555557cd0590 q = 0x555559f3b080 #21 0x00007ffff68903f1 in QDockWidgetPrivate::mouseReleaseEvent(QMouseEvent*) (event=0x7fffffffc700, this=<optimized out>) at /usr/src/debug/dev-qt/qtwidgets-5.15.7/qtbase-everywhere-src-5.15.7/src/widgets/widgets/qdockwidget.cpp:1022 d = <optimized out> win = 0x555557c0f870 layout = <optimized out> #22 QDockWidgetPrivate::mouseReleaseEvent(QMouseEvent*) (event=0x7fffffffc700, this=<optimized out>) at /usr/src/debug/dev-qt/qtwidgets-5.15.7/qtbase-everywhere-src-5.15.7/src/widgets/widgets/qdockwidget.cpp:1017 d = <optimized out> win = 0x555557c0f870 layout = <optimized out> #23 QDockWidget::event(QEvent*) (this=this@entry=0x555559f3b080, event=event@entry=0x7fffffffc700) at /usr/src/debug/dev-qt/qtwidgets-5.15.7/qtbase-everywhere-src-5.15.7/src/widgets/widgets/qdockwidget.cpp:1597 d = <optimized out> win = 0x555557c0f870 layout = <optimized out> #24 0x00007fffbb153ecb in sipDockWidget::event(QEvent*) (this=0x555559f3b080, a0=0x7fffffffc700) at /usr/src/debug/media-gfx/krita-5.1.4-r1/krita-5.1.4_build/plugins/extensions/pykrita/sip/_tmp/krita/sipkritapart0.cpp:25306 sipGILState = (PyGILState_UNLOCKED | unknown: 0x5554) sipMeth = <optimized out> #25 0x00007ffff67633fe in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x555555e81150, receiver=receiver@entry=0x555559f3b080, e=e@entry=0x7fffffffc700) at /usr/src/debug/dev-qt/qtwidgets-5.15.7/qtbase-everywhere-src-5.15.7/src/widgets/kernel/qapplication.cpp:3637 consumed = false filtered = false #26 0x00007ffff676bea0 in QApplication::notify(QObject*, QEvent*) (this=this@entry=0x7fffffffcff0, receiver=receiver@entry=0x555559f3b080, e=e@entry=0x7fffffffc700) at /usr/src/debug/dev-qt/qtwidgets-5.15.7/qtbase-everywhere-src-5.15.7/src/widgets/kernel/qapplication.cpp:3081 me = { <QInputEvent> = { <QEvent> = { _vptr.QEvent = 0x7ffff64535a0 <vtable for QMouseEvent+16>, static staticMetaObject = { d = { superdata = { direct = 0x0 }, stringdata = 0x7ffff5c3f320 <qt_meta_stringdata_QEvent>, data = 0x7ffff5c3ed60 <qt_meta_data_QEvent>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0 } }, d = 0x0, t = 3, posted = 0, spont = 1, m_accept = 1, reserved = 0 }, members of QInputEvent: modState = { i = 0 }, ts = 73748715 }, members of QMouseEvent: l = { xp = 41, yp = 7 }, w = { xp = 41, yp = 7 }, s = { xp = 1734, yp = 886 }, b = Qt::LeftButton, mouseState = { i = 0 }, caps = 0, velocity = { v = {[0] = 0, [1] = 0} } } w = 0x555559f3b080 mouse = 0x7fffffffc700 eventAccepted = <optimized out> relpos = { xp = 41, yp = 7 } d = 0x555555e81150 res = false #27 0x00007ffff7aeb79e in KisApplication::notify(QObject*, QEvent*) (this=0x7fffffffcff0, receiver=0x555559f3b080, event=0x7fffffffc700) at /usr/src/debug/media-gfx/krita-5.1.4-r1/krita-5.1.4/libs/ui/KisApplication.cpp:762 guard = { m_info = 0x5555565759a0 } result = true info = @0x5555565759a0: { eventRecursionCount = 2, postponedSynchronizationEvents = std::queue wrapping: std::deque with 0 elements } #28 0x00007ffff5a8b548 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x555559f3b080, event=0x7fffffffc700) at /usr/src/debug/dev-qt/qtcore-5.15.7/qtbase-everywhere-src-5.15.7/src/corelib/kernel/qcoreapplication.cpp:1064 selfRequired = true result = false cbdata = {[0] = 0x555559f3b080, [1] = 0x7fffffffc700, [2] = 0x7fffffffc4ef} d = <optimized out> threadData = 0x555555e6cc80 scopeLevelCounter = { threadData = 0x555555e6cc80 } #29 0x00007ffff6769ef4 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) (receiver=receiver@entry=0x555559f3b080, event=event@entry=0x7fffffffc700, alienWidget=<optimized out>, nativeWidget=0x555559f3b080, buttonDown=buttonDown@entry=0x7ffff6cc43d0 <qt_button_down>, lastMouseReceiver=..., spontaneous=true, onlyDispatchEnterLeave=false) at /usr/src/debug/dev-qt/qtwidgets-5.15.7/qtbase-everywhere-src-5.15.7/src/widgets/kernel/qapplication.cpp:2619 graphicsWidget = false widgetUnderMouse = <optimized out> wasLeaveAfterRelease = <optimized out> result = true #30 0x00007ffff67c1565 in QWidgetWindow::handleMouseEvent(QMouseEvent*) (this=0x555559f3d730, event=0x7fffffffca50) at /usr/src/debug/dev-qt/qtwidgets-5.15.7/qtbase-everywhere-src-5.15.7/src/widgets/kernel/qwidgetwindow.cpp:683 translated = { <QInputEvent> = { <QEvent> = { _vptr.QEvent = 0x7ffff64535a0 <vtable for QMouseEvent+16>, static staticMetaObject = { d = { superdata = { direct = 0x0 }, stringdata = 0x7ffff5c3f320 <qt_meta_stringdata_QEvent>, data = 0x7ffff5c3ed60 <qt_meta_data_QEvent>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0 } }, d = 0x0, t = 3, posted = 0, spont = 1, m_accept = 1, reserved = 8191 }, members of QInputEvent: modState = { i = 0 }, ts = 73748715 }, members of QMouseEvent: l = { xp = 41, yp = 7 }, w = { xp = 41, yp = 7 }, s = { xp = 1734, yp = 886 }, b = Qt::LeftButton, mouseState = { i = 0 }, caps = 0, velocity = { v = {[0] = 0, [1] = 0} } } contextMenuTrigger = QEvent::MouseButtonPress widget = <optimized out> mapped = { xp = 41, yp = 7 } initialPress = <optimized out> receiver = 0x555559f3b080 #31 0x00007ffff67c49d8 in QWidgetWindow::event(QEvent*) (this=0x555559f3d730, event=0x7fffffffca50) at /usr/src/debug/dev-qt/qtwidgets-5.15.7/qtbase-everywhere-src-5.15.7/src/widgets/kernel/qwidgetwindow.cpp:300 #32 0x00007ffff67633fe in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x4044800000000000, receiver=receiver@entry=0x555559f3d730, e=0x7fffffffca50) at /usr/src/debug/dev-qt/qtwidgets-5.15.7/qtbase-everywhere-src-5.15.7/src/widgets/kernel/qapplication.cpp:3637 consumed = false filtered = false #33 0x00007ffff676acaf in QApplication::notify(QObject*, QEvent*) (this=this@entry=0x7fffffffcff0, receiver=receiver@entry=0x555559f3d730, e=e@entry=0x7fffffffca50) at /usr/src/debug/dev-qt/qtwidgets-5.15.7/qtbase-everywhere-src-5.15.7/src/widgets/kernel/qapplication.cpp:3383 w = <optimized out> extra = <optimized out> isProxyWidget = <optimized out> d = 0x4044800000000000 res = false #34 0x00007ffff7aeb79e in KisApplication::notify(QObject*, QEvent*) (this=0x7fffffffcff0, receiver=0x555559f3d730, event=0x7fffffffca50) at /usr/src/debug/media-gfx/krita-5.1.4-r1/krita-5.1.4/libs/ui/KisApplication.cpp:762 guard = { m_info = 0x5555565759a0 } result = true info = @0x5555565759a0: { eventRecursionCount = 2, postponedSynchronizationEvents = std::queue wrapping: std::deque with 0 elements } #35 0x00007ffff5a8b548 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x555559f3d730, event=0x7fffffffca50) at /usr/src/debug/dev-qt/qtcore-5.15.7/qtbase-everywhere-src-5.15.7/src/corelib/kernel/qcoreapplication.cpp:1064 selfRequired = true result = false cbdata = {[0] = 0x555559f3d730, [1] = 0x7fffffffca50, [2] = 0x7fffffffc8ef} d = <optimized out> threadData = 0x555555e6cc80 scopeLevelCounter = { threadData = 0x555555e6cc80 } #36 0x00007ffff5f27426 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) (e=0x555559eea650) at /usr/src/debug/dev-qt/qtgui-5.15.7-r1/qtbase-everywhere-src-5.15.7/src/gui/kernel/qguiapplication.cpp:2285 type = QEvent::MouseButtonRelease button = <optimized out> window = <optimized out> positionChanged = <optimized out> mouseMove = <optimized out> mousePress = <optimized out> localPoint = { xp = 41, yp = 7 } globalPoint = { xp = 1734, yp = 886 } doubleClick = false ev = { <QInputEvent> = { <QEvent> = { _vptr.QEvent = 0x7ffff64535a0 <vtable for QMouseEvent+16>, static staticMetaObject = { d = { superdata = { direct = 0x0 }, stringdata = 0x7ffff5c3f320 <qt_meta_stringdata_QEvent>, data = 0x7ffff5c3ed60 <qt_meta_data_QEvent>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0 } }, d = 0x0, t = 3, posted = 0, spont = 1, m_accept = 1, reserved = 2755 }, members of QInputEvent: modState = { i = 0 }, ts = 73748715 }, members of QMouseEvent: l = { xp = 41, yp = 7 }, w = { xp = 41, yp = 7 }, s = { xp = 1734, yp = 886 }, b = Qt::LeftButton, mouseState = { i = 0 }, caps = 0, velocity = { v = {[0] = 0, [1] = 0} } } #37 0x00007ffff5f0640b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) (flags=flags@entry=...) at /usr/src/debug/dev-qt/qtgui-5.15.7-r1/qtbase-everywhere-src-5.15.7/src/gui/kernel/qwindowsysteminterface.cpp:1169 event = 0x555559eea650 nevents = 1 #38 0x00007ffff0515e4a in xcbSourceDispatch(GSource*, GSourceFunc, gpointer) (source=<optimized out>) at /usr/src/debug/dev-qt/qtgui-5.15.7-r1/qtbase-everywhere-src-5.15.7/src/plugins/platforms/xcb/qxcbeventdispatcher.cpp:105 xcbEventSource = <optimized out> flags = { i = 36 } #39 0x00007ffff3e0c838 in g_main_dispatch (context=0x7fffe8005010) at ../glib-2.74.4/glib/gmain.c:3454 dispatch = 0x7ffff0515e30 <xcbSourceDispatch(GSource*, GSourceFunc, gpointer)> prev_source = 0x0 begin_time_nsec = 0 was_in_call = 0 user_data = 0x0 callback = 0x0 cb_funcs = <optimized out> cb_data = <optimized out> need_destroy = <optimized out> source = 0x55555620e840 current = 0x555556944780 i = 1 __func__ = "g_main_dispatch" #40 g_main_context_dispatch (context=context@entry=0x7fffe8005010) at ../glib-2.74.4/glib/gmain.c:4172 #41 0x00007ffff3e0cad8 in g_main_context_iterate (context=context@entry=0x7fffe8005010, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib-2.74.4/glib/gmain.c:4248 max_priority = 2147483647 timeout = 525 some_ready = 1 nfds = <optimized out> allocated_nfds = 4 fds = 0x55555cf613e0 #42 0x00007ffff3e0cb6c in g_main_context_iteration (context=0x7fffe8005010, may_block=1) at ../glib-2.74.4/glib/gmain.c:4313 retval = <optimized out> #43 0x00007ffff5ae06f6 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x5555561b43c0, flags=...) at /usr/src/debug/dev-qt/qtcore-5.15.7/qtbase-everywhere-src-5.15.7/src/corelib/kernel/qeventdispatcher_glib.cpp:423 d = 0x555555ef5460 canWait = true savedFlags = { i = 0 } result = <optimized out> #44 0x00007ffff5a89f5b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffffffcda0, flags=..., flags@entry=...) at /usr/src/debug/dev-qt/qtcore-5.15.7/qtbase-everywhere-src-5.15.7/include/QtCore/../../src/corelib/global/qflags.h:69 d = 0x5555569884c0 threadData = <optimized out> locker = { val = 93825001770360 } app = <optimized out> #45 0x00007ffff5a92246 in QCoreApplication::exec() () at /usr/src/debug/dev-qt/qtcore-5.15.7/qtbase-everywhere-src-5.15.7/include/QtCore/../../src/corelib/global/qflags.h:121 threadData = 0x555555e6cc80 eventLoop = { <QObject> = { _vptr.QObject = 0x7ffff5d62f08 <vtable for QEventLoop+16>, static staticMetaObject = { d = { superdata = { direct = 0x0 }, stringdata = 0x7ffff5c43a20 <qt_meta_stringdata_QObject>, data = 0x7ffff5c43900 <qt_meta_data_QObject>, static_metacall = 0x7ffff5abe4c0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0 } }, d_ptr = { d = 0x5555569884c0 }, static staticQtMetaObject = { d = { superdata = { direct = 0x0 }, stringdata = 0x7ffff5c469c0 <qt_meta_stringdata_Qt>, data = 0x7ffff5c43b40 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0 } } }, members of QEventLoop: static staticMetaObject = { d = { superdata = { direct = 0x7ffff5d5a780 <QObject::staticMetaObject> }, stringdata = 0x7ffff5c3e1c0 <qt_meta_stringdata_QEventLoop>, data = 0x7ffff5c3e160 <qt_meta_data_QEventLoop>, static_metacall = 0x7ffff5a89c70 <QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0 } } } returnCode = <optimized out> #46 0x00007ffff5f1bcbc in QGuiApplication::exec() () at /usr/src/debug/dev-qt/qtgui-5.15.7-r1/qtbase-everywhere-src-5.15.7/src/gui/kernel/qguiapplication.cpp:1870 #47 0x00007ffff6763375 in QApplication::exec() () at /usr/src/debug/dev-qt/qtwidgets-5.15.7/qtbase-everywhere-src-5.15.7/src/widgets/kernel/qapplication.cpp:2829 #48 0x000055555555d412 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/media-gfx/krita-5.1.4-r1/krita-5.1.4/krita/main.cc:721 runningInKDE = false key = { d = 0x555555e6c630 } configPath = { d = 0x555555e6c6e0 } kritarc = { <QObject> = { _vptr.QObject = 0x7ffff5d614f0 <vtable for QSettings+16>, static staticMetaObject = { d = { superdata = { direct = 0x0 }, stringdata = 0x7ffff5c43a20 <qt_meta_stringdata_QObject>, data = 0x7ffff5c43900 <qt_meta_data_QObject>, static_metacall = 0x7ffff5abe4c0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0 } }, d_ptr = { d = 0x555555e6c730 }, static staticQtMetaObject = { d = { superdata = { direct = 0x0 }, stringdata = 0x7ffff5c469c0 <qt_meta_stringdata_Qt>, data = 0x7ffff5c43b40 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0 } } }, members of QSettings: static staticMetaObject = { d = { superdata = { direct = 0x7ffff5d5a780 <QObject::staticMetaObject> }, stringdata = 0x7ffff5c35a60 <qt_meta_stringdata_QSettings>, data = 0x7ffff5c35920 <qt_meta_data_QSettings>, static_metacall = 0x7ffff5a18fe0 <QSettings::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0 } } } enableOpenGLDebug = <optimized out> openGLDebugSynchronous = <optimized out> logUsage = <optimized out> root = { d = 0x555556196630 } language = { d = 0x5555560d2aa0 } rightToLeft = false app = { <QtSingleApplication> = { <QApplication> = { <QGuiApplication> = { <QCoreApplication> = { <QObject> = { _vptr.QObject = 0x7ffff7d7a880 <vtable for KisApplication+16>, static staticMetaObject = { d = { superdata = { direct = 0x0 }, stringdata = 0x7ffff5c43a20 <qt_meta_stringdata_QObject>, data = 0x7ffff5c43900 <qt_meta_data_QObject>, static_metacall = 0x7ffff5abe4c0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0 } }, d_ptr = { d = 0x555555e81150 }, static staticQtMetaObject = { d = { superdata = { direct = 0x0 }, stringdata = 0x7ffff5c469c0 <qt_meta_stringdata_Qt>, data = 0x7ffff5c43b40 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0 } } }, members of QCoreApplication: static staticMetaObject = { d = { superdata = { direct = 0x7ffff5d5a780 <QObject::staticMetaObject> }, stringdata = 0x7ffff5c3e8a0 <qt_meta_stringdata_QCoreApplication>, data = 0x7ffff5c3e780 <qt_meta_data_QCoreApplication>, static_metacall = 0x7ffff5a8ceb0 <QCoreApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0 } }, static self = 0x7fffffffcff0 }, members of QGuiApplication: static staticMetaObject = { d = { superdata = { direct = 0x7ffff5d630a0 <QCoreApplication::staticMetaObject> }, stringdata = 0x7ffff6355440 <qt_meta_stringdata_QGuiApplication>, data = 0x7ffff63551c0 <qt_meta_data_QGuiApplication>, static_metacall = 0x7ffff5f1ccf0 <QGuiApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0 } } }, members of QApplication: static staticMetaObject = { d = { superdata = { direct = 0x7ffff6452ea0 <QGuiApplication::staticMetaObject> }, stringdata = 0x7ffff6b328c0 <qt_meta_stringdata_QApplication>, data = 0x7ffff6b32740 <qt_meta_data_QApplication>, static_metacall = 0x7ffff6767180 <QApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0 } } }, members of QtSingleApplication: static staticMetaObject = { d = { superdata = { direct = 0x7ffff6c958a0 <QApplication::staticMetaObject> }, stringdata = 0x7ffff7bd1a40 <qt_meta_stringdata_QtSingleApplication>, data = 0x7ffff7bd1920 <qt_meta_data_QtSingleApplication>, static_metacall = 0x7ffff76ba450 <QtSingleApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0 } }, firstPeer = -1, instances = 0x55555697b3d0, pidPeer = 0x555555f44c60, actWin = 0x0, appId = { d = 0x555555e6c630 }, block = false }, members of KisApplication: static staticMetaObject = { d = { superdata = { direct = 0x7ffff7d9bc80 <QtSingleApplication::staticMetaObject> }, stringdata = 0x7ffff7befce0 <qt_meta_stringdata_KisApplication>, data = 0x7ffff7befc00 <qt_meta_data_KisApplication>, static_metacall = 0x7ffff76c2410 <KisApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0 } }, d = { d = 0x55555659dd70 } } args = { d = { d = 0x55555694f650 } } state = <optimized out> >>> f 1 #1 0x00007ffff5a94319 in QMetaObject::cast (this=0x7ffff6c97b40 <QWidgetWindow::staticMetaObject>, obj=0x555559f45e50) at /usr/src/debug/dev-qt/qtcore-5.15.7/qtbase-everywhere-src-5.15.7/src/corelib/kernel/qmetaobject.cpp:389 389 return (obj && obj->metaObject()->inherits(this)) ? obj : nullptr; STEPS TO REPRODUCE 1. Settings->Docker and enable Last Documents Docker or Comics Manager 2. Try to dock said docker somewhere else OBSERVED RESULT SIGSEGV, krita crashes EXPECTED RESULT No crash SOFTWARE/OS VERSIONS Linux/KDE Plasma: Gentoo linux KDE Plasma Version: not installed KDE Frameworks Version: 5.101.0 Qt Version: 5.15.7 ADDITIONAL INFORMATION
Can you reproduce this with the appimage?
Created attachment 154833 [details] valgrind output Output from valgrind (Conditional jump or move depends on uninitialised value errors were ignored, because there are a lots of them). Probably only the first error is relevant, as the others seem like the consequences of the first use after free error.
(In reply to Halla Rempt from comment #1) > Can you reproduce this with the appimage? No, it seems to work with the appimage. The appimage doesn't seem to use system theme and it's full of animations, which looks like I managed to disable in my local config somehow, and there are animation related lines in the backtrace. Will check this out.
Seems like it only does this if I set the style to QtCurve in qt5ct. With Fusion or Windows it works (I don't have other styles installed). Also it is the only style that lacks animations when I try to dock a docker.
Thanks for your comment! Automatically switching the status of this bug to REPORTED so that the KDE team knows that the bug is ready to get confirmed. In the future you may also do this yourself when providing needed information.
Then it's probably a bug in the QtCurve style, not Krita.
I've checked a few other QT Styles, but I could only reproduce this crash with QtCurve. I've updated QtCurve to the latest git master (78fe0fc1a888edc5d4cbfecc285f3287c13fe7d3) but no change. It looks like QTCurve's bgndOpacity is the culprit here, adding krita to noBgndOpacityApps is a possible workaround that fixes the issue. Searching for bgndOpacity here yielded only one result, #429201, which suggests this is an application error, not QtCurve... but I'm not a Qt wizard enough to say that.
I checked that comment, but it doesn't contain enough information to do anything, and I don't have a build of Krita that can use platform Qt plugins. I've asked for more information.
5.15 TEST
Sorry, I don't think we can do much more about this.