Bug 389338

Summary: Crash when using Document::createFilterLayer
Product: [Applications] krita Reporter: Halla Rempt <halla>
Component: ScriptingAssignee: Krita Bugs <krita-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: nickelbacher
Priority: NOR    
Version First Reported In: git master (please specify the git hash!)   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description Halla Rempt 2018-01-23 07:33:19 UTC
from krita import *
d = Krita.instance().activeDocument()
d.createFilterLayer("test", "invert", InfoObject(), Selection())

Application: Krita (krita), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f87f8715900 (LWP 27683))]

Thread 5 (Thread 0x7f87ace83700 (LWP 27690)):
#0  0x00007f87f4eec74d in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007f87ececf38c in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f87ececf49c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f87f5a296cb in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007f87f59d1e2a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007f87f57fa8f4 in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007f87d5d2fd25 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5
#7  0x00007f87f57ff709 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007f87ee4c86ba in start_thread (arg=0x7f87ace83700) at pthread_create.c:333
#9  0x00007f87f4ef841d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 4 (Thread 0x7f87b88a1700 (LWP 27689)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f87f580065b in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#2  0x00007f87f694684a in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#3  0x00007f87f57ff709 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007f87ee4c86ba in start_thread (arg=0x7f87b88a1700) at pthread_create.c:333
#5  0x00007f87f4ef841d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 3 (Thread 0x7f87b80a0700 (LWP 27687)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f87f580065b in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#2  0x00007f87f57f95ff in QSemaphore::tryAcquire(int, int) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#3  0x00007f87f28e3116 in KisTileDataSwapper::waitForWork() () from /home/boud/dev/i/lib/x86_64-linux-gnu/libkritaimage.so.16
#4  0x00007f87f28e3132 in KisTileDataSwapper::run() () from /home/boud/dev/i/lib/x86_64-linux-gnu/libkritaimage.so.16
#5  0x00007f87f57ff709 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007f87ee4c86ba in start_thread (arg=0x7f87b80a0700) at pthread_create.c:333
#7  0x00007f87f4ef841d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 2 (Thread 0x7f87d07fa700 (LWP 27685)):
#0  0x00007f87f4eec74d in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007f87ececf38c in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f87ececf49c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f87f5a296cb in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007f87f59d1e2a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007f87f57fa8f4 in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007f87ee6f4315 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5
#7  0x00007f87f57ff709 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007f87ee4c86ba in start_thread (arg=0x7f87d07fa700) at pthread_create.c:333
#9  0x00007f87f4ef841d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 1 (Thread 0x7f87f8715900 (LWP 27683)):
[KCrash Handler]
#6  0x00007f87f29cfa39 in KisBaseProcessor::defaultConfiguration() const () from /home/boud/dev/i/lib/x86_64-linux-gnu/libkritaimage.so.16
#7  0x00007f87b4fff751 in Document::createFillLayer(QString const&, QString, InfoObject&, Selection&) () from /home/boud/dev/i/lib/x86_64-linux-gnu/libkritalibkis.so.16
#8  0x00007f87b47aae2b in meth_Document_createFillLayer () from /home/boud/dev/i/lib/x86_64-linux-gnu/krita-python-libs/PyKrita/krita.so
#9  0x00007f87b5323039 in PyCFunction_Call () from /usr/lib/x86_64-linux-gnu/libpython3.5m.so.1.0
#10 0x00007f87b542f1b5 in PyEval_EvalFrameEx () from /usr/lib/x86_64-linux-gnu/libpython3.5m.so.1.0
#11 0x00007f87b54bfcac in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.5m.so.1.0
#12 0x00007f87b54bfd83 in PyEval_EvalCodeEx () from /usr/lib/x86_64-linux-gnu/libpython3.5m.so.1.0
#13 0x00007f87b54279cb in PyEval_EvalCode () from /usr/lib/x86_64-linux-gnu/libpython3.5m.so.1.0
#14 0x00007f87b5444e6f in PyRun_StringFlags () from /usr/lib/x86_64-linux-gnu/libpython3.5m.so.1.0
#15 0x00007f87b54345d8 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.5m.so.1.0
#16 0x00007f87b5323039 in PyCFunction_Call () from /usr/lib/x86_64-linux-gnu/libpython3.5m.so.1.0
#17 0x00007f87b542f1b5 in PyEval_EvalFrameEx () from /usr/lib/x86_64-linux-gnu/libpython3.5m.so.1.0
#18 0x00007f87b54bfcac in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.5m.so.1.0
#19 0x00007f87b54bfd83 in PyEval_EvalCodeEx () from /usr/lib/x86_64-linux-gnu/libpython3.5m.so.1.0
#20 0x00007f87b5347ad8 in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.5m.so.1.0
#21 0x00007f87b53fc54e in PyObject_Call () from /usr/lib/x86_64-linux-gnu/libpython3.5m.so.1.0
#22 0x00007f87b549aaec in ?? () from /usr/lib/x86_64-linux-gnu/libpython3.5m.so.1.0
#23 0x00007f87b53fc54e in PyObject_Call () from /usr/lib/x86_64-linux-gnu/libpython3.5m.so.1.0
#24 0x00007f87b54be937 in PyEval_CallObjectWithKeywords () from /usr/lib/x86_64-linux-gnu/libpython3.5m.so.1.0
#25 0x00007f87b445baa5 in ?? () from /usr/lib/python3/dist-packages/PyQt5/QtCore.cpython-35m-x86_64-linux-gnu.so
#26 0x00007f87b445bfd8 in ?? () from /usr/lib/python3/dist-packages/PyQt5/QtCore.cpython-35m-x86_64-linux-gnu.so
#27 0x00007f87b445c260 in ?? () from /usr/lib/python3/dist-packages/PyQt5/QtCore.cpython-35m-x86_64-linux-gnu.so
#28 0x00007f87b445cc77 in ?? () from /usr/lib/python3/dist-packages/PyQt5/QtCore.cpython-35m-x86_64-linux-gnu.so
#29 0x00007f87f5a003e4 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#30 0x00007f87f672a6a2 in QAction::triggered(bool) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#31 0x00007f87f672cdb0 in QAction::activate(QAction::ActionEvent) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#32 0x00007f87f682b210 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#33 0x00007f87f682b344 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#34 0x00007f87f69055ca in QToolButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#35 0x00007f87f676fb08 in QWidget::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#36 0x00007f87f69056a9 in QToolButton::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#37 0x00007f87f6730b9c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#38 0x00007f87f67391cb in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#39 0x00007f87f7f56f29 in KisApplication::notify(QObject*, QEvent*) () from /home/boud/dev/i/lib/x86_64-linux-gnu/libkritaui.so.16
#40 0x00007f87f59d3df8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#41 0x00007f87f6737b6f in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#42 0x00007f87f6789b06 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#43 0x00007f87f678c563 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#44 0x00007f87f6730b9c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#45 0x00007f87f67385a7 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#46 0x00007f87f7f56f29 in KisApplication::notify(QObject*, QEvent*) () from /home/boud/dev/i/lib/x86_64-linux-gnu/libkritaui.so.16
#47 0x00007f87f59d3df8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#48 0x00007f87f5fc2860 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#49 0x00007f87f5fc47c5 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#50 0x00007f87f5f9e81b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#51 0x00007f87df33d440 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#52 0x00007f87ececf197 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#53 0x00007f87ececf3f0 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#54 0x00007f87ececf49c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#55 0x00007f87f5a296af in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#56 0x00007f87f59d1e2a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#57 0x00007f87f59dad64 in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#58 0x00000000004096b7 in main ()
Comment 1 Halla Rempt 2018-01-23 08:59:38 UTC
The crash is fixed in https://commits.kde.org/krita/6b65db53c4a7107281f9ee0b8069c6e3fb294207

There's now also a unittest that works this API.