Public bug reported:

localsearch 3.11.0-1ubuntu1.1 on Ubuntu 26.04 (resolute), GNOME Shell
50.1, Wayland, kernel 7.0.0-42-generic, btrfs on NVMe, 61 GB RAM.

WHAT I SEE

$ lsb_release -rd
Description: Ubuntu 26.04 LTS
Release: 26.04

$ apt-cache policy localsearch
  Installed: 3.11.0-1ubuntu1.1
  Candidate: 3.11.0-1ubuntu1.1

With a $HOME containing ~25,000 PDFs (73.6 GB, mostly scanned image-only
documents, a few damaged files and a few files that are not PDFs despite
the .pdf extension) the indexer never reaches idle:

1) The extractor is killed on a new file roughly every 7-8 seconds,
forever:

    12:29:13 localsearch-extractor-3[88712]: Tracker-WARNING **: File 
'file:///home/user/Documents/work/a/scan-110p.pdf' took too long to process. 
Shutting down everything
    12:29:13 localsearch-3[73262]: Extractor subprocess died unexpectedly: 
Child process exited with code 1
    12:29:20 localsearch-extractor-3[89097]: Tracker-WARNING **: File 
'file:///home/user/Documents/work/b/drawing-set-434p.pdf' took too long to 
process. Shutting down everything
    12:29:20 localsearch-3[73262]: Extractor subprocess died unexpectedly: 
Child process exited with code 1

   62 distinct files hit this deadline within about 90 minutes.

2) localsearch-3 holds 6.5 GiB RSS (peak 6.7 GiB) and burns a full core
for over an hour; the service never becomes idle.

3) None of the PDFs end up indexed: ~/.cache/tracker3/files/errors/
accumulates 23,323 entries, roughly the number of PDFs. Each error
entry's message file is empty, so the reason is only visible in the
journal.

4) The database is flagged corrupted twice:

    the previous DB was renamed to files.5736418800 with an empty 
.localsearch.corrupted marker (meta.db 2.1 GB)
    then the freshly rebuilt DB logs:
    12:31:22 localsearch-3[73262]: Error iterating cursor for indexed folder 
'file:///home/user': database disk image is malformed

5) The miner itself also dies with heap corruption:

    10:55:58 localsearch-3[3711]: free(): invalid next size (normal)
    10:56:08 systemd[2705]: localsearch-3.service: Main process exited, 
code=dumped, status=6/ABRT

   Core file: /var/crash/_usr_libexec_localsearch-3.1000.crash (26 MB,
SIGABRT). I can attach it or a backtrace with dbgsym.

WHAT I EXPECTED

Files that consistently fail extraction, or exceed the per-file
deadline, should be skipped after a bounded number of attempts. A single
slow file must not be able to (a) restart the extractor forever, or (b)
leave meta.db corrupted.

WHAT ACTUALLY HAPPENS

task_deadline_cb() treats one slow file as a fatal condition for the
whole extractor: after the fixed DEADLINE_SECONDS it warns and calls
_exit(), and the file then falls through the "extractor crashed" retry
path. On a corpus where slow files are the norm this becomes a permanent
restart loop. Nothing persists "this URI already killed the extractor N
times", DEADLINE_SECONDS is not configurable, and there is no MIME or
size opt-out, so the only user-side mitigation is to stop indexing an
entire file type. The _exit() path also coincides with the meta.db
corruption we observe.

MEASUREMENTS (poppler CLI, run outside the extractor)

  scan-97p.pdf            97 pages, 22.8 MB   -> pdftotext 5.3 s, 97 bytes of 
text (image-only scan)
  drawing-set-434p.pdf   434 pages,  4.4 MB   -> pdftotext 6.2 s, 1.3 MB of text
  damaged.pdf              3.0 MB             -> "Couldn't find trailer 
dictionary" / "Couldn't read xref table"
  not-a-pdf.pdf            0.7 MB             -> "May not be a PDF file" / 
"Illegal character '{'"
  big-book.epub           19.7 MB             -> also hits the deadline

WORKAROUND I APPLIED

Ignoring *.pdf and *.epub through gsettings ignored-files, plus removing
~/.cache/tracker3 and letting it rebuild, brings the machine back to
normal: 221,689 files indexed, indexer idle, RSS 1.2 GiB, no more
deadline loop. PDF search is lost, so this is a workaround and not a
fix.

RELATED

LP #2110914 (localsearch-extractor-3 gets stuck and fills syslog,
Triaged), LP #2150391 (daemon at 18% CPU for 3 days), upstream
gitlab.gnome.org/GNOME/localsearch issues #382 (open), #443 (closed as
Not Actionable), #439 (3.10.2 -> 3.11 regression).

Also: resolute currently carries only 3.11.0-1ubuntu1.1 while resolute-
proposed has 3.11.2-0ubuntu0.1 (built 2026-10-08). I am happy to test
from -proposed if that would help.

** Affects: localsearch (Ubuntu)
     Importance: Undecided
         Status: New

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

Title:
  localsearch-3 livelocks on 25k scanned PDFs, indexes none of them and
  corrupts meta.db twice

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


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

Reply via email to