Bug 459233 - Plasmashell crashed in ImageColors::generatePalette() when turning on/off monitor
Summary: Plasmashell crashed in ImageColors::generatePalette() when turning on/off mon...
Status: RESOLVED FIXED
Alias: None
Product: frameworks-kirigami
Classification: Frameworks and Libraries
Component: general (other bugs)
Version First Reported In: Master
Platform: Other Linux
: NOR crash
Target Milestone: 1.0
Assignee: kdelibs bugs
URL:
Keywords: regression
Depends on:
Blocks:
 
Reported: 2022-09-16 17:32 UTC by postix
Modified: 2022-12-29 12:01 UTC (History)
5 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments
backtrace full (8.36 KB, text/plain)
2022-09-16 17:32 UTC, postix
Details
Wallpaper of (c) (27.28 KB, image/jpeg)
2022-09-17 10:12 UTC, postix
Details

Note You need to log in before you can comment on or make changes to this bug.
Description postix 2022-09-16 17:32:45 UTC
Created attachment 152125 [details]
backtrace full

SUMMARY

```
0  QImage::pixel(int, int) const (this=<optimized out>, x=<optimized out>, y=<optimized out>) at image/qimage.cpp:2408
#1  0x00007feefbecd8a5 in QImage::pixelColor(int, int) const (this=0x1719d10, x=<optimized out>, y=52) at image/qimage.cpp:2591
#2  0x00007fee5ac8eb27 in ImageColors::generatePalette(QImage const&) const (this=0x1719cc0, sourceImage=...) at /home/mh/Development/kde/src/frameworks/kirigami/src/imagecolors.cpp:235
#3  0x00007fee5ac8e4cb in operator()() const (__closure=0x54eccd0) at /home/mh/Development/kde/src/frameworks/kirigami/src/imagecolors.cpp:148
#4  0x00007fee5ac93813 in QtConcurrent::StoredFunctorCall0<ImageData, ImageColors::update()::<lambda()>::<lambda()> >::runFunctor(void) (this=0x54ecc30) at /usr/include/qt5/QtConcurrent/qtconcurrentstoredfunctioncall.h:60
#5  0x00007fee5ac98f22 in QtConcurrent::RunFunctionTask<ImageData>::run() (this=0x54ecc30) at /usr/include/qt5/QtConcurrent/qtconcurrentrunbase.h:108
#6  0x00007feefb83f411 in QThreadPoolThread::run() (this=0x7fee48005bb0) at thread/qthreadpool.cpp:100
#7  0x00007feefb83be6d in QThreadPrivate::start(void*) (arg=0x7fee48005bb0) at thread/qthread_unix.cpp:331
#8  0x00007feefb2ab9b7 in start_thread (arg=<optimized out>) at pthread_create.c:442
#9  0x00007feefb3320f0 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
```


SOFTWARE/OS VERSIONS
Operating System: openSUSE Tumbleweed 20220914
KDE Plasma Version: 5.26.80
KDE Frameworks Version: 5.98.0
Qt Version: 5.15.5
Kernel Version: 5.19.8-1-default (64-bit)
Graphics Platform: Wayland
Graphics Processor: AMD Radeon RX 580 Series
Comment 1 Nate Graham 2022-09-16 21:18:48 UTC
Full data:

