Scroll Version:
scroll version 1.12.20-1.fc44 (Fedora 44, AMD x86-64)
Debug Log:
Omitted. The provided full GDB backtrace captures the exact assertion failure in wlr_scene_buffer_set_opacity.
Configuration File:
https://gist.github.com/g-lpm/3e998e0ef906bd40db76afa0532ba1dd
Stack Trace:
Core was generated by `/usr/bin/scroll'.
Program terminated with signal SIGABRT, Aborted.
#0 __pthread_kill_implementation (threadid=, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1 0x00007f3a9dad4d93 in __pthread_kill_internal (threadid=, signo=6) at pthread_kill.c:89
#2 0x00007f3a9da79e8e in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3 0x00007f3a9da617b3 in __GI_abort () at abort.c:77
#4 0x00007f3a9da62804 in __libc_message_impl (vma_name=vma_name@entry=0x7f3a9dc13ea3 "glibc: assert", fmt=) at ../sysdeps/posix/libc_fatal.c:138
#5 0x00007f3a9da71d45 in __libc_message_wrapper (vmaname=0x7f3a9dc13ea3 "glibc: assert", fmt=) at ../include/stdio.h:203
#6 __assert_fail (assertion=0x55a50e9a55ed "opacity >= 0 && opacity <= 1", file=0x55a50e99f078 "types/scene/wlr_scene.c", line=, function=) at assert.c:37
#7 0x000055a50e84a4a6 in wlr_scene_buffer_set_opacity[cold] ()
#8 0x000055a50e87343d in output_configure_scene.part ()
#14 0x000055a50e874b77 in animate_container.constprop.0.isra ()
#15 0x000055a50e875018 in animate_children.part ()
#17 0x000055a50e87553a in animate_output ()
#18 0x000055a50e875833 in animate_root.lto_priv ()
#19 0x000055a50e8dff87 in animate.lto_priv ()
#20 0x000055a50e933945 in wlr_scene_output_build_state ()
#21 0x000055a50e8735e0 in output_repaint_timer_handler.part ()
Description:
Since updating to scroll 1.12.20-1 on Fedora 44, the compositor consistently crashes with a SIGABRT during window animations.
The backtrace indicates an assertion failure triggered by wlroots (opacity >= 0 && opacity <= 1 inside types/scene/wlr_scene.c). Scroll's animation engine (specifically inside animate_container and animate_children) appears to be calculating an out-of-bounds opacity value and passing it to wlr_scene_buffer_set_opacity, causing the compositor to abort.
Steps to reproduce:
Boot into a system running scroll 1.12.20-1.
Ensure window animations (e.g., fading) are enabled in the configuration.
Trigger an animation (opening/closing a window, switching workspaces).
The compositor immediately crashes to sddm.
Setting animations to 0/none in the configuration successfully prevents the crash.
Scroll Version:
scroll version 1.12.20-1.fc44 (Fedora 44, AMD x86-64)
Debug Log:
Omitted. The provided full GDB backtrace captures the exact assertion failure in wlr_scene_buffer_set_opacity.
Configuration File:
https://gist.github.com/g-lpm/3e998e0ef906bd40db76afa0532ba1dd
Stack Trace:
Core was generated by `/usr/bin/scroll'.
Program terminated with signal SIGABRT, Aborted.
#0 __pthread_kill_implementation (threadid=, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1 0x00007f3a9dad4d93 in __pthread_kill_internal (threadid=, signo=6) at pthread_kill.c:89
#2 0x00007f3a9da79e8e in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3 0x00007f3a9da617b3 in __GI_abort () at abort.c:77
#4 0x00007f3a9da62804 in __libc_message_impl (vma_name=vma_name@entry=0x7f3a9dc13ea3 "glibc: assert", fmt=) at ../sysdeps/posix/libc_fatal.c:138
#5 0x00007f3a9da71d45 in __libc_message_wrapper (vmaname=0x7f3a9dc13ea3 "glibc: assert", fmt=) at ../include/stdio.h:203
#6 __assert_fail (assertion=0x55a50e9a55ed "opacity >= 0 && opacity <= 1", file=0x55a50e99f078 "types/scene/wlr_scene.c", line=, function=) at assert.c:37
#7 0x000055a50e84a4a6 in wlr_scene_buffer_set_opacity[cold] ()
#8 0x000055a50e87343d in output_configure_scene.part ()
#14 0x000055a50e874b77 in animate_container.constprop.0.isra ()
#15 0x000055a50e875018 in animate_children.part ()
#17 0x000055a50e87553a in animate_output ()
#18 0x000055a50e875833 in animate_root.lto_priv ()
#19 0x000055a50e8dff87 in animate.lto_priv ()
#20 0x000055a50e933945 in wlr_scene_output_build_state ()
#21 0x000055a50e8735e0 in output_repaint_timer_handler.part ()
Description:
Since updating to scroll 1.12.20-1 on Fedora 44, the compositor consistently crashes with a SIGABRT during window animations.
The backtrace indicates an assertion failure triggered by wlroots (opacity >= 0 && opacity <= 1 inside types/scene/wlr_scene.c). Scroll's animation engine (specifically inside animate_container and animate_children) appears to be calculating an out-of-bounds opacity value and passing it to wlr_scene_buffer_set_opacity, causing the compositor to abort.
Steps to reproduce:
Setting animations to 0/none in the configuration successfully prevents the crash.