Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nemo freezes on folders that have a large GIF file in them #2756

Open
nick-s-b opened this issue Jun 4, 2021 · 10 comments
Open

Nemo freezes on folders that have a large GIF file in them #2756

nick-s-b opened this issue Jun 4, 2021 · 10 comments
Labels

Comments

@nick-s-b
Copy link

nick-s-b commented Jun 4, 2021

 * Nemo version (nemo --version)
 nemo 4.8.5
ffmpegthumbnailer 2.2.2-2

 * Is issue with desktop or windowed nemo?
 Windowed
 * Distribution - (Mint 17.2, Arch, Fedora 25, etc...)
 Arch
 * Graphics hardware *and* driver used
 Nvidia 1080, nvidia driver 465.31
 * 32 or 64 bit
 * 64-bit

Issue
When entering a folder with a large (~10MB) GIF file, nemo freezes for 10s or so and maxes out one of the cores. It's completely unresponsive and you can't click on anything. After ~10s, it goes back to normal.
However, if you navigate out of that folder and navigate back into it, it will freeze for another ~10s again.

Steps to reproduce

$ killall nemo
$ mkdir /tmp/gif ; cd /tmp/gif ; curl https://i.imgur.com/7b6GlNk.gif -o test.gif
$ nemo --debug .

Note that the thumbnail of the GIF file is immediately shown so this is not a thumbnailer issue. And even if it was a thumbnailer that's misbehaving and blocking, it should not lock-up nemo anyway. My default view is List View.

Expected behaviour
Don't freeze.

Other information
Debug log of nemo opening the folder with a large gif and freezing and a debug log of nemo opening an empty folder are identical. So this debug log is probably useless. But it's here anyway.

