Bug 352724

Summary: Crashes during Transform
Product: [Applications] krita Reporter: Matita2B <webmastella>
Component: Tools/TransformAssignee: Krita Bugs <krita-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: halla
Priority: NOR Keywords: drkonqi
Version First Reported In: 2.9.7   
Target Milestone: ---   
Platform: Mint (Ubuntu based)   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Matita2B 2015-09-15 07:27:38 UTC
Application: krita (2.9.7)
KDE Platform Version: 4.14.2
Qt Version: 4.8.6
Operating System: Linux 3.13.0-24-generic x86_64
Distribution: Linux Mint 17.2 Rafaela

-- Information about the crash:
- What I was doing when the application crashed:
using the Tranform tool (fluid) the variant with the drop icon

-- Backtrace:
Application: Krita (krita), signal: Aborted
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f090f024800 (LWP 6759))]

Thread 5 (Thread 0x7f08db9a3700 (LWP 6771)):
#0  0x00007f0906b8e414 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/x86_64-linux-gnu/libpthread.so.0
#1  0x00007f090cbd4816 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#2  0x00007f090cbd095b in QSemaphore::acquire(int) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#3  0x00007f090adaf3a0 in waitForWork (this=0x6f10440) at /build/krita-testing-pRS2kU/krita-testing-2+git20150904+r34/krita/image/tiles3/kis_tile_data_pooler.cc:165
#4  KisTileDataPooler::run (this=0x6f10440) at /build/krita-testing-pRS2kU/krita-testing-2+git20150904+r34/krita/image/tiles3/kis_tile_data_pooler.cc:187
#5  0x00007f090cbd432f in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#6  0x00007f0906b8a182 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#7  0x00007f090c37447d in clone () from /lib/x86_64-linux-gnu/libc.so.6

Thread 4 (Thread 0x7f08e6f09700 (LWP 6772)):
#0  0x00007f0906b8e414 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/x86_64-linux-gnu/libpthread.so.0
#1  0x00007f090cbd4816 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#2  0x00007f090cbd0d63 in QSemaphore::tryAcquire(int, int) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#3  0x00007f090add8153 in KisTileDataSwapper::waitForWork (this=<optimized out>) at /build/krita-testing-pRS2kU/krita-testing-2+git20150904+r34/krita/image/tiles3/swap/kis_tile_data_swapper.cpp:86
#4  0x00007f090add838a in KisTileDataSwapper::run (this=0x6f10480) at /build/krita-testing-pRS2kU/krita-testing-2+git20150904+r34/krita/image/tiles3/swap/kis_tile_data_swapper.cpp:92
#5  0x00007f090cbd432f in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#6  0x00007f0906b8a182 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#7  0x00007f090c37447d in clone () from /lib/x86_64-linux-gnu/libc.so.6

Thread 3 (Thread 0x7f08db1a2700 (LWP 6773)):
#0  0x00007f0906b8e414 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/x86_64-linux-gnu/libpthread.so.0
#1  0x00007f090cbd4816 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#2  0x00007f090dba5e16 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#3  0x00007f090cbd432f in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#4  0x00007f0906b8a182 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#5  0x00007f090c37447d in clone () from /lib/x86_64-linux-gnu/libc.so.6

Thread 2 (Thread 0x7f08ddc73700 (LWP 6774)):
#0  0x00007f09066aa604 in g_main_context_prepare () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007f09066aaf03 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f09066ab0ec in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f090cd037be in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#4  0x00007f090ccd50af in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#5  0x00007f090ccd53a5 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#6  0x00007f090cbd1c5f in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#7  0x00007f090ccb6823 in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#8  0x00007f090cbd432f in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#9  0x00007f0906b8a182 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#10 0x00007f090c37447d in clone () from /lib/x86_64-linux-gnu/libc.so.6

