Bug 369666 - Random crashes when using 'Transform Mask' layer
Summary: Random crashes when using 'Transform Mask' layer
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: Filter Layers (show other bugs)
Version: 3.0.1
Platform: Appimage Linux
: NOR crash
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-10-03 09:30 UTC by Larpon
Modified: 2016-10-07 09:17 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Larpon 2016-10-03 09:30:27 UTC
I get crashes when using the 'Transform Mask' layer. It's been in 3.0.1 and 3.0.1.1.

Whenever I've applied a few 'Transform Mask' layers to a group layer or paint layer - I then draw a bit - and then come back to either remove the 'Transform Mask' layer or adjust it and then Krita crashes

Reproducible: Always

Steps to Reproduce:
I haven't found precise reproduction steps - I only know it's when using one or more 'Transform Mask' layer.

An example:
1. New document in large size e.g.: 3400x2040
2. Make 2 group layers - and paint something on a paint layer in each group
3. Apply the 'Transform Mask' layer to both groups
4. Make paint layer in the root of the document
5. Paint some more on all paint layers
6. Remove one of the 'Transform Mask' layers.
7. Paint some more
8. Adjust one of the 'Transform Mask' layers
9. If Krita is still alive - try applying another 'Transform Mask' layer
 Doing the above steps or similar crashes Krita after a few times on my setup

Actual Results:  
crash

Expected Results:  
Expected no crash
Comment 1 Halla Rempt 2016-10-03 11:03:12 UTC
I'm sorry, but I have tried for half an hour and I haven't managed to reproduce the bug yet.
Comment 2 Larpon 2016-10-03 11:38:56 UTC
Hmm... I've tried again - this time I could get it to crash the same way two times in a row.
I've caputured a video and attached the file from the video:
http://dropcanvas.com/5reqx

I'm fiddling around with the Transform Mask layer and then switch to the Move tool rather quick.
Comment 3 wolthera 2016-10-04 17:03:35 UTC
I am getting a crash as well move-tool + transform masks gives this gdb backtrace:

hread 1 (Thread 0x7ffff7f0f8c0 (LWP 12403)):
#0  KisPaintDevice::nonDefaultPixelArea (this=0x0) at /home/krita/kde/src/krita/libs/image/kis_paint_device.cc:1131

#1  0x00007fff9f35d954 in KisToolMove::activate (this=0x16feab60, toolActivation=<optimized out>, shapes=...)
    at /home/krita/kde/src/krita/plugins/tools/basictools/kis_tool_move.cc:246
#2  0x00007ffff2488fa8 in KoToolManager::Private::postSwitchTool (this=this@entry=0xdfadc20, temporary=temporary@entry=false)
    at /home/krita/kde/src/krita/libs/flake/KoToolManager.cpp:709
#3  0x00007ffff248ac85 in KoToolManager::Private::switchTool (this=0xdfadc20, tool=0x16feab60, temporary=<optimized out>)
    at /home/krita/kde/src/krita/libs/flake/KoToolManager.cpp:638
