| Summary: | sip.dump() kills Krita | ||
|---|---|---|---|
| Product: | [Applications] krita | Reporter: | Michael <miabraha> |
| Component: | Scripting | Assignee: | Krita Bugs <krita-bugs-null> |
| Status: | RESOLVED UPSTREAM | ||
| Severity: | crash | CC: | antti.savo, halla |
| Priority: | NOR | ||
| Version First Reported In: | 4.0.1 | ||
| Target Milestone: | --- | ||
| Platform: | unspecified | ||
| OS: | All | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
| Attachments: | Krita pyqt crashes | ||
|
Description
Michael
2018-05-07 19:46:03 UTC
How exactly do you replicate this crash? I can test if it is a crossplatform bug if I know how to do it precisely. Created attachment 112492 [details]
Krita pyqt crashes
First one is calling Application().pyqtConfigure(), second is calling sip.dump(Application)
I get a crash from these steps. 1. Open the Python scripter. 2. Paste this script in: from krita import * import sip sip.dump(Krita.instance()) 3. Run the script. I discovered another two liner: from krita import * Application.pyqtConfigure() Crash log attached. Thank you, confirming this. Partly. I can replicate a crash using
from krita import *
Application.pyqtConfigure()
but not with
from krita import *
import sip
sip.dump(Krita.instance())
The key to replicating the crash reliably is saving the script to a file or opening one before running it. Using sip might be a Windows specific problem.
Recording of the crash https://webmshare.com/WBR6q
Build Date & Platform:
krita 4.1.0-pre-alpha (Built on 8.5.2018)
Xubuntu 17.10
Krita Lime https://launchpad.net/~kritalime/+archive/ubuntu/ppa
(gdb) bt
#0 0x00007fffad80b7e0 in _PyDict_Next () at /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#1 0x00007fffac9ff3de in () at /usr/lib/python3/dist-packages/PyQt5/QtCore.cpython-36m-x86_64-linux-gnu.so
#2 0x00007fffad81b5da in _PyCFunction_FastCallDict () at /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#3 0x00007fffad8a9e9f in () at /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#4 0x00007fffad8aef41 in _PyEval_EvalFrameDefault () at /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#5 0x00007fffad8a9a9a in () at /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#6 0x00007fffad8aa0fe in PyEval_EvalCodeEx () at /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#7 0x00007fffad8aa12b in PyEval_EvalCode () at /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#8 0x00007fffad8a6fed in () at /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#9 0x00007fffad81b6f5 in PyCFunction_Call () at /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#10 0x00007fffad8b0950 in _PyEval_EvalFrameDefault () at /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#11 0x00007fffad8a9a9a in () at /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#12 0x00007fffad8a9d32 in () at /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#13 0x00007fffad8aef41 in _PyEval_EvalFrameDefault () at /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#14 0x00007fffad8aa099 in () at /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#15 0x00007fffad8aef41 in _PyEval_EvalFrameDefault () at /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#16 0x00007fffad8b27b7 in _PyFunction_FastCallDict () at /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#17 0x00007fffad7b12ce in _PyObject_FastCallDict () at /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#18 0x00007fffad7b13cc in _PyObject_Call_Prepend () at /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#19 0x00007fffad7b1098 in PyObject_Call () at /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#20 0x00007fffac9fadac in () at /usr/lib/python3/dist-packages/PyQt5/QtCore.cpython-36m-x86_64-linux-gnu.so
#21 0x00007fffac9fb110 in () at /usr/lib/python3/dist-packages/PyQt5/QtCore.cpython-36m-x86_64-linux-gnu.so
#22 0x00007fffac9f5030 in () at /usr/lib/python3/dist-packages/PyQt5/QtCore.cpython-36m-x86_64-linux-gnu.so
#23 0x00007fffac9f5997 in () at /usr/lib/python3/dist-packages/PyQt5/QtCore.cpython-36m-x86_64-linux-gnu.so
#24 0x00007ffff50f29a9 in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#25 0x00007ffff5e37d82 in QAction::triggered(bool) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#26 0x00007ffff5e3a46c in QAction::activate(QAction::ActionEvent) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#27 0x00007ffff5ffbafb in () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#28 0x00007ffff5ffbd54 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#29 0x00007ffff5fdb08a in QToolButton::mouseReleaseEvent(QMouseEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#30 0x00007ffff5e7edc8 in QWidget::event(QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#31 0x00007ffff5fdb124 in QToolButton::event(QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#32 0x00007ffff5e3e46c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#33 0x00007ffff5e4628f in QApplication::notify(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#34 0x00007ffff76aa4f5 in KisApplication::notify(QObject*, QEvent*) (this=0x7fffffffde40, receiver=0x5555607ebd10, event=0x7fffffffd500) at ./libs/ui/KisApplication.cpp:652
#35 0x00007ffff50c3de8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#36 0x00007ffff5e45262 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#37 0x00007ffff5e9994b in () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#38 0x00007ffff5e9bfba in () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#39 0x00007ffff5e3e46c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#40 0x00007ffff5e45d34 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#41 0x00007ffff76aa4f5 in KisApplication::notify(QObject*, QEvent*) (this=0x7fffffffde40, receiver=0x5555607c5170, event=0x7fffffffd990) at ./libs/ui/KisApplication.cpp:652
#42 0x00007ffff50c3de8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#43 0x00007ffff5682f43 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#44 0x00007ffff5684a25 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#45 0x00007ffff565ccab in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#46 0x00007fffe264d5a0 in () at /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#47 0x00007fffec78ffb7 in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#48 0x00007fffec7901f0 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#49 0x00007fffec79027c in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#50 0x00007ffff511c47f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#51 0x00007ffff50c1e3a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#52 0x00007ffff50cada4 in QCoreApplication::exec() () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#53 0x0000555555849493 in main(int, char**) (argc=1, argv=0x7fffffffdfc8) at ./krita/main.cc:361
Curious, this doesn't crash on my own build. It gives this output:
<PyKrita.krita.Krita object at 0x7f04ec030948>
Reference count: 5
Address of wrapped object: 0x10799450
Created by: C/C++
To be destroyed by: C/C++
Parent wrapper: NULL
Next sibling wrapper: NULL
Previous sibling wrapper: NULL
First child wrapper: NULL
With Kubuntu 18.04 I get: #6 0x00007f0529ecba90 in _PyDict_Next () from /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 #7 0x00007f05291073de in ?? () from /usr/lib/python3/dist-packages/PyQt5/QtCore.cpython-36m-x86_64-linux-gnu.so #8 0x00007f0529edb88a in _PyCFunction_FastCallDict () from /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 #9 0x00007f0529f69dff in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 #10 0x00007f0529f6eeb1 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 #11 0x00007f0529f699fa in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 #12 0x00007f0529f6a05e in PyEval_EvalCodeEx () from /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 #13 0x00007f0529f6a08b in PyEval_EvalCode () from /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 #14 0x00007f0529f66f4d in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 #15 0x00007f0529edb9a5 in PyCFunction_Call () from /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 #16 0x00007f0529f708c0 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 #17 0x00007f0529f699fa in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 #18 0x00007f0529f69c92 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 #19 0x00007f0529f6eeb1 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 #20 0x00007f0529f69ff9 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 #21 0x00007f0529f6eeb1 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 #22 0x00007f0529f69ff9 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 #23 0x00007f0529f6eeb1 in _PyEval_EvalFrameDefault () from /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 #24 0x00007f0529f72747 in _PyFunction_FastCallDict () from /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 #25 0x00007f0529e713ae in _PyObject_FastCallDict () from /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 #26 0x00007f0529e714ac in _PyObject_Call_Prepend () from /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 #27 0x00007f0529e71178 in PyObject_Call () from /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0 #28 0x00007f052910a090 in ?? () from /usr/lib/python3/dist-packages/PyQt5/QtCore.cpython-36m-x86_64-linux-gnu.so #29 0x00007f052910a568 in ?? () from /usr/lib/python3/dist-packages/PyQt5/QtCore.cpython-36m-x86_64-linux-gnu.so #30 0x00007f052910a7f0 in ?? () from /usr/lib/python3/dist-packages/PyQt5/QtCore.cpython-36m-x86_64-linux-gnu.so #31 0x00007f052910b167 in ?? () from /usr/lib/python3/dist-packages/PyQt5/QtCore.cpython-36m-x86_64-linux-gnu.so #32 0x00007f056b775259 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #33 0x00007f056c49be52 in QAction::triggered(bool) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #34 0x00007f056c49e59c in QAction::activate(QAction::ActionEvent) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #35 0x00007f056c5950fb in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #36 0x00007f056c59535d in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #37 0x00007f056c6764ba in QToolButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #38 0x00007f056c4e1378 in QWidget::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #39 0x00007f056c676554 in QToolButton::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #40 0x00007f056c4a26cc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #41 0x00007f056c4aa3df in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #42 0x00007f056dd99d87 in KisApplication::notify (this=<optimized out>, receiver=0x556df8634b80, event=0x7ffe1ada67e0) at /home/boud/dev/krita/libs/ui/KisApplication.cpp:608 #43 0x00007f056b745938 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #44 0x00007f056c4a93b2 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #45 0x00007f056c4fc4d3 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #46 0x00007f056c4feb09 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #47 0x00007f056c4a26cc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #48 0x00007f056c4a9e84 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #49 0x00007f056dd99d87 in KisApplication::notify (this=<optimized out>, receiver=0x556df8646bf0, event=0x7ffe1ada6c50) at /home/boud/dev/krita/libs/ui/KisApplication.cpp:608 #50 0x00007f056b745938 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #51 0x00007f056bcb1603 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5 #52 0x00007f056bcb30d5 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5 #53 0x00007f056bc8b03b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5 #54 0x00007f055b52c2cb in ?? () from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5 #55 0x00007f056b743b6a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #56 0x00007f056b74ced4 in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #57 0x0000556dec221f18 in main (argc=<optimized out>, argv=0x7ffe1ada71a8) at /home/boud/dev/krita/krita/main.cc:435 However, I'm pretty sure we cannot fix issues with crashes in sip or pyqt; this is not Krita code that is crashing. |