Click to expand!
$ nemo --debug .
(nemo:1146408): GLib-DEBUG: 02:12:54.952: unsetenv() is not thread-safe and should not be used after threads are created
(nemo:1146408): Gtk-DEBUG: 02:12:54.952: Connecting to session manager
(nemo:1146408): Gtk-DEBUG: 02:12:54.952: Failed to get the GNOME screensaver proxy: The name org.gnome.ScreenSaver is not owned
(nemo:1146408): Gtk-DEBUG: 02:12:54.952: Registering client 'org.Nemo' ''
(nemo:1146408): Gtk-DEBUG: 02:12:54.953: Registered client at '/org/gnome/SessionManager/Client1840'
(nemo:1146408): GLib-GIO-DEBUG: 02:12:54.956: _g_io_module_get_default: Found default implementation dconf (DConfSettingsBackend) for ‘gsettings-backend’
(nemo:1146408): dconf-DEBUG: 02:12:54.956: watch_fast: "/org/nemo/preferences/" (establishing: 0, active: 0)
(nemo:1146408): dconf-DEBUG: 02:12:54.956: watch_fast: "/org/nemo/window-state/" (establishing: 0, active: 0)
(nemo:1146408): dconf-DEBUG: 02:12:54.956: watch_fast: "/org/nemo/icon-view/" (establishing: 0, active: 0)
(nemo:1146408): dconf-DEBUG: 02:12:54.956: watch_fast: "/org/nemo/list-view/" (establishing: 0, active: 0)
(nemo:1146408): dconf-DEBUG: 02:12:54.956: watch_fast: "/org/nemo/compact-view/" (establishing: 0, active: 0)
(nemo:1146408): dconf-DEBUG: 02:12:54.956: watch_fast: "/org/nemo/desktop/" (establishing: 0, active: 0)
(nemo:1146408): dconf-DEBUG: 02:12:54.956: watch_fast: "/org/nemo/sidebar-panels/tree/" (establishing: 0, active: 0)
(nemo:1146408): dconf-DEBUG: 02:12:54.956: watch_fast: "/org/nemo/plugins/" (establishing: 0, active: 0)
(nemo:1146408): dconf-DEBUG: 02:12:54.956: watch_fast: "/org/nemo/preferences/menu-config/" (establishing: 0, active: 0)
(nemo:1146408): dconf-DEBUG: 02:12:54.956: watch_fast: "/org/cinnamon/desktop/lockdown/" (establishing: 0, active: 0)
(nemo:1146408): dconf-DEBUG: 02:12:54.956: watch_fast: "/org/cinnamon/desktop/background/" (establishing: 0, active: 0)
(nemo:1146408): dconf-DEBUG: 02:12:54.956: watch_fast: "/org/cinnamon/desktop/media-handling/" (establishing: 0, active: 0)
(nemo:1146408): dconf-DEBUG: 02:12:54.956: watch_fast: "/org/cinnamon/desktop/applications/terminal/" (establishing: 0, active: 0)
(nemo:1146408): dconf-DEBUG: 02:12:54.956: watch_fast: "/org/cinnamon/desktop/privacy/" (establishing: 0, active: 0)
(nemo:1146408): dconf-DEBUG: 02:12:54.956: watch_fast: "/org/cinnamon/desktop/interface/" (establishing: 0, active: 0)
(nemo:1146408): dconf-DEBUG: 02:12:54.956: watch_established: "/org/nemo/preferences/" (establishing: 1)
(nemo:1146408): dconf-DEBUG: 02:12:54.957: watch_established: "/org/nemo/window-state/" (establishing: 1)
(nemo:1146408): dconf-DEBUG: 02:12:54.957: watch_established: "/org/nemo/icon-view/" (establishing: 1)
(nemo:1146408): dconf-DEBUG: 02:12:54.957: watch_established: "/org/nemo/list-view/" (establishing: 1)
(nemo:1146408): dconf-DEBUG: 02:12:54.957: watch_established: "/org/nemo/compact-view/" (establishing: 1)
(nemo:1146408): dconf-DEBUG: 02:12:54.957: watch_established: "/org/nemo/desktop/" (establishing: 1)
(nemo:1146408): dconf-DEBUG: 02:12:54.957: watch_established: "/org/nemo/sidebar-panels/tree/" (establishing: 1)
(nemo:1146408): dconf-DEBUG: 02:12:54.957: watch_established: "/org/nemo/plugins/" (establishing: 1)
(nemo:1146408): dconf-DEBUG: 02:12:54.957: watch_established: "/org/nemo/preferences/menu-config/" (establishing: 1)
(nemo:1146408): dconf-DEBUG: 02:12:54.957: watch_established: "/org/cinnamon/desktop/lockdown/" (establishing: 1)
(nemo:1146408): dconf-DEBUG: 02:12:54.957: watch_established: "/org/cinnamon/desktop/background/" (establishing: 1)
(nemo:1146408): dconf-DEBUG: 02:12:54.957: watch_established: "/org/cinnamon/desktop/media-handling/" (establishing: 1)
(nemo:1146408): dconf-DEBUG: 02:12:54.957: watch_established: "/org/cinnamon/desktop/applications/terminal/" (establishing: 1)
(nemo:1146408): dconf-DEBUG: 02:12:54.957: watch_established: "/org/cinnamon/desktop/privacy/" (establishing: 1)
(nemo:1146408): dconf-DEBUG: 02:12:54.957: watch_established: "/org/cinnamon/desktop/interface/" (establishing: 1)
(nemo:1146408): GLib-DEBUG: 02:12:54.984: setenv()/putenv() are not thread-safe and should not be used after threads are created
(nemo:1146408): dconf-DEBUG: 02:12:55.017: watch_fast: "/org/nemo/extensions/nemo-terminal/" (establishing: 0, active: 0)
(nemo:1146408): dconf-DEBUG: 02:12:55.017: watch_established: "/org/nemo/extensions/nemo-terminal/" (establishing: 1)
(nemo:1146408): dconf-DEBUG: 02:12:55.020: unwatch_fast: "/org/nemo/extensions/nemo-terminal/" (active: 1, establishing: 0)
** (nemo:1146408): DEBUG: 02:12:55.024: Open called on the GApplication instance; 1 files
(nemo:1146408): XApp-DEBUG: 02:12:55.092: XAppFavorites: init:
(nemo:1146408): dconf-DEBUG: 02:12:55.092: watch_fast: "/org/x/apps/favorites/" (establishing: 0, active: 0)
(nemo:1146408): XApp-DEBUG: 02:12:55.092: XAppFavorites: load_favorite: favorites loaded (0)
(nemo:1146408): dconf-DEBUG: 02:12:55.092: watch_established: "/org/x/apps/favorites/" (establishing: 1)
(nemo:1146408): XApp-DEBUG: 02:12:55.092: XAppFavorites: get_n_favorites returning number of items: 0.
(nemo:1146408): dconf-DEBUG: 02:12:55.093: change_fast
(nemo:1146408): XApp-DEBUG: 02:12:55.101: XAppFavorites: get_n_favorites returning number of items: 0.

Note: this is not a new bug. I've experienced it for a while now (years?) but I finally figured out what was causing it.
Note 2: I believe that this is not the same bug as #2605 and the workaround, namely setting the "Icon Captions" to "None", does not fix the issue for me.

@Jeremy7701
Copy link
Contributor

Tried it - didn't experience any noticeable delay.
On your debug log it goes from

02:12:54.952: Registering client 'org.Nemo' '' to
02:12:55.101: XAppFavorites: get_n_favorites returning number of items: 0.

This is only 0.15 seconds...

@mtwebster
Copy link
Member

Hi, do you have any plugins enabled? If so, try disabling all extensions and actions temporarily to see if anything like that could be causing it. I don't appear to have any issue either with this file.

