Quoting some docs on the libgnome-desktop thumbnailer,

 * #GnomeDesktopThumbnailFactory also handles failed thumbnails. If a
 * thumbnailer can’t generate a thumbnail for a file (e.g. because the file is
 * corrupt or because the right video codecs aren’t available), it returns a
 * non-zero exit status. The thumbnail factory then writes an entry to
 * <filename><envar>$XDG_CACHE_HOME</envar>/thumbnails/fail/
 * gnome-thumbnail-factory/</filename> which is named after the hash of the
 * input file URI (just like a successful cached thumbnail). For future queries
 * for thumbnails for that file, #GnomeDesktopThumbnailFactory can immediately
 * return an error after looking up the fail entry.
 *
 * If a file changes content, #GnomeDesktopThumbnailFactory will generate a new
 * thumbnail because each cached image has associated metadata (stored as PNG
 * tEXt keys) storing the full URI of the thumbnailed file (to check for hash
 * collisions) and its last modification time at the point of thumbnailing. If
 * the stored modification time doesn’t match the file’s current one, a new
 * thumbnail is generated.

So, in your test scenario, I would expect the thumbnail to update after
adding metadata, since the modification time will have changed. Checking
here, I believe there is a bug.

mkdir test ; cd test
rm -rf ~/.cache/thumbnails/
# simulate a thumbnailing failure
sudo cp -v /usr/share/thumbnailers/{totem.thumbnailer,totem.thumbnailer.bkp}
sudo sed -i 's!^Exec=.*!Exec=false!' /usr/share/thumbnailers/totem.thumbnailer
ffmpeg -f lavfi -i "sine=f=440:d=5" \
       -f lavfi -i "color=c=red:s=600x600" \
       -map 0 -map 1 \
       -c:a aac \
       -c:v mjpeg \
       -frames:v 1 \
       -disposition:v:0 attached_pic \
       test_with_cover.m4a
xdg-open .
# thumbnail failed, will not be shown
$ find ~/.cache/thumbnails/
/home/charles/.cache/thumbnails/
/home/charles/.cache/thumbnails/fail
/home/charles/.cache/thumbnails/fail/gnome-thumbnail-factory
/home/charles/.cache/thumbnails/fail/gnome-thumbnail-factory/94e17c2d132e88a2a4d2d86b4a20bb65.png
$ exiftool -v 
/home/charles/.cache/thumbnails/fail/gnome-thumbnail-factory/94e17c2d132e88a2a4d2d86b4a20bb65.png
 | grep -i mtime
  [adding Thumb::MTime]
  ThumbMTime = 1764842597
$ date -d @1764842597
Thu Dec  4 10:03:17 AM GMT 2025
# restore the thumbnailer
$ sudo cp -v /usr/share/thumbnailers/{totem.thumbnailer.bkp,totem.thumbnailer}
'/usr/share/thumbnailers/totem.thumbnailer.bkp' -> 
'/usr/share/thumbnailers/totem.thumbnailer'
# refresh Nautilus in /test - since mtime + contents hasn't changed, wouldn't 
expect a new thumbnailer
$ touch -m test_with_cover.m4a
$ stat --printf="%y\n%Y\n" test_with_cover.m4a
2025-12-04 10:06:47.064518519 +0000
1764842807
# BUG: Nautilus is not showing a thumbnail, even though mtime is newer than 
failed path, it didn't retry the thumbnailer.
$ rm 
/home/charles/.cache/thumbnails/fail/gnome-thumbnail-factory/94e17c2d132e88a2a4d2d86b4a20bb65.png
# Now the the thumbnail shows up.

I'll look at seeing why this happening and make a patch. Thank you for
the report.


** Changed in: nautilus (Ubuntu)
     Assignee: (unassigned) => Charles (charles05)

** Changed in: nautilus (Ubuntu)
       Status: Incomplete => In Progress

** Summary changed:

- Nautilus does not show embedded album art thumbnails for .m4a files
+ Failed thumbnails are not retried when mtime changes

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2111560

Title:
  Failed thumbnails are not retried when mtime changes

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/nautilus/+bug/2111560/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to