Bug 374388 - Assertions when trying to use transformations on a specific document
Summary: Assertions when trying to use transformations on a specific document
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: Tools/Transform (other bugs)
Version First Reported In: 3.1.1
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-12-31 10:20 UTC by Nicholas LaPointe
Modified: 2017-05-01 08:59 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments
Described document (540.95 KB, application/x-krita)
2016-12-31 10:20 UTC, Nicholas LaPointe
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Nicholas LaPointe 2016-12-31 10:20:48 UTC
Created attachment 103111 [details]
Described document

Liquify: "ASSERT (krita): "!srcImage.isNull()" in file libs/image/kis_liquify_transform_worker.cpp, line 481"
Warp: "ASSERT (krita): "srcImage.format() == QImage::Format_ARGB32" in file libs/image/kis_warptransform_worker.cc, line 291"
Cage: "ASSERT (krita): "numPoints == m_d->gridSize.width() * m_d->gridSize.height()" in file libs/image/kis_cage_transform_worker.cpp, line 176"

The document contains one layer with a single tile that has three black pixels in it. Curiously, it also gets marked as modified by Krita when I start Krita with the document, but it doesn't if I start Krita and then open it.
Comment 1 Halla Rempt 2017-01-03 11:39:40 UTC
The modified thing should be fixed now. I can confirm the asserts.
Comment 2 Halla Rempt 2017-01-03 11:39:58 UTC
1:

#3  0x00007ffff37b7f0c in kis_assert_common(char const*, char const*, int, bool, bool) (assertion=assertion@entry=0x7ffff638d916 "!srcImage.isNull()", file=file@entry=0x7ffff638d978 "/home/boud/dev/krita/libs/image/kis_liquify_transform_worker.cpp", line=line@entry=481, throwException=throwException@entry=false, isIgnorable=isIgnorable@entry=false) at /home/boud/dev/krita/libs/global/kis_assert.cpp:90
#4  0x00007ffff37b826a in kis_assert_recoverable(char const*, char const*, int) (assertion=assertion@entry=0x7ffff638d916 "!srcImage.isNull()", file=file@entry=0x7ffff638d978 "/home/boud/dev/krita/libs/image/kis_liquify_transform_worker.cpp", line=line@entry=481) at /home/boud/dev/krita/libs/global/kis_assert.cpp:103
#5  0x00007ffff62d7a44 in KisLiquifyTransformWorker::runOnQImage(QImage const&, QPointF const&, QTransform const&, QPointF*) (this=0x19f976d0, srcImage=..., srcImageOffset=..., imageToThumbTransform=..., newOffset=newOffset@entry=0xc5fb550) at /home/boud/dev/krita/libs/image/kis_liquify_transform_worker.cpp:481
#6  0x00007fffa9bdafe2 in KisLiquifyTransformStrategy::Private::recalculateTransformations() (this=0xc5fb4d0)
    at /home/boud/dev/krita/plugins/tools/tool_transform2/kis_liquify_transform_strategy.cpp:296
#7  0x00007fffa9bc17ba in KisToolTransform::initGuiAfterTransformMode() (this=0xc5eee80)
    at /home/boud/dev/krita/plugins/tools/tool_transform2/kis_tool_transform.cc:740
#8  0x00007fffa9bc18c9 in KisToolTransform::initTransformMode(ToolTransformArgs::TransformMode) (this=this@entry=0xc5eee80, mode=ToolTransformArgs::LIQUIFY)
    at /home/boud/dev/krita/plugins/tools/tool_transform2/kis_tool_transform.cc:735
#9  0x00007fffa9bc6a5d in KisToolTransform::slotResetTransform() (this=0xc5eee80)
    at /home/boud/dev/krita/plugins/tools/tool_transform2/kis_tool_transform.cc:1145
#10 0x00007fffa9bf0c95 in KisToolTransform::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>)
    at /home/boud/dev/build/plugins/tools/tool_transform2/kritatooltransform_automoc.dir/moc_kis_tool_trans_XZZZ757VIH4EVG.cpp:312
#11 0x00007fffee0d4441 in QMetaObject::activate(QObject*, int, int, void**) ()
    at /home/boud/dev/deps/lib/libQt5Core.so.5
#12 0x00007fffa9bc9535 in KisToolTransformConfigWidget::slotSetLiquifyModeButtonClicked(bool) (this=0x19ed8ff0, value=<optimized out>)
    at /home/boud/dev/krita/plugins/tools/tool_transform2/kis_tool_transform_config_widget.cpp:813
#13 0x00007fffa9bf074a in KisToolTransformConfigWidget::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>)
    at /home/boud/dev/build/plugins/tools/tool_transform2/kritatooltransform_automoc.dir/moc_kis_tool_trans_5D5BN4NTUPLBDJ.cpp:298