@nick-s-b
Copy link
Author

nick-s-b commented Jun 4, 2021

@Jeremy7701 Yes, but I still can't click on anything for 10s or so.
@mtwebster Michael, I only have Fileroller enabled. I just disabled it and restarted nemo. I get the same exact behavior as above. nemo pops-up a window and the folder displays a thumbnail of the file but I can't click on the test.gif at all. It's all frozen for ~5-10s. It's baffling to me.

Here are all my nemo settings:

org.nemo.preferences.menu-config selection-menu-make-link false
org.nemo.preferences.menu-config selection-menu-open-as-root true
org.nemo.preferences.menu-config selection-menu-scripts true
org.nemo.preferences.menu-config background-menu-show-hidden-files true
org.nemo.preferences.menu-config selection-menu-duplicate true
org.nemo.preferences.menu-config background-menu-paste true
org.nemo.preferences.menu-config selection-menu-pin true
org.nemo.preferences.menu-config selection-menu-open-in-new-window true
org.nemo.preferences.menu-config iconview-menu-organize-by-name true
org.nemo.preferences.menu-config desktop-menu-customize true
org.nemo.preferences.menu-config selection-menu-copy-to true
org.nemo.preferences.menu-config selection-menu-open true
org.nemo.preferences.menu-config background-menu-scripts true
org.nemo.preferences.menu-config background-menu-create-new-folder true
org.nemo.preferences.menu-config selection-menu-move-to true
org.nemo.preferences.menu-config background-menu-properties true
org.nemo.preferences.menu-config selection-menu-cut true
org.nemo.preferences.menu-config selection-menu-copy true
org.nemo.preferences.menu-config selection-menu-favorite true
org.nemo.preferences.menu-config selection-menu-move-to-trash true
org.nemo.preferences.menu-config selection-menu-rename true
org.nemo.preferences.menu-config iconview-menu-arrange-items true
org.nemo.preferences.menu-config background-menu-open-as-root true
org.nemo.preferences.menu-config background-menu-open-in-terminal true
org.nemo.preferences.menu-config selection-menu-open-in-new-tab true
org.nemo.preferences.menu-config selection-menu-paste true
org.nemo.preferences.menu-config selection-menu-properties true
org.nemo.preferences.menu-config selection-menu-open-in-terminal true

@Jeremy7701
Copy link
Contributor

I have most plugins enabled and I still have the big GIF so I created an empty directory, and I can click on the two items without delay, instant play of the GIF [both preview and double-click] it even plays full-screen! I can change window focus without delay.

I tried a couple of times...

@mtwebster
Copy link
Member

@nick-s-b Can you try this on a new/different user account?

@icarter09 icarter09 added the BUG label Jul 17, 2021
@Fantu
Copy link
Contributor

Fantu commented Oct 19, 2021

on debian bugtracker seems reported the same issue:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=996805
about thumbnail there are other issues, @mtwebster about your PR testing a possible rebase in cinnamon-desktop thumbnail part (#2292) is there any news?

@nick-s-b
Copy link
Author

nemo 5.0.3-1

Hi,

I just retested this issue and it's still giving me the same issue: nemo freezes for 20-30 seconds or so and one core of my CPU is maxed out. The Debian bug submitter tested it on a 12 core Ryzen and I have an older 8 core Intel i7 CPU. So it's not a CPU-specific issue. I also cannot reproduce it in a VM. Debian submitter is obviously on Debian and I'm on Arch so it's not a distro related issue either.

Could this be related to a thumbnailer? I have these installed:

ffmpegthumbnailer 2.2.2-2
gnome-epub-thumbnailer 1.6-2
raw-thumbnailer 0.2.1-7
webp-thumbnailer 0.0.2-7

Screenshot at 2021-10-19 22-02-06-fs8

If there's anything I can do to help narrow this down, please let me know with your ideas. Thanks!

@Fantu
Copy link
Contributor

Fantu commented Oct 22, 2021

the user that report this on debian have found the cause and a solution: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=996805#10
I don't have time to check better now but he has it found is a regression with gdk-pixbuf 2.42 probably is better check it if better fix is possible

@nick-s-b
Copy link
Author

@Fantu Thank you for letting me know! I applied the patch and now nemo doesn't freeze anymore. Hopefully the patch makes it into the main branch.

mtwebster added a commit that referenced this issue Oct 22, 2021
pixbuf loader all at once.

Ref: #2756

Thanks to Johan Croft <jcdebian@protonmail.ch> for discovering
a fix:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=996805#10
@mtwebster
Copy link
Member

I just pushed a fix based on the one mentioned above. As I couldn't reproduce this issue in the first place, I'll leave the bug open until someone has an opportunity to confirm that it's fixed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants