Summary: | GDB Backtrace -- Crash when trying to edit a transform mask | ||
---|---|---|---|
Product: | [Applications] krita | Reporter: | wolthera <griffinvalley> |
Component: | Tile manager | Assignee: | Dmitry Kazakov <dimula73> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | dimula73, halla |
Priority: | NOR | Keywords: | regression, release_blocker |
Version: | git master (please specify the git hash!) | ||
Target Milestone: | --- | ||
Platform: | Other | ||
OS: | Linux | ||
Latest Commit: | https://commits.kde.org/krita/ee35a0584194c3071865b8855855196896dff308 | Version Fixed In: |
Description
wolthera
2018-06-10 20:52:31 UTC
I've had this crash once more, but again, it happens randomly as far as I can tell. Yes, I can reproduce, that you very much for the steps! :) Git commit 3ecf377c522a1f5b8b8311d400d139cab30e47fd by Dmitry Kazakov. Committed on 12/06/2018 at 08:19. Pushed by dkazakov into branch 'master'. Fix crash when editing transform mask too actively 1) Now KisSpontaneousJob has an 'exclusive' property, which guarantees that now other update jobs are not running in parallel 2) KisModifyTransformMaskCommand mush not call m_mask->recaclulateStaticImage() directly, it doesn't guarantee exclusive access to a paint device, which can cause a crash (because the transform worker calls KisPaintDevice::purge(), which demands exclusive access). M +25 -7 libs/image/kis_recalculate_transform_mask_job.cpp C +9 -16 libs/image/kis_spontaneous_job.cpp [from: libs/image/kis_spontaneous_job.h - 054% similarity] M +11 -0 libs/image/kis_spontaneous_job.h M +12 -0 libs/image/kis_transform_mask.cpp M +7 -0 libs/image/kis_transform_mask.h M +1 -1 libs/image/kis_update_job_item.h M +2 -30 plugins/tools/tool_transform2/kis_modify_transform_mask_command.cpp M +0 -3 plugins/tools/tool_transform2/kis_modify_transform_mask_command.h https://commits.kde.org/krita/3ecf377c522a1f5b8b8311d400d139cab30e47fd Git commit 45dc6137bf395cbb9e860973645f475d2e05d12a by Boudewijn Rempt, on behalf of Dmitry Kazakov. Committed on 13/06/2018 at 11:48. Pushed by rempt into tag 'v4.0.4'. Fix crash when editing transform mask too actively 1) Now KisSpontaneousJob has an 'exclusive' property, which guarantees that now other update jobs are not running in parallel 2) KisModifyTransformMaskCommand mush not call m_mask->recaclulateStaticImage() directly, it doesn't guarantee exclusive access to a paint device, which can cause a crash (because the transform worker calls KisPaintDevice::purge(), which demands exclusive access). (cherry picked from commit 3ecf377c522a1f5b8b8311d400d139cab30e47fd) M +25 -7 libs/image/kis_recalculate_transform_mask_job.cpp C +9 -16 libs/image/kis_spontaneous_job.cpp [from: libs/image/kis_spontaneous_job.h - 054% similarity] M +11 -0 libs/image/kis_spontaneous_job.h M +12 -0 libs/image/kis_transform_mask.cpp M +7 -0 libs/image/kis_transform_mask.h M +1 -1 libs/image/kis_update_job_item.h M +2 -30 plugins/tools/tool_transform2/kis_modify_transform_mask_command.cpp M +0 -3 plugins/tools/tool_transform2/kis_modify_transform_mask_command.h https://commits.kde.org/krita/45dc6137bf395cbb9e860973645f475d2e05d12a Git commit ee35a0584194c3071865b8855855196896dff308 by Andrey Kamakin, on behalf of Dmitry Kazakov. Committed on 26/06/2018 at 14:18. Pushed by akamakin into branch 'akamakin/T8628-multithreading-optimization'. Fix crash when editing transform mask too actively 1) Now KisSpontaneousJob has an 'exclusive' property, which guarantees that now other update jobs are not running in parallel 2) KisModifyTransformMaskCommand mush not call m_mask->recaclulateStaticImage() directly, it doesn't guarantee exclusive access to a paint device, which can cause a crash (because the transform worker calls KisPaintDevice::purge(), which demands exclusive access). M +25 -7 libs/image/kis_recalculate_transform_mask_job.cpp C +9 -16 libs/image/kis_spontaneous_job.cpp [from: libs/image/kis_spontaneous_job.h - 054% similarity] M +11 -0 libs/image/kis_spontaneous_job.h M +12 -0 libs/image/kis_transform_mask.cpp M +7 -0 libs/image/kis_transform_mask.h M +1 -1 libs/image/kis_update_job_item.h M +2 -30 plugins/tools/tool_transform2/kis_modify_transform_mask_command.cpp M +0 -3 plugins/tools/tool_transform2/kis_modify_transform_mask_command.h https://commits.kde.org/krita/ee35a0584194c3071865b8855855196896dff308 |