| Summary: | Krita crash when resizing small color selector docker | ||
|---|---|---|---|
| Product: | [Applications] krita | Reporter: | PangolinM <pangolinmontanari.art> |
| Component: | Dockers | Assignee: | Maksym Gryb <m.gryb09> |
| Status: | RESOLVED FIXED | ||
| Severity: | crash | CC: | ahab.greybeard, dconner.pro, halla, m.gryb09 |
| Priority: | NOR | ||
| Version First Reported In: | unspecified | ||
| Target Milestone: | --- | ||
| Platform: | Kubuntu | ||
| OS: | Linux | ||
| Latest Commit: | https://invent.kde.org/graphics/krita/commit/1dde6b83db631c30f9f65168289732b2186ad7bb | Version Fixed/Implemented In: | |
| Sentry Crash Report: | |||
|
Description
PangolinM
2020-10-26 03:51:04 UTC
Please update to the latest release of Krita: 4.4.0. Krita 4.2.9 is no longer supported, even though some Linux distributions still package it because they never update packages to a newer version. You can get an appimage that should run on almost every Linux distribution from https://krita.org/en/download/krita-desktop/ -- just download the appimage, make it executable and run it. See https://www.davidrevoy.com/article322/krita-appimage-for-cats (In reply to Boudewijn Rempt from comment #1) > Please update to the latest release of Krita: 4.4.0. Krita 4.2.9 is no > longer supported, even though some Linux distributions still package it > because they never update packages to a newer version. > > You can get an appimage that should run on almost every Linux distribution > from https://krita.org/en/download/krita-desktop/ -- just download the > appimage, make it executable and run it. See > https://www.davidrevoy.com/article322/krita-appimage-for-cats The crash still occurs in 4.4.0. I can Confirm this for the 4.4.0 and Oct27 4.4.1 prealpha (git ec67f1f) appimages. This is on Debian 10 with a MATE desktop. It does not happen with the Windows 10 installed 4.4.0 version. At the start of a session, you can dock a floating Small Colour Selector with no problem. If you open a new document and then close it, docking a floating Small Colour Selector or dragging docker panels such that they resize it will cause a crash. The crash does not happen with the Advanced Colour Selector. I can also confirm this is still happening in the 5.0.0-prealpha. When I trace the error through the debugger, the problem seems a pointer resolving to null in KisSmallColorWidget::generationColorSpace(). It's trying to call `result->colorModelId()`, but it's blowing up. Sorry if this is too much tech detail. I'm going to continue tracing through the code, but I'm not sure I should assign this to myself just yet. On Windows 10 with Krita 4.4.1, the following sequence has a chance to crash the application: 1. open Krita 2. resize Small Color Selector 3. create new document 4. close document 5. resize Small Color Selector 6. Krita crashes It crashes about 1 in 3 times, which is a very high rate for me since it pretty much never crashed on me in the last few months of drawing. I'll look into what David Connor mentioned in November. This patch should do the trick, I guess, though the logic there seems iffy to me:
diff --git a/plugins/dockers/smallcolorselector/kis_small_color_widget.cc b/plugins/dockers/smallcolorselector/kis_small_color_widget.cc
index 0a1166cffe..2262adfcc3 100644
--- a/plugins/dockers/smallcolorselector/kis_small_color_widget.cc
+++ b/plugins/dockers/smallcolorselector/kis_small_color_widget.cc
@@ -67,14 +67,15 @@ struct KisSmallColorWidget::Private {
if (!result || result->colorModelId() != RGBAColorModelID) {
result = outputColorSpace();
- } else if (result->colorDepthId() != Float32BitsColorDepthID) {
+ }
+ else if (result && result->colorDepthId() != Float32BitsColorDepthID) {
result = KoColorSpaceRegistry::instance()->
colorSpace(RGBAColorModelID.id(), Float32BitsColorDepthID.id(), result->profile());
}
// PQ color space we deliniearize into linear one
- if (result->colorModelId() == RGBAColorModelID &&
- result->profile()->uniqueId() == KoColorSpaceRegistry::instance()->p2020PQProfile()->uniqueId()) {
+ if (result && result->colorModelId() == RGBAColorModelID &&
+ result->profile()->uniqueId() == KoColorSpaceRegistry::instance()->p2020PQProfile()->uniqueId()) {
result = KoColorSpaceRegistry::instance()->
colorSpace(RGBAColorModelID.id(), Float32BitsColorDepthID.id(),
lines 1-23/23 (END)
Git commit 20a79f6d1225c8172c35428d5c33544df6de12c5 by Halla Rempt. Committed on 12/01/2021 at 13:34. Pushed by rempt into branch 'master'. M +2 -3 plugins/dockers/smallcolorselector/kis_small_color_widget.cc https://invent.kde.org/graphics/krita/commit/20a79f6d1225c8172c35428d5c33544df6de12c5 Git commit 1dde6b83db631c30f9f65168289732b2186ad7bb by Halla Rempt. Committed on 12/01/2021 at 13:35. Pushed by rempt into branch 'krita/4.3'. (cherry picked from commit 20a79f6d1225c8172c35428d5c33544df6de12c5) M +2 -3 plugins/dockers/smallcolorselector/kis_small_color_widget.cc https://invent.kde.org/graphics/krita/commit/1dde6b83db631c30f9f65168289732b2186ad7bb |