#7  0x00007fbb04e6ab27 in ImageColors::generatePalette(QImage const&) const (this=0x74ef660, sourceImage=...) at /home/mh/Development/kde/src/frameworks/kirigami/src/imagecolors.cpp:235
        rgb = 0
        y = 140
        x = 240
        imageData = {m_samples = {<QListSpecialMethods<unsigned int>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = std::atomic<int> = { -1 }}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7fbb99ca9690 <QListData::shared_null>}, d = 0x7fbb99ca9690 <QListData::shared_null>}}, m_clusters = {<QListSpecialMethods<ImageData::colorStat>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = std::atomic<int> = { -1 }}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7fbb99ca9690 <QListData::shared_null>}, d = 0x7fbb99ca9690 <QListData::shared_null>}}, m_palette = {<QListSpecialMethods<QVariant>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = std::atomic<int> = { -1 }}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7fbb99ca9690 <QListData::shared_null>}, d = 0x7fbb99ca9690 <QListData::shared_null>}}, m_darkPalette = true, m_dominant = {cspec = QColor::Rgb, ct = {argb = {alpha = 0, red = 0, green = 0, blue = 0, pad = 0}, ahsv = {alpha = 0, hue = 0, saturation = 0, value = 0, pad = 0}, acmyk = {alpha = 0, cyan = 0, magenta = 0, yellow = 0, black = 0}, ahsl = {alpha = 0, hue = 0, saturation = 0, lightness = 0, pad = 0}, argbExtended = {alphaF16 = 0, redF16 = 0, greenF16 = 0, blueF16 = 0, pad = 0}, array = {0, 0, 0, 0, 0}}}, m_dominantContrast = {cspec = QColor::Invalid, ct = {argb = {alpha = 65535, red = 0, green = 0, blue = 0, pad = 0}, ahsv = {alpha = 65535, hue = 0, saturation = 0, value = 0, pad = 0}, acmyk = {alpha = 65535, cyan = 0, magenta = 0, yellow = 0, black = 0}, ahsl = {alpha = 65535, hue = 0, saturation = 0, lightness = 0, pad = 0}, argbExtended = {alphaF16 = 65535, redF16 = 0, greenF16 = 0, blueF16 = 0, pad = 0}, array = {65535, 0, 0, 0, 0}}}, m_average = {cspec = QColor::Invalid, ct = {argb = {alpha = 65535, red = 0, green = 0, blue = 0, pad = 0}, ahsv = {alpha = 65535, hue = 0, saturation = 0, value = 0, pad = 0}, acmyk = {alpha = 65535, cyan = 0, magenta = 0, yellow = 0, black = 0}, ahsl = {alpha = 65535, hue = 0, saturation = 0, lightness = 0, pad = 0}, argbExtended = {alphaF16 = 65535, redF16 = 0, greenF16 = 0, blueF16 = 0, pad = 0}, array = {65535, 0, 0, 0, 0}}}, m_highlight = {cspec = QColor::Invalid, ct = {argb = {alpha = 65535, red = 0, green = 0, blue = 0, pad = 0}, ahsv = {alpha = 65535, hue = 0, saturation = 0, value = 0, pad = 0}, acmyk = {alpha = 65535, cyan = 0, magenta = 0, yellow = 0, black = 0}, ahsl = {alpha = 65535, hue = 0, saturation = 0, lightness = 0, pad = 0}, argbExtended = {alphaF16 = 65535, redF16 = 0, greenF16 = 0, blueF16 = 0, pad = 0}, array = {65535, 0, 0, 0, 0}}}, m_closestToBlack = {cspec = QColor::Invalid, ct = {argb = {alpha = 65535, red = 0, green = 0, blue = 0, pad = 0}, ahsv = {alpha = 65535, hue = 0, saturation = 0, value = 0, pad = 0}, acmyk = {alpha = 65535, cyan = 0, magenta = 0, yellow = 0, black = 0}, ahsl = {alpha = 65535, hue = 0, saturation = 0, lightness = 0, pad = 0}, argbExtended = {alphaF16 = 65535, redF16 = 0, greenF16 = 0, blueF16 = 0, pad = 0}, array = {65535, 0, 0, 0, 0}}}, m_closestToWhite = {cspec = QColor::Invalid, ct = {argb = {alpha = 65535, red = 0, green = 0, blue = 0, pad = 0}, ahsv = {alpha = 65535, hue = 0, saturation = 0, value = 0, pad = 0}, acmyk = {alpha = 65535, cyan = 0, magenta = 0, yellow = 0, black = 0}, ahsl = {alpha = 65535, hue = 0, saturation = 0, lightness = 0, pad = 0}, argbExtended = {alphaF16 = 65535, redF16 = 0, greenF16 = 0, blueF16 = 0, pad = 0}, array = {65535, 0, 0, 0, 0}}}}
        sampleColor = {cspec = QColor::Rgb, ct = {argb = {alpha = 0, red = 0, green = 0, blue = 0, pad = 0}, ahsv = {alpha = 0, hue = 0, saturation = 0, value = 0, pad = 0}, acmyk = {alpha = 0, cyan = 0, magenta = 0, yellow = 0, black = 0}, ahsl = {alpha = 0, hue = 0, saturation = 0, lightness = 0, pad = 0}, argbExtended = {alphaF16 = 0, redF16 = 0, greenF16 = 0, blueF16 = 0, pad = 0}, array = {0, 0, 0, 0, 0}}}
        r = 0
        g = 0
        b = 0
        c = 0
        sourceIt = {i = 0x0}
        itemsToDelete = std::vector of length 0, capacity 0
        first = false
#8  0x00007fbb04e6a4cb in operator()() const (__closure=0xad16e60) at /home/mh/Development/kde/src/frameworks/kirigami/src/imagecolors.cpp:148
        this = 0x74ef660
        future = {d = {<QFutureInterfaceBase> = {_vptr.QFutureInterfaceBase = 0x3, d = 0x1}, <No data fields>}}
        this = Python Exception <class 'gdb.MemoryError'>: Cannot access memory at address 0x0



What kind of wallpaper do you have on that monitor?
Comment 2 postix 2022-09-17 10:12:00 UTC
Created attachment 152146 [details]
Wallpaper  of (c)

> What kind of wallpaper do you have on that monitor?

When it crashed I had three monitors up and running: 
(a) HDMI, 2k@100%
(b) DP, 4k@200%, primary
(c) HDMI, 2k@100%

I had unplugged the monitor (c). Please find the wallpaper attached: It's basically black, with some small astronaut in the center.
Comment 3 Nate Graham 2022-09-19 21:13:56 UTC
What about for the primary screen? Id's only supposed to look at that one.
Comment 4 Fushan Wen 2022-12-29 04:48:50 UTC
Isn't the bug fixed now?
Comment 5 postix 2022-12-29 12:01:48 UTC
(In reply to Fushan Wen from comment #4)
> Isn't the bug fixed now?

Haven't seen it recently, thus I'll close it. Thanks for the reminder.