Bug 412624

Summary: Krita 4.2.7.1 Using "Create separate separation from alpha channel" in the "Separate Image..." semi-hangs Krita.
Product: [Applications] krita Reporter: Jim <snopmark>
Component: GeneralAssignee: Krita Bugs <krita-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: ahab.greybeard, halla
Priority: NOR    
Version: 4.2.7   
Target Milestone: ---   
Platform: Microsoft Windows   
OS: Microsoft Windows   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: JPEG Image used when I ran into the bug.

Description Jim 2019-10-05 00:33:52 UTC
SUMMARY
Using "Create separate separation from alpha channel" in the "Separate Image..." semi-hangs Krita.

STEPS TO REPRODUCE
1. Open the attached file, "Harada.Takehito.full.1043457.jpg" in Krita.
2. Go to "Image" > "Separate Image..." 
3. Under "Alpha Options" select the "Create separate separation from alpha channel."
4. Then select "OK."

OBSERVED RESULT
When I used "Separate Image..." on a JPEG image I found online, and pick "Create separate separation from alpha channel," nothing seems to happen, but after this I can't use any brush to draw or erase the canvas. When I try to close out Krita, there's a message box with a loading bar that says "Waiting for image operation to complete..." And it's just stuck like that until I close it out. If I didn't try to draw or erase on the canvas after the "Separate Image..." operation, it closes out right away. Either case, after I close Krita and look at the task manager, Krita is still running in the background.


EXPECTED RESULT
The image is split into red, green, blue, and alpha layer channels.

SOFTWARE/OS VERSIONS
Windows: Windows 10 Home 64-bit Build 18362
macOS: 
Linux/KDE Plasma: 
(available in About System)
KDE Plasma Version: 
KDE Frameworks Version: 
Qt Version: 

ADDITIONAL INFORMATION
Krita Windows 64-bit version 4.2.7.1
Comment 1 Jim 2019-10-05 00:49:58 UTC
Created attachment 123024 [details]
JPEG Image used when I ran into the bug.
Comment 2 Ahab Greybeard 2019-10-07 14:54:01 UTC
I can confirm this for the conditions stated, with the 4.2.7.1 appimage and the latest 4.3.0 prealpha (git e3e61bf)appimage. Other options for Separate Image work normally.

During the 'stuck' condition, there is no CPU usage.
If I Close the image then it appears to close but the Overview docker shows the image and one CPU stays at 100% usage until I kill the process.

This happens for any 'large' image (about 4000 x 4000) that is opened or created. If you scale the image to 50%, Export it and then open it, the Separate Image function works normally. I haven't tried to determine what the 'critical' image size is.
Comment 3 Halla Rempt 2019-10-10 09:47:29 UTC
Git commit 3a535d383f623ffccf391859af33bd497329bb27 by Boudewijn Rempt.
Committed on 10/10/2019 at 09:47.
Pushed by rempt into branch 'master'.

Make Separate Channels work again

* This removes the code for saving the separations to files. This
has been disabled since 2006
* Fixes adding the layers (this was broken because the progress
reporter was set to 100 before adding the layers, which means that
iterrupted() was true, so the layers were never added)
* Fixes unlocking the image (which happened inside the block that
added nodes, which wasn't executed because of see above)
* And makes it possible to only activate the relevant channel when
separating to color
Related: bug 336694

M  +13   -14   plugins/extensions/separate_channels/dlg_separate.cc
M  +2    -2    plugins/extensions/separate_channels/dlg_separate.h
M  +31   -61   plugins/extensions/separate_channels/kis_channel_separator.cc
M  +1    -6    plugins/extensions/separate_channels/kis_channel_separator.h
M  +2    -2    plugins/extensions/separate_channels/kis_separate_channels_plugin.cc
M  +11   -28   plugins/extensions/separate_channels/wdg_separations.ui

https://invent.kde.org/kde/krita/commit/3a535d383f623ffccf391859af33bd497329bb27
Comment 4 Halla Rempt 2019-10-10 10:00:19 UTC
Git commit 62b2e4053a73d62ac52759f2053eb56564be892d by Boudewijn Rempt.
Committed on 10/10/2019 at 10:00.
Pushed by rempt into branch 'krita/4.2'.

Make Separate Channels work again

* This removes the code for saving the separations to files. This
has been disabled since 2006
* Fixes adding the layers (this was broken because the progress
reporter was set to 100 before adding the layers, which means that
iterrupted() was true, so the layers were never added)
* Fixes unlocking the image (which happened inside the block that
added nodes, which wasn't executed because of see above)
* And makes it possible to only activate the relevant channel when
separating to color
Related: bug 336694

M  +13   -14   plugins/extensions/separate_channels/dlg_separate.cc
M  +2    -2    plugins/extensions/separate_channels/dlg_separate.h
M  +31   -61   plugins/extensions/separate_channels/kis_channel_separator.cc
M  +1    -6    plugins/extensions/separate_channels/kis_channel_separator.h
M  +2    -2    plugins/extensions/separate_channels/kis_separate_channels_plugin.cc
M  +11   -28   plugins/extensions/separate_channels/wdg_separations.ui

https://invent.kde.org/kde/krita/commit/62b2e4053a73d62ac52759f2053eb56564be892d