Bug 412835

Summary: Random assert message
Product: [Applications] krita Reporter: acc4commissions
Component: GeneralAssignee: Dmitry Kazakov <dimula73>
Status: RESOLVED FIXED    
Severity: normal CC: dimula73
Priority: NOR    
Version: nightly build (please specify the git hash!)   
Target Milestone: ---   
Platform: Microsoft Windows   
OS: Microsoft Windows   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: capture

Description acc4commissions 2019-10-11 02:49:55 UTC
Created attachment 123141 [details]
capture

SUMMARY
git 56ee905

Krita was autosaving when this poped up, but I'm not sure those are related.


SOFTWARE/OS VERSIONS
Windows: Win7
macOS: 
Linux/KDE Plasma: 
(available in About System)
KDE Plasma Version: 
KDE Frameworks Version: 
Qt Version: 

ADDITIONAL INFORMATION
Comment 1 acc4commissions 2019-10-11 02:50:44 UTC
I was just drawing and nothing alse was going on in the canvas.
Comment 2 Dmitry Kazakov 2019-10-14 13:40:20 UTC
Hi, acc4commissions!

Do you remember, did you have any shape layers or transformation masks on your image? And was the image animated?
Comment 3 Dmitry Kazakov 2019-10-14 14:47:14 UTC
Git commit ca2e423a9af4f5c1f4691ab3e5f86d5fee61938b by Dmitry Kazakov.
Committed on 14/10/2019 at 14:45.
Pushed by dkazakov into branch 'master'.

Fix an assert when force-autosaving the image right during the stroke

When we make a clone of a shape layer, we must ensure that no updates
are initiated after cloning the image. We used to block updates at
the level of KisShapeLayerCanvas, but it works only when we save/clone
the image from the GUI thread. When we save it from the worker thread,
KoShapeManager queues the event into the GUI events queue, so an update
comes asynchronously.

To resolve this issue, the patch moves locking from KisShapeLayerCanvas
to KoShapeManager. We must ensure that there is no compressors nor queues
between the adding code and blocking code.

M  +12   -0    libs/flake/KoShapeManager.cpp
M  +11   -0    libs/flake/KoShapeManager.h
M  +2    -0    libs/flake/KoShapeManager_p.h
M  +2    -2    libs/ui/flake/kis_shape_layer.cc
M  +1    -12   libs/ui/flake/kis_shape_layer_canvas.cpp
M  +0    -4    libs/ui/flake/kis_shape_layer_canvas.h

https://invent.kde.org/kde/krita/commit/ca2e423a9af4f5c1f4691ab3e5f86d5fee61938b
Comment 4 Dmitry Kazakov 2019-10-16 13:47:31 UTC
*** Bug 412747 has been marked as a duplicate of this bug. ***
Comment 5 Dmitry Kazakov 2019-11-05 17:18:19 UTC
Git commit fdc983ada1e9aeb3bb81e4209f8f92c66038d492 by Dmitry Kazakov.
Committed on 05/11/2019 at 17:18.
Pushed by dkazakov into branch 'krita/4.2'.

Fix an assert when force-autosaving the image right during the stroke

When we make a clone of a shape layer, we must ensure that no updates
are initiated after cloning the image. We used to block updates at
the level of KisShapeLayerCanvas, but it works only when we save/clone
the image from the GUI thread. When we save it from the worker thread,
KoShapeManager queues the event into the GUI events queue, so an update
comes asynchronously.

To resolve this issue, the patch moves locking from KisShapeLayerCanvas
to KoShapeManager. We must ensure that there is no compressors nor queues
between the adding code and blocking code.

M  +12   -0    libs/flake/KoShapeManager.cpp
M  +11   -0    libs/flake/KoShapeManager.h
M  +2    -0    libs/flake/KoShapeManager_p.h
M  +2    -2    libs/ui/flake/kis_shape_layer.cc
M  +1    -12   libs/ui/flake/kis_shape_layer_canvas.cpp
M  +0    -4    libs/ui/flake/kis_shape_layer_canvas.h

https://invent.kde.org/kde/krita/commit/fdc983ada1e9aeb3bb81e4209f8f92c66038d492