Created attachment 122990 [details] internal error SUMMARY It randomly crashes. And since krita doesn't generate crashlog anymore I can't get the backtrace, but I attatch the capture of the popup... The transform filter is lanczos3. I'll update more on here as I discover when it happens. SOFTWARE/OS VERSIONS Windows: Win7 macOS: Linux/KDE Plasma: (available in About System) KDE Plasma Version: KDE Frameworks Version: Qt Version: ADDITIONAL INFORMATION
Created attachment 123001 [details] capture 2 It crashed when editing global selection mask with select shape tool. It was after I opened and and didn't use the krita application for a long time.
It was not 4.2.7. It's nightly build. (git 835ca2e) My bad.
Oh dear, then I might've made 4.2.7.1 for nothing... Our goal was to have these warnings in the nightlies for testing, but not in stable releases.
(In reply to Boudewijn Rempt from comment #3) > Oh dear, then I might've made 4.2.7.1 for nothing... Our goal was to have > these warnings in the nightlies for testing, but not in stable releases. I'm sorry ;-;
These are two separate safe asserts though, Acc4, can you make a separate bugreport for the second image?
(In reply to wolthera from comment #5) > These are two separate safe asserts though, Acc4, can you make a separate > bugreport for the second image? https://bugs.kde.org/show_bug.cgi?id=412747
Thanks, adding the safe assert names to the title.
Assigning to Dmitry. I've seen this safe assert myself sometimes.
Related merge request: https://invent.kde.org/kde/krita/merge_requests/178
Hi, acc4commissions! Could you please test this package? Does transform tool still work as expected? https://yadi.sk/d/CddIAfN70Mljzw (it should fix the reported crash)
(In reply to Dmitry Kazakov from comment #10) > Hi, acc4commissions! > > Could you please test this package? Does transform tool still work as > expected? > > https://yadi.sk/d/CddIAfN70Mljzw > > (it should fix the reported crash) It doesn't crash. But the original crash already hasn't been happening for weeks. I'll try to test the build a bit more to see if there's a difference.
Thanks, I'll wait a bit! :) The problem happened when one clicked on the image to actiavte transform and pressed Esc or Enter key concurrently. Basically, when I was testing the issue, I just pressed mouse-button/Esc/Enter randomly and simultaneously a lot of times :)
(In reply to Dmitry Kazakov from comment #12) > Thanks, I'll wait a bit! :) > > The problem happened when one clicked on the image to actiavte transform and > pressed Esc or Enter key concurrently. Basically, when I was testing the > issue, I just pressed mouse-button/Esc/Enter randomly and simultaneously a > lot of times :) In the way you described it doesn't crash in both the latast nightly(git 8a22883) and this build.
Well, master crashes for me. You should just click really fast and a lot :)
(In reply to Dmitry Kazakov from comment #14) > Well, master crashes for me. You should just click really fast and a lot :) It doesn't seem crash for me... no matter how crazily I click. Since I'm not experincing the crash anymore I'm just gonna assume that it's resolved. :)
Git commit f336923b879653edfbfc28fa29f839d456699e8c by Dmitry Kazakov. Committed on 05/11/2019 at 18:41. Pushed by dkazakov into branch 'master'. Fix assert and a data-loss in Transform Tool The patch rewrites the logic of transform stroke completion. Previously, the decision whether to cancel transformation or to recover continued state was done by the GUI thread. It cased troubles, because the user could press esc/enter keys too quickly, even before the stroke was actually initialized (and before sigTransactionGenerated() was received). It caused confsion, resulting in the loss of the data of the continued state. Now GUI thread doesn't worry about the continued state. All the decisions are done by the stroke itself, so no races should happen. M +24 -20 plugins/tools/tool_transform2/kis_tool_transform.cc M +2 -1 plugins/tools/tool_transform2/kis_tool_transform.h M +53 -26 plugins/tools/tool_transform2/strokes/transform_stroke_strategy.cpp M +6 -2 plugins/tools/tool_transform2/strokes/transform_stroke_strategy.h https://invent.kde.org/kde/krita/commit/f336923b879653edfbfc28fa29f839d456699e8c
Git commit 1fdbf7f5f57a7361bb01d4ef42c83dd2c396cf4a by Dmitry Kazakov. Committed on 06/11/2019 at 15:17. Pushed by dkazakov into branch 'master'. Fix layer data loss when pressing Esc multiple times, while transforming stroke There were several problems: 1) When the jobs from m_overriddenCommand have been executed, they shouldn't be added to the strokes's undo commands queue. After the clear-selection job, the paint device gets new transaction, therefore all the redo information is lost. And commands from the previous stroke are not valid anymore. 2) Since the commands from m_overridenCommand do not take part in normal cancel/undo process, in case of stroke cancellation we should re-apply them manually. And therefore, we must ensure that clear selection and create-preview-device actions are executed before cancellation action is performed. Therefore the patch introduces a special isCancellable() tag of the stroke jobs. 3) Since finishStrokeCallback() now adds more jobs to the strokes queue, we need some way to mark them non-cancellable. It is done by the same isCancellable() tag. M +5 -3 libs/image/commands_new/kis_saved_commands.cpp M +1 -1 libs/image/commands_new/kis_saved_commands.h M +2 -1 libs/image/kis_stroke_job.h M +14 -2 libs/image/kis_stroke_job_strategy.cpp M +4 -0 libs/image/kis_stroke_job_strategy.h M +5 -1 libs/image/kis_stroke_strategy_undo_command_based.cpp M +9 -4 libs/image/kis_stroke_strategy_undo_command_based.h M +31 -14 plugins/tools/tool_transform2/strokes/transform_stroke_strategy.cpp M +2 -0 plugins/tools/tool_transform2/strokes/transform_stroke_strategy.h https://invent.kde.org/kde/krita/commit/1fdbf7f5f57a7361bb01d4ef42c83dd2c396cf4a
Git commit cd21bb33b70e0c06426926c8c6c707cc540df464 by Dmitry Kazakov. Committed on 11/11/2019 at 12:01. Pushed by dkazakov into branch 'krita/4.2'. Fix assert and a data-loss in Transform Tool The patch rewrites the logic of transform stroke completion. Previously, the decision whether to cancel transformation or to recover continued state was done by the GUI thread. It cased troubles, because the user could press esc/enter keys too quickly, even before the stroke was actually initialized (and before sigTransactionGenerated() was received). It caused confsion, resulting in the loss of the data of the continued state. Now GUI thread doesn't worry about the continued state. All the decisions are done by the stroke itself, so no races should happen. M +24 -20 plugins/tools/tool_transform2/kis_tool_transform.cc M +2 -1 plugins/tools/tool_transform2/kis_tool_transform.h M +53 -26 plugins/tools/tool_transform2/strokes/transform_stroke_strategy.cpp M +6 -2 plugins/tools/tool_transform2/strokes/transform_stroke_strategy.h https://invent.kde.org/kde/krita/commit/cd21bb33b70e0c06426926c8c6c707cc540df464
Git commit 393315265d7647afc876a1db0e2e0776c416b240 by Dmitry Kazakov. Committed on 11/11/2019 at 12:01. Pushed by dkazakov into branch 'krita/4.2'. Fix layer data loss when pressing Esc multiple times, while transforming stroke There were several problems: 1) When the jobs from m_overriddenCommand have been executed, they shouldn't be added to the strokes's undo commands queue. After the clear-selection job, the paint device gets new transaction, therefore all the redo information is lost. And commands from the previous stroke are not valid anymore. 2) Since the commands from m_overridenCommand do not take part in normal cancel/undo process, in case of stroke cancellation we should re-apply them manually. And therefore, we must ensure that clear selection and create-preview-device actions are executed before cancellation action is performed. Therefore the patch introduces a special isCancellable() tag of the stroke jobs. 3) Since finishStrokeCallback() now adds more jobs to the strokes queue, we need some way to mark them non-cancellable. It is done by the same isCancellable() tag. M +5 -3 libs/image/commands_new/kis_saved_commands.cpp M +1 -1 libs/image/commands_new/kis_saved_commands.h M +2 -1 libs/image/kis_stroke_job.h M +14 -2 libs/image/kis_stroke_job_strategy.cpp M +4 -0 libs/image/kis_stroke_job_strategy.h M +5 -1 libs/image/kis_stroke_strategy_undo_command_based.cpp M +9 -4 libs/image/kis_stroke_strategy_undo_command_based.h M +31 -14 plugins/tools/tool_transform2/strokes/transform_stroke_strategy.cpp M +2 -0 plugins/tools/tool_transform2/strokes/transform_stroke_strategy.h https://invent.kde.org/kde/krita/commit/393315265d7647afc876a1db0e2e0776c416b240