Bug 473130 - Crash when undoing image color space conversion
Summary: Crash when undoing image color space conversion
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: Tile manager (show other bugs)
Version: git master (please specify the git hash!)
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: Dmitry Kazakov
URL:
Keywords: release_blocker
Depends on:
Blocks:
 
Reported: 2023-08-08 02:47 UTC by Lynx3d
Modified: 2023-08-18 11:01 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
KCrash report (5.04 KB, text/vnd.kde.kcrash-report)
2023-08-08 02:47 UTC, Lynx3d
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Lynx3d 2023-08-08 02:47:55 UTC
Created attachment 160820 [details]
KCrash report

SUMMARY
Krita master, git commit 4b077697d0b5ecb2f45f79c86a1a48d36e57f423
Ubuntu Linux 22.04
This crash seems to require a decently large image (reproduced several times with 4096x4096, 2 paint layer), I couldn't reproduce with small ones. It may also require more than one layer, ond/or some editing like a simple brush stroke after the conversion, at least it seems to greatly increase the chance to crash for me.

STEPS TO REPRODUCE
1. Open a decently large image (4096x4096, 2 paint layers in my case)
2. Convert image color space e.g. from RGB 8-bit to 16-bit integer
3. Undo the conversion

OBSERVED RESULT
Krita may crash instantly, see attached KCrash info
Comment 1 Bug Janitor Service 2023-08-18 09:19:31 UTC
A possibly relevant merge request was started @ https://invent.kde.org/graphics/krita/-/merge_requests/1905
Comment 2 Dmitry Kazakov 2023-08-18 09:43:18 UTC
Git commit d75c3eff6f861ebffe4667e0d44e525e1a98315d by Dmitry Kazakov.
Committed on 18/08/2023 at 11:32.
Pushed by dkazakov into branch 'master'.

Fix Channels docker to generate thumbnails asynchronously

Now the docker basically reuses the strategy used in Overview docker,
so there should be no threading issues/crashes anymore.

M  +1    -0    libs/ui/CMakeLists.txt
R  +30   -26   libs/ui/KisImageThumbnailStrokeStrategy.cpp [from: plugins/dockers/overview/OverviewThumbnailStrokeStrategy.cpp - 056% similarity]
A  +72   -0    libs/ui/KisImageThumbnailStrokeStrategy.h     [License: GPL(v2.0+)]
M  +6    -1    plugins/dockers/channeldocker/CMakeLists.txt
A  +56   -0    plugins/dockers/channeldocker/KisChannelsThumbnailsStrokeStrategy.cpp     [License: GPL(v2.0+)]
A  +24   -0    plugins/dockers/channeldocker/KisChannelsThumbnailsStrokeStrategy.h  *
M  +45   -40   plugins/dockers/channeldocker/channeldocker_dock.cpp
M  +7    -8    plugins/dockers/channeldocker/channeldocker_dock.h
M  +51   -88   plugins/dockers/channeldocker/channelmodel.cpp
M  +7    -6    plugins/dockers/channeldocker/channelmodel.h
M  +1    -2    plugins/dockers/overview/CMakeLists.txt
D  +0    -58   plugins/dockers/overview/OverviewThumbnailStrokeStrategy.h
M  +3    -3    plugins/dockers/overview/overviewwidget.cc

The files marked with a * at the end have a non valid license. Please read: https://community.kde.org/Policies/Licensing_Policy and use the headers which are listed at that page.


https://invent.kde.org/graphics/krita/-/commit/d75c3eff6f861ebffe4667e0d44e525e1a98315d
Comment 3 Dmitry Kazakov 2023-08-18 11:01:27 UTC
Git commit 665bf7ac7afc47e5e403f2b779ac3f68c201df9b by Dmitry Kazakov.
Committed on 18/08/2023 at 13:01.
Pushed by dkazakov into branch 'krita/5.2'.

Fix Channels docker to generate thumbnails asynchronously

Now the docker basically reuses the strategy used in Overview docker,
so there should be no threading issues/crashes anymore.


(cherry picked from commit d75c3eff6f861ebffe4667e0d44e525e1a98315d)

M  +1    -0    libs/ui/CMakeLists.txt
R  +30   -26   libs/ui/KisImageThumbnailStrokeStrategy.cpp [from: plugins/dockers/overview/OverviewThumbnailStrokeStrategy.cpp - 056% similarity]
A  +72   -0    libs/ui/KisImageThumbnailStrokeStrategy.h     [License: GPL(v2.0+)]
M  +6    -1    plugins/dockers/channeldocker/CMakeLists.txt
A  +56   -0    plugins/dockers/channeldocker/KisChannelsThumbnailsStrokeStrategy.cpp     [License: GPL(v2.0+)]
A  +24   -0    plugins/dockers/channeldocker/KisChannelsThumbnailsStrokeStrategy.h  *
M  +45   -40   plugins/dockers/channeldocker/channeldocker_dock.cpp
M  +7    -8    plugins/dockers/channeldocker/channeldocker_dock.h
M  +51   -88   plugins/dockers/channeldocker/channelmodel.cpp
M  +7    -6    plugins/dockers/channeldocker/channelmodel.h
M  +1    -2    plugins/dockers/overview/CMakeLists.txt
D  +0    -58   plugins/dockers/overview/OverviewThumbnailStrokeStrategy.h
M  +3    -3    plugins/dockers/overview/overviewwidget.cc

The files marked with a * at the end have a non valid license. Please read: https://community.kde.org/Policies/Licensing_Policy and use the headers which are listed at that page.


https://invent.kde.org/graphics/krita/-/commit/665bf7ac7afc47e5e403f2b779ac3f68c201df9b