zzag / plasma5-wallpapers-dynamic

Dynamic wallpaper plugin for KDE Plasma
328 stars 18 forks source link

plugin crashes plasmashell when using a wallpaper built by kdynamicwallpaperbuilder #92

Closed subpop closed 2 years ago

subpop commented 2 years ago

On Fedora 35, I installed the RPMs from the proposed update, attempted to use a wallpaper I created with kdynamicwallpaperbuilder, and it crashes plasmashell.

Steps to Reproduce

  1. Install plasma-wallpapers-dynamic-4.0.0~git20220327.ca7b129-1 and plasma-wallpapers-dynamic-builder-4.0.0~git20220327.ca7b129-1
  2. Create an AVIF wallpaper using the files in fedora-key-dynamic-wallpaper: kdynamicwallpaperbuilder --output f36-dynamic.avif metadata.json
  3. Open the "Configure Desktop and Wallpaper" window.
  4. Add the newly generated wallpaper using the selection dialog.

Expected Results

The window remains open and the newly added wallpaper can be selected.

Actual Results

The window remains opens for a moment, then crashes. The following snippet from the journal seems relevant:

Mar 27 22:01:21 thinkpad plasmashell[13864]: QUnifiedTimer::stopAnimationDriver: driver is not running
Mar 27 22:01:22 thinkpad plasmashell[13864]: QImage::scaled: Image is a null image
Mar 27 22:01:22 thinkpad plasmashell[13864]: KCrash: Application 'plasmashell' crashing...
zzag commented 2 years ago
0x00007fff89755157 in blend (dark=..., light=..., delta=0.5) at /home/vlad/GitHub/plasma5-wallpapers-dynamic/src/declarative/dynamicwallpaperpreviewjob.cpp:83
83                  *(out++) = blend(*(in0++), *(in1++), blendFactorTable[j]);
(gdb) bt
#0  0x00007fff89755157 in blend(QImage const&, QImage const&, qreal) (dark=..., light=..., delta=0.5)
    at /home/vlad/GitHub/plasma5-wallpapers-dynamic/src/declarative/dynamicwallpaperpreviewjob.cpp:83
#1  0x00007fff897555cb in makePreview(QString const&, QSize const&) (fileName=..., size=...)
    at /home/vlad/GitHub/plasma5-wallpapers-dynamic/src/declarative/dynamicwallpaperpreviewjob.cpp:133
#2  0x00007fff89756cf0 in QtConcurrent::StoredFunctorCall2<DynamicWallpaperImageAsyncResult, DynamicWallpaperImageAsyncResult (*)(QString const&, QSize const&), QString, QSize>::runFunctor() (this=0x7fff30003370)
    at /data/projects/src/qt5/qtbase/src/concurrent/qtconcurrentstoredfunctioncall.h:784
#3  0x00007fff8974dcb4 in QtConcurrent::RunFunctionTask<DynamicWallpaperImageAsyncResult>::run() (this=0x7fff30003370)
    at /data/projects/src/qt5/qtbase/src/concurrent/qtconcurrentrunbase.h:108
#4  0x00007ffff3e5cdb9 in QThreadPoolThread::run() (this=0x7fff7801a180) at thread/qthreadpool.cpp:100
#5  0x00007ffff3e5659f in QThreadPrivate::start(void*) (arg=0x7fff7801a180) at thread/qthread_unix.cpp:331
#6  0x00007ffff38e25c2 in start_thread () at /usr/lib/libc.so.6
#7  0x00007ffff3967584 in clone () at /usr/lib/libc.so.6