Bug#996805: nemo: Freezes when opening a folder that contains a large GIF file
* What led up to the situation?
After Upgrading to Debian 11, opening a folder that contained a big GIF file caused all open Nemo windows to freeze. Opening a single folder with a 10MB GIF causes every opened Nemo window to freeze for about 20 seconds and to use 100% of a processor core on a Ryzen 5900X system. This only happens when using Icon view for the folder in question and only when using the maximum zoom available. It does not happen in List view nor in Compact view nor at smaller zoom levels. It did not happen on Debian 10. The bigger the GIF file the more Nemo takes to unfreeze. I have a directory with a few much bigger GIF files in it and I cannot visit it on my system, while other folders with smaller GIFs take many seconds to load.
* What exactly did you do (or not do) that was effective (or
I tried a clean installation of Debian 11 on a virtual machine to rule out configuration issues with my system, and I was able to reproduce the issue on the VM as well. I also upgraded the VM to testing (which has Nemo 5.0.3), and it seems it is also affected by the issue.
I looked for a solution online and found a Linux Mint bugtracker issue regarding slowdowns when icon captions are enabled, but disabling them did not change anything. It is worth noting however that it is coincidentally at the maximum zoom level that more captions show. There is additionally an issue on their bugtracker describing the same problem I am reporting, reported by an Arch user (see https://github.com/linuxmint/nemo/issues/2756), however it seems the Mint team was unable to reproduce it. I proceeded to make a VM with Linux Mint 20.1 and I could not reproduce the issue either despite the fact that Mint 20.1 ships with the same Nemo version as Debian 11 (Nemo 4.8.6), so it seems this might be an issue with other distributions.
Disabling thumbnails effectively makes the issue disappear. Nemo uses gdk-pixbuf-thumbnailer to generate thumbnails for GIF files, but running the same command Nemo uses to create a thumbnail for a big GIF on the command line exits immediately with success. I attempted to configure ffmpegthumbnailer to be used for GIF files thumbnail generation and it didn't seem to have any effect on Nemo freezing either.
Running nemo --debug on a folder with a large GIF file does not seem to provide any hints. Running strace on nemo in the same conditions shows nemo hangs in a loop calling mmap/mremap, however that's not very helpful. I'm out of ideas on how to debug further. Considering the ease of reproduction and that the logs don't seem to point to anything evident, I'm not including them in this report, but I can include them later on if necessary.
* What was the outcome of this action?
Nothing really worked. The only solution is to dodge the issue by disabling thumbnails or using other view styles or zoom levels.
* What outcome did you expect instead?
The folder with the large GIF file to open in a reasonable amount of time with no system effort.
Test GIFs of different sizes can be generated with ease from any video with ffmpeg (e.g. ffmpeg -t 5 -i <input.mp4> output.gif). Every one I tried caused the same issue.
-- System Information:
Debian Release: 11.1
APT prefers stable-updates
APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'stable')
Architecture: amd64 (x86_64)
Kernel: Linux 5.10.0-9-amd64 (SMP w/2 CPU threads)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages nemo depends on:
ii cinnamon-desktop-data 4.8.1-2
ii desktop-file-utils 0.26-1
ii gsettings-desktop-schemas 3.38.0-2
ii gvfs 1.46.2-1
ii libatk1.0-0 2.36.0-2
ii libc6 2.31-13+deb11u2
ii libcairo-gobject2 1.16.0-5
ii libcairo2 1.16.0-5
ii libcinnamon-desktop4 4.8.1-2
ii libexempi8 2.5.2-1
ii libexif12 0.6.22-3
ii libgail-3-0 3.24.24-4
ii libgdk-pixbuf-2.0-0 2.42.2+dfsg-1
ii libglib2.0-0 2.66.8-1
ii libglib2.0-data 2.66.8-1
ii libgtk-3-0 3.24.24-4
ii libnemo-extension1 4.8.6-2
ii libnotify4 0.7.9-3
ii libpango-1.0-0 1.46.2-3
ii libpangocairo-1.0-0 1.46.2-3
ii libselinux1 3.1-3
ii libx11-6 2:1.7.2-1
ii libxapp1 2.0.7-1
ii libxml2 2.9.10+dfsg-6.7
ii nemo-data 4.8.6-2
ii shared-mime-info 2.0-1
Versions of packages nemo recommends:
ii cinnamon-l10n 4.8.3-1
ii gvfs-backends 1.46.2-1
ii gvfs-fuse 1.46.2-1
ii librsvg2-common 2.50.3+dfsg-1
ii nemo-fileroller 4.8.0-1
Versions of packages nemo suggests:
ii eog 3.38.2-1
ii evince [pdf-viewer] 3.38.2-1
ii totem 3.38.0-2
ii xdg-user-dirs 0.17-2
-- no debconf information