Created attachment 161185 [details] Krita Crashlog SUMMARY *** Krita randomly Crashes whithout warning when saving *** STEPS TO REPRODUCE 1. open krita 2. open .kra file 3. work on krita kra file 4. save, either manually (file>save /file>save as...) or pressing ctrl + s / ctrl + alt + s OBSERVED RESULT Krita closes itself, no warning, no freezing and the file doesnt save EXPECTED RESULT the file is saved, Krita is still open and can continue to work on the file SOFTWARE/OS VERSIONS Windows 10 home ADDITIONAL INFORMATION
Hi, Angel! Thank you very much for your report! I will try to look into it...
The problem happens in line 276 in KisPlaybackEngineQT::throttledDriverCallback(). It seems like `m_d->measure` is null by the time of the call. The problem is that two lines above Krita writes(!) into the same location, so, most probably, some recursion happens in `bool neededRefresh = displayProxy->displayFrame(targetFrame, false)` function call... :( 269 [1] if (currentFrame != targetFrame) { 0x7ffc752fe3a4 <+ 868> 41 39 c4 cmp %eax,%r12d 0x7ffc752fe3a7 <+ 871> 74 36 je 0x7ffc752fe3df <_ZN19KisPlaybackEngineQT23throttledDriverCallbackEv+927> C:/Packaging/KritaWS/deps-install/include/QtCore/qscopedpointer.h: 0x7ffc752fe3a9 <+ 873> 48 8b 4e 28 mov 0x28(%rsi),%rcx 0x7ffc752fe3ad <+ 877> 48 8b 11 mov (%rcx),%rdx 0x7ffc752fe3b0 <+ 880> 48 8b 49 08 mov 0x8(%rcx),%rcx 106 [1] return m_dropFrames; 0x7ffc752fe3b4 <+ 884> 0f b6 52 3c movzbl 0x3c(%rdx),%edx 271 [1] m_d->measure->waitingForFrame = !m_d->driver->dropFrames(); 0x7ffc752fe3b8 <+ 888> 80 f2 01 xor $0x1,%dl 0x7ffc752fe3bb <+ 891> 88 51 18 mov %dl,0x18(%rcx) 273 [1] bool neededRefresh = displayProxy->displayFrame(targetFrame, false); 0x7ffc752fe3be <+ 894> 48 89 f9 mov %rdi,%rcx 0x7ffc752fe3c1 <+ 897> 89 c2 mov %eax,%edx 0x7ffc752fe3c3 <+ 899> 45 31 c0 xor %r8d,%r8d 0x7ffc752fe3c6 <+ 902> e8 b5 c6 37 00 call 0x7ffc7567aa80 <_ZN20KisFrameDisplayProxy12displayFrameEib> C:/Packaging/KritaWS/deps-install/include/QtCore/qscopedpointer.h: 0x7ffc752fe3cb <+ 907> 48 8b 4e 28 mov 0x28(%rsi),%rcx 0x7ffc752fe3cf <+ 911> 48 8b 49 08 mov 0x8(%rcx),%rcx 276 [1] m_d->measure->waitingForFrame = m_d->measure->waitingForFrame && neededRefresh; 0x7ffc752fe3d3 <+ 915> 80 79 18 00 cmpb $0x0,0x18(%rcx) 0x7ffc752fe3d7 <+ 919> 0f 95 c2 setne %dl 0x7ffc752fe3da <+ 922> 20 c2 and %al,%dl 0x7ffc752fe3dc <+ 924> 88 51 18 mov %dl,0x18(%rcx) 279 [1] }
*** Bug 472763 has been marked as a duplicate of this bug. ***
Git commit a8e420bafd48e55e33d5fee89836d3d71ffb9ffb by Dmitry Kazakov. Committed on 30/08/2023 at 12:22. Pushed by dkazakov into branch 'krita/5.2'. Possibly fix a crash when switching animated documents We shouldn't delete KisPlaybackEngineQT::Private::measure on every stop of the playback, because the timer events may be randomly postponed and we can end up reading from a null location. M +22 -22 libs/ui/KisPlaybackEngineQT.cpp https://invent.kde.org/graphics/krita/-/commit/a8e420bafd48e55e33d5fee89836d3d71ffb9ffb
Git commit 9bcab19c91e3b3d9d9536c769f66e595eff2e2ba by Dmitry Kazakov. Committed on 30/08/2023 at 13:27. Pushed by dkazakov into branch 'master'. Possibly fix a crash when switching animated documents We shouldn't delete KisPlaybackEngineQT::Private::measure on every stop of the playback, because the timer events may be randomly postponed and we can end up reading from a null location. M +22 -22 libs/ui/KisPlaybackEngineQT.cpp https://invent.kde.org/graphics/krita/-/commit/9bcab19c91e3b3d9d9536c769f66e595eff2e2ba
Hi, Angel! Could you please check this build when it finishes building? It should happen in about one hour. https://binary-factory.kde.org/job/Krita_Stable_Windows_Build/1962/ I think I have fixed the crash, though I could never reproduce it locally, so I'm not very sure.