Bug#1079580: gnome-control-center: Appearance tab cause out-of-memory

Bernhard Übelacker bernhardu at mailbox.org
Thu Sep 12 00:14:41 BST 2024


On Sat, 24 Aug 2024 22:39:30 +0200 Roland Clobus <rclobus at rclobus.nl> wrote:
> Package: gnome-control-center
> Version: 1:46.4-1
> Severity: normal
> X-Debbugs-Cc: phil at hands.com
> User: debian-qa at lists.debian.org
> Usertags: openqa
> 
> Hello maintainers of gnome-control-center,
> 
> As seen on the automatic openQA tests, the tab 'Appearance' causes an 
> out-of-memory and will result in the gnome-control-center being killed 
> by oomkiller.
> 
> To reproduce:
> * Go to the openQA test https://openqa.debian.net/tests/297746
> * In the tab 'Logs & Assets' the ISO image can be downloaded
> * Use this image in qemu with 2GB memory assigned
> * Wait until the load is below 1.0
> * Start 'Settings' in GNOME
> * Navigate to the 'Appearance' tab
> -> After a while the oomkiller will end gnome-control-center
> 
> I've verified that with 3GB memory this issue will not appear
> (https://openqa.debian.net/tests/297878)
> 
> Attached is the section from `journalctl` which shows oomkiller.
> 
> With kind regards,
> Roland Clobus



Dear Maintainer,
I tried to get some more info about this issue.

When booting up a current weekly gnome live iso [1] I found
a VM with 2 GB memory seems already using quite a big part, due to htop.

If using a VM with more memory and targetting heaptrack memory profiler to it,
it shows a peak of used memory in the backtrace in [2].
This seems to point to the generation of the wallpaper thumbnails,
and consumes noticeable time.
This time is not taken on following runs, except the
directory /home/user/.cache/thumbnails is removed.

In upstream bugtracker were some discussions about wallpaper thumbnail
generation performance in [3], but mostly about cpu or time usage, not memory usage.
These sound also like this might probably just show up in environments
with limited hardware graphics acceleration.


As the live media have no swap, I wonder if integrating a zram swap
via zram-tools would be an improvement (at least a small one)?

Kind regards,
Bernhard



[1] https://get.debian.org/images/weekly-live-builds/amd64/iso-hybrid/debian-live-testing-amd64-gnome.iso



[2]
     jxl::CacheAligned::Allocate(unsigned long) in libjxl.so.0.9
     jxl::AllocateArray in libjxl.so.0.9
     jxl::PlaneBase::PlaneBase(unsigned long, unsigned long, unsigned long) in libjxl.so.0.9
     jxl::Plane<unsigned char>::Plane(unsigned long, unsigned long) in libjxl.so.0.9
     jxl::AcStrategyImage::AcStrategyImage(unsigned long, unsigned long) in libjxl.so.0.9
     jxl::InitializePassesSharedState(jxl::FrameHeader const&, jxl::PassesSharedState*, bool) in libjxl.so.0.9
     jxl::FrameDecoder::InitFrameOutput() in libjxl.so.0.9
     jxl::JxlDecoderProcessCodestream in libjxl.so.0.9
     JxlDecoderProcessInput::HandleBoxes in libjxl.so.0.9
     JxlDecoderProcessInput in libjxl.so.0.9
     <unresolved function> in libpixbufloader-jxl.so
     <unresolved function> in libgdk_pixbuf-2.0.so.0
     gdk_pixbuf_new_from_file in libgdk_pixbuf-2.0.so.0
     create_thumbnail_for_filename in libgnome-bg-4.so.2
     get_as_thumbnail::get_as_thumbnail in libgnome-bg-4.so.2
     get_as_thumbnail in libgnome-bg-4.so.2
     create_img_thumbnail in libgnome-bg-4.so.2
     gnome_bg_create_thumbnail in libgnome-bg-4.so.2
     cc_background_item_get_frame_thumbnail in gnome-control-center
     cc_background_item_get_thumbnail in gnome-control-center
     update_cache in gnome-control-center
     <unresolved function> in libgobject-2.0.so.0
     g_object_new_valist in libgobject-2.0.so.0
     g_object_new in libgobject-2.0.so.0
     cc_background_paintable_new in gnome-control-center
     create_widget_func in gnome-control-center
     <unresolved function> in libgtk-4.so.1
     g_closure_invoke in libgobject-2.0.so.0
     <unresolved function> in libgobject-2.0.so.0
     <unresolved function> in libgobject-2.0.so.0
     g_signal_emit_valist in libgobject-2.0.so.0
     g_signal_emit in libgobject-2.0.so.0
     g_list_store_insert_sorted in libgio-2.0.so.0
     item_added::load_wallpapers in gnome-control-center
     item_added in gnome-control-center
     g_closure_invoke in libgobject-2.0.so.0
     <unresolved function> in libgobject-2.0.so.0
     <unresolved function> in libgobject-2.0.so.0
     g_signal_emit_valist in libgobject-2.0.so.0
     g_signal_emit in libgobject-2.0.so.0
     idle_emit in gnome-control-center
     <unresolved function> in libglib-2.0.so.0
     <unresolved function> in libglib-2.0.so.0
     g_main_context_iteration in libglib-2.0.so.0
     g_application_run in libgio-2.0.so.0
     main in gnome-control-center


[3]
   https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/3167
   https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2879



More information about the pkg-gnome-maintainers mailing list