Bug 401326

Summary: Krita crashes on trying to generate a cache for 130+ FullHD frames
Product: [Applications] krita Reporter: Dmitry Kazakov <dimula73>
Component: AnimationAssignee: Krita Bugs <krita-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: arh983, halla, jcc2150
Priority: NOR Keywords: regression, release_blocker
Version: 4.1.5   
Target Milestone: ---   
Platform: Other   
OS: Microsoft Windows   
Latest Commit: Version Fixed In:

Description Dmitry Kazakov 2018-11-23 12:17:38 UTC
SUMMARY

Krita silently crashes without generating a crashlog. DebugView says nothing.


STEPS TO REPRODUCE
1. Activate openGL (on my system it crashes with angle only, on the reporter's system it crashes on normal openGL)
2. Activate cache animation to disk option (activated by default)
3. Open a file with about 150 real (non-hold) fullhd frames
4. Press Play button to start regeneration of the cache

Krita silently crashes.

ADDITIONAL NOTES:

1) Crash happens on Windows-only. On Linux it works fine with the same file.
2) Crash doesn't happen when cache-to-memory feature is selected
3) ROI and limit frame size options don't affect the crash

(the file I used for testing is not for publishing, but it seems like it is not file-specific since multiple people could reproduce it)
Comment 1 Halla Rempt 2018-11-23 12:33:21 UTC
On the black monster, I get a safe assert in KisAsyncAnimationRendererBase.cpp, line 128
Comment 2 Halla Rempt 2018-12-11 09:11:33 UTC
Git commit dbc364278417c44bd8b9c9ca7f34c5d138bea64f by Boudewijn Rempt.
Committed on 11/12/2018 at 08:41.
Pushed by rempt into branch 'krita/4.1'.

Disable the cache backend on Windows

And set on-disk hard-coded to false, on Windows

M  +4    -0    libs/image/kis_image_config.cpp
M  +6    -0    libs/ui/dialogs/kis_dlg_preferences.cc

https://commits.kde.org/krita/dbc364278417c44bd8b9c9ca7f34c5d138bea64f
Comment 3 Halla Rempt 2019-02-06 11:16:19 UTC
*** Bug 403905 has been marked as a duplicate of this bug. ***
Comment 4 Dmitry Kazakov 2019-02-28 15:27:42 UTC
Git commit 366731e1b2eea083e88ec599d98acdeac548f002 by Dmitry Kazakov.
Committed on 28/02/2019 at 15:27.
Pushed by dkazakov into branch 'master'.

Fix crash when rendering animation with a lot of frames on Windows

The problem happens because QProgressDialog::setValue() can call
QApplication::processEvents(), which causes recursive reentrancy
into the update functions, which is not nice.
BACKPORT:krita/4.1

M  +44   -3    libs/ui/dialogs/KisAsyncAnimationRenderDialogBase.cpp
M  +1    -0    libs/ui/dialogs/KisAsyncAnimationRenderDialogBase.h

https://commits.kde.org/krita/366731e1b2eea083e88ec599d98acdeac548f002