#4  0x00007ffff248c08f in KoToolManager::Private::toolActivated (this=0xdfadc20, tool=0xeab9e10) at /home/krita/kde/src/krita/libs/flake/KoToolManager.cpp:801
#5  0x00007ffff5719cef in QMetaObject::activate(QObject*, int, int, void**) () from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#6  0x00007ffff253ab3f in ToolHelper::toolActivated (this=<optimized out>, _t1=0xeab9e10) at /home/krita/kde/build/libs/flake/moc_KoToolManager_p.cpp:152
#7  0x00007ffff5719cef in QMetaObject::activate(QObject*, int, int, void**) () from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#8  0x00007ffff685d4d2 in QAbstractButton::clicked(bool) () from /home/krita/Qt/5.6/gcc_64/lib/libQt5Widgets.so.5
#9  0x00007ffff65da8c5 in ?? () from /home/krita/Qt/5.6/gcc_64/lib/libQt5Widgets.so.5
---Type <return> to continue, or q <return> to quit---
#10 0x00007ffff65db624 in ?? () from /home/krita/Qt/5.6/gcc_64/lib/libQt5Widgets.so.5
#11 0x00007ffff65db7c4 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () from /home/krita/Qt/5.6/gcc_64/lib/libQt5Widgets.so.5
#12 0x00007ffff669cf4a in QToolButton::mouseReleaseEvent(QMouseEvent*) () from /home/krita/Qt/5.6/gcc_64/lib/libQt5Widgets.so.5
#13 0x00007ffff6526308 in QWidget::event(QEvent*) () from /home/krita/Qt/5.6/gcc_64/lib/libQt5Widgets.so.5
#14 0x00007ffff669d019 in QToolButton::event(QEvent*) () from /home/krita/Qt/5.6/gcc_64/lib/libQt5Widgets.so.5
#15 0x00007ffff64e404c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /home/krita/Qt/5.6/gcc_64/lib/libQt5Widgets.so.5
#16 0x00007ffff64e8f0e in QApplication::notify(QObject*, QEvent*) () from /home/krita/Qt/5.6/gcc_64/lib/libQt5Widgets.so.5

#17 0x00007ffff78c7917 in KisApplication::notify (this=<optimized out>, receiver=0xeb188a0, event=0x7fffffffcba0)
    at /home/krita/kde/src/krita/libs/ui/KisApplication.cpp:511
#18 0x00007ffff56f0e80 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#19 0x00007ffff64e7a33 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Widgets.so.5
#20 0x00007ffff65415da in ?? () from /home/krita/Qt/5.6/gcc_64/lib/libQt5Widgets.so.5
#21 0x00007ffff65436db in ?? () from /home/krita/Qt/5.6/gcc_64/lib/libQt5Widgets.so.5
#22 0x00007ffff64e404c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /home/krita/Qt/5.6/gcc_64/lib/libQt5Widgets.so.5
#23 0x00007ffff64e8488 in QApplication::notify(QObject*, QEvent*) () from /home/krita/Qt/5.6/gcc_64/lib/libQt5Widgets.so.5
#24 0x00007ffff78c7917 in KisApplication::notify (this=<optimized out>, receiver=0xef3b600, event=0x7fffffffd030)
    at /home/krita/kde/src/krita/libs/ui/KisApplication.cpp:511
#25 0x00007ffff56f0e80 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#26 0x00007ffff5c9097b in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () from /home/krita/Qt/5.6/gcc_64/lib/libQt5Gui.so.5
#27 0x00007ffff5c92485 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Gui.so.5
#28 0x00007ffff5c736a3 in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /home/krita/Qt/5.6/gcc_64/lib/libQt5Gui.so.5
#29 0x00007fffe59a9720 in ?? () from /home/krita/Qt/5.6/gcc_64/plugins/platforms/../../lib/libQt5XcbQpa.so.5
#30 0x00007fffee3471a7 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#31 0x00007fffee347400 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#32 0x00007fffee3474ac in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#33 0x00007ffff57404e7 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#34 0x00007ffff56eeefa in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#35 0x00007ffff56f6d9d in QCoreApplication::exec() () from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#36 0x0000000000404cf6 in main (argc=1, argv=<optimized out>) at /home/krita/kde/src/krita/krita/main.cc:234
Comment 4 Halla Rempt 2016-10-07 09:17:26 UTC
Git commit da7f2c1ff3de31030634aa23c7da290855deb94a by Boudewijn Rempt.
Committed on 07/10/2016 at 09:16.
Pushed by rempt into branch 'master'.

Check whether there's a projection in a couple more places
Task: https://phabricator.kde.org/T3941

M  +9    -3    plugins/tools/basictools/kis_tool_move.cc

http://commits.kde.org/krita/da7f2c1ff3de31030634aa23c7da290855deb94a