#14 0x00007fffee0d4441 in QMetaObject::activate(QObject*, int, int, void**) ()
    at /home/boud/dev/deps/lib/libQt5Core.so.5
#15 0x00007fffef191552 in QAbstractButton::clicked(bool) () at /home/boud/dev/deps/lib/libQt5Widgets.so.5
#16 0x00007fffef19174a in  () at /home/boud/dev/deps/lib/libQt5Widgets.so.5
#17 0x00007fffef192778 in  () at /home/boud/dev/deps/lib/libQt5Widgets.so.5
#18 0x00007fffef1928f4 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) ()
    at /home/boud/dev/deps/lib/libQt5Widgets.so.5
#19 0x00007fffef2567aa in QToolButton::mouseReleaseEvent(QMouseEvent*) ()
    at /home/boud/dev/deps/lib/libQt5Widgets.so.5
#20 0x00007fffef0dcbaa in QWidget::event(QEvent*) () at /home/boud/dev/deps/lib/libQt5Widgets.so.5
#21 0x00007fffef256889 in QToolButton::event(QEvent*) () at /home/boud/dev/deps/lib/libQt5Widgets.so.5
#22 0x00007fffef09adec in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
    at /home/boud/dev/deps/lib/libQt5Widgets.so.5
#23 0x00007fffef09fcc4 in QApplication::notify(QObject*, QEvent*) ()
    at /home/boud/dev/deps/lib/libQt5Widgets.so.5
#24 0x00007ffff78d7fa7 in KisApplication::notify(QObject*, QEvent*) (this=<optimized out>, receiver=0xcc58eb0, event=0x7fffffffc970) at /home/boud/dev/krita/libs/ui/KisApplication.cpp:537
#25 0x00007fffee0aa8e5 in QCoreApplication::notifyInternal2(QObject*, QEvent*) ()
    at /home/boud/dev/deps/lib/libQt5Core.so.5
#26 0x00007fffef09e9c0 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () at /home/boud/dev/deps/lib/libQt5Widgets.so.5
#27 0x00007fffef0f57b1 in  () at /home/boud/dev/deps/lib/libQt5Widgets.so.5
#28 0x00007fffef0f7d53 in  () at /home/boud/dev/deps/lib/libQt5Widgets.so.5
#29 0x00007fffef09adec in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
    at /home/boud/dev/deps/lib/libQt5Widgets.so.5
#30 0x00007fffef09f44a in QApplication::notify(QObject*, QEvent*) ()
    at /home/boud/dev/deps/lib/libQt5Widgets.so.5
#31 0x00007ffff78d7fa7 in KisApplication::notify(QObject*, QEvent*) (this=<optimized out>, receiver=0x8edefc0, event=0x7fffffffce40) at /home/boud/dev/krita/libs/ui/KisApplication.cpp:537
Comment 3 Dmitry Kazakov 2017-04-28 17:18:03 UTC
Yes, I can reproduce the problem :)
Comment 4 Dmitry Kazakov 2017-04-28 18:43:51 UTC
Git commit bc0aad9f0e5b6db720a0ffb146c9eadef317e022 by Dmitry Kazakov.
Committed on 28/04/2017 at 18:43.
Pushed by dkazakov into branch 'master'.

Don't scale down too small previews for the transform tool

M  +5    -0    libs/global/kis_algebra_2d.h
M  +7    -6    plugins/tools/tool_transform2/kis_liquify_transform_strategy.cpp
M  +6    -0    plugins/tools/tool_transform2/kis_transform_utils.cpp
M  +1    -0    plugins/tools/tool_transform2/kis_transform_utils.h
M  +7    -6    plugins/tools/tool_transform2/kis_warp_transform_strategy.cpp

https://commits.kde.org/krita/bc0aad9f0e5b6db720a0ffb146c9eadef317e022
Comment 5 Dmitry Kazakov 2017-05-01 08:59:58 UTC
Git commit 79ab516d1ad5f8f427c4a6b279184b37dda0eedd by Dmitry Kazakov.
Committed on 01/05/2017 at 08:02.
Pushed by dkazakov into branch 'krita/3.1'.

Don't scale down too small previews for the transform tool

M  +5    -0    libs/image/kis_algebra_2d.h
M  +7    -6    plugins/tools/tool_transform2/kis_liquify_transform_strategy.cpp
M  +6    -0    plugins/tools/tool_transform2/kis_transform_utils.cpp
M  +1    -0    plugins/tools/tool_transform2/kis_transform_utils.h
M  +7    -6    plugins/tools/tool_transform2/kis_warp_transform_strategy.cpp

https://commits.kde.org/krita/79ab516d1ad5f8f427c4a6b279184b37dda0eedd