Thread 1 (Thread 0x7f090f024800 (LWP 6759)):
[KCrash Handler]
#5  0x00007f090c2b0cc9 in raise () from /lib/x86_64-linux-gnu/libc.so.6
#6  0x00007f090c2b40d8 in abort () from /lib/x86_64-linux-gnu/libc.so.6
#7  0x00007f090cbc9c92 in qt_message_output(QtMsgType, char const*) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#8  0x00007f090cbc9ff9 in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#9  0x00007f090cbca804 in qFatal(char const*, ...) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#10 0x00007f0908cfb929 in kis_assert_common (assertion=assertion@entry=0x7f08df526f4b "currentArgs.liquifyWorker()", file=file@entry=0x7f08df526ec8 "/build/krita-testing-pRS2kU/krita-testing-2+git20150904+r34/krita/plugins/tools/tool_transform2/kis_liquify_transform_strategy.cpp", line=line@entry=263, throwException=throwException@entry=false) at /build/krita-testing-pRS2kU/krita-testing-2+git20150904+r34/krita/libglobal/kis_assert.cpp:76
#11 0x00007f0908cfbdd7 in kis_assert_recoverable (assertion=assertion@entry=0x7f08df526f4b "currentArgs.liquifyWorker()", file=file@entry=0x7f08df526ec8 "/build/krita-testing-pRS2kU/krita-testing-2+git20150904+r34/krita/plugins/tools/tool_transform2/kis_liquify_transform_strategy.cpp", line=line@entry=263) at /build/krita-testing-pRS2kU/krita-testing-2+git20150904+r34/krita/libglobal/kis_assert.cpp:85
#12 0x00007f08df500798 in KisLiquifyTransformStrategy::Private::recalculateTransformations (this=0x1389d600) at /build/krita-testing-pRS2kU/krita-testing-2+git20150904+r34/krita/plugins/tools/tool_transform2/kis_liquify_transform_strategy.cpp:263
#13 0x00007f08df4e4a06 in KisToolTransform::initGuiAfterTransformMode (this=this@entry=0x13897c60) at /build/krita-testing-pRS2kU/krita-testing-2+git20150904+r34/krita/plugins/tools/tool_transform2/kis_tool_transform.cc:720
#14 0x00007f08df4e4b52 in KisToolTransform::initTransformMode (this=this@entry=0x13897c60, mode=ToolTransformArgs::LIQUIFY) at /build/krita-testing-pRS2kU/krita-testing-2+git20150904+r34/krita/plugins/tools/tool_transform2/kis_tool_transform.cc:715
#15 0x00007f08df4e8833 in KisToolTransform::slotResetTransform (this=this@entry=0x13897c60) at /build/krita-testing-pRS2kU/krita-testing-2+git20150904+r34/krita/plugins/tools/tool_transform2/kis_tool_transform.cc:1110
#16 0x00007f08df4e8a58 in KisToolTransform::qt_static_metacall (_o=0x13897c60, _c=<optimized out>, _id=31, _a=0x7fff0e718ad0) at /build/krita-testing-pRS2kU/krita-testing-2+git20150904+r34/obj-x86_64-linux-gnu/krita/plugins/tools/tool_transform2/kis_tool_transform.moc:191
#17 0x00007f090ccea87a in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#18 0x00007f08df4ecb24 in KisToolTransformConfigWidget::slotSetLiquifyModeButtonClicked (this=0x14feb7e0, value=103) at /build/krita-testing-pRS2kU/krita-testing-2+git20150904+r34/krita/plugins/tools/tool_transform2/kis_tool_transform_config_widget.cpp:781
#19 0x00007f08df4d582e in KisToolTransformConfigWidget::qt_static_metacall (_o=0x14feb7e0, _c=<optimized out>, _id=32, _a=0x7fff0e718d00) at /build/krita-testing-pRS2kU/krita-testing-2+git20150904+r34/obj-x86_64-linux-gnu/krita/plugins/tools/tool_transform2/moc_kis_tool_transform_config_widget.cpp:164
#20 0x00007f090ccea87a in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#21 0x00007f090dd17172 in QAbstractButton::clicked(bool) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#22 0x00007f090da7aa63 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#23 0x00007f090da7bbd3 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#24 0x00007f090da7bcbc in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#25 0x00007f090db32aca in QToolButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#26 0x00007f090d71851a in QWidget::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#27 0x00007f090d6c8e2c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#28 0x00007f090d6cf5dd in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#29 0x00007f090e865237 in KisApplication::notify (this=<optimized out>, receiver=0x14fedb30, event=0x7fff0e719210) at /build/krita-testing-pRS2kU/krita-testing-2+git20150904+r34/krita/ui/KisApplication.cpp:543
#30 0x00007f090ccd64dd in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#31 0x00007f090d6ced93 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#32 0x00007f090d7439eb in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#33 0x00007f090d743289 in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#34 0x00007f090d76ab32 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#35 0x00007f09066aae04 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#36 0x00007f09066ab048 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#37 0x00007f09066ab0ec in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#38 0x00007f090cd037a1 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#39 0x00007f090d76abe6 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#40 0x00007f090ccd50af in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#41 0x00007f090ccd53a5 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#42 0x00007f090ccdab79 in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#43 0x0000000000402729 in main (argc=<optimized out>, argv=<optimized out>) at /build/krita-testing-pRS2kU/krita-testing-2+git20150904+r34/krita/main.cc:192

Reported using DrKonqi
Comment 1 Halla Rempt 2016-03-25 12:28:01 UTC
Hi,

I haven't been able to reproduce, or to figure out why the assert is triggered... But since the code hasn't changed since 2.9.7, I suspect that it still can happen.
Comment 2 Halla Rempt 2016-03-25 12:34:21 UTC
Added to phabricator: https://phabricator.kde.org/T1947
Comment 3 Dmitry Kazakov 2016-04-11 18:34:34 UTC
Git commit 695cc85ebc95f0c1e40024105172016e37148c6f by Dmitry Kazakov.
Committed on 11/04/2016 at 18:34.
Pushed by dkazakov into branch 'master'.

Fix crash when switching transformation type in Transformation Masks

We shouldn't try to fetch the transform args from the masks when
resetting the transformation mask.
Related: bug 357020

M  +12   -8    plugins/tools/tool_transform2/kis_tool_transform.cc
M  +1    -1    plugins/tools/tool_transform2/kis_tool_transform.h

http://commits.kde.org/krita/695cc85ebc95f0c1e40024105172016e37148c6f