Probleme beim konsumieren von PDFs

Hi, ich habe paperless ngx jetzt seit ein paar Tagen am Laufen, aber stolpere immer mal wieder über den gleichen Fehler:
Häufig bricht das Einlesen ab, unter „Dateiaufgaben“ landet das Dokument der Begierde dann unter „Fehlgeschlagen“. Die Fehlermeldung lautet

Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/billiard/pool.py", line 1265, in mark_as_worker_lost
    raise WorkerLostError(
billiard.exceptions.WorkerLostError: Worker exited prematurely: signal 9 (SIGKILL) Job: 4.

Der log sieht aber unproblematisch aus:

[2025-01-14 19:38:11,997] [INFO] [paperless.management.consumer] Adding /usr/src/paperless/consume/Latzug kssl020 Anleitung.pdf to the task queue.

[2025-01-14 19:38:12,086] [DEBUG] [paperless.tasks] Skipping plugin CollatePlugin

[2025-01-14 19:38:12,086] [DEBUG] [paperless.tasks] Skipping plugin BarcodePlugin

[2025-01-14 19:38:12,086] [DEBUG] [paperless.tasks] Executing plugin WorkflowTriggerPlugin

[2025-01-14 19:38:12,090] [INFO] [paperless.tasks] WorkflowTriggerPlugin completed with:

[2025-01-14 19:38:12,091] [DEBUG] [paperless.tasks] Executing plugin ConsumeTaskPlugin

[2025-01-14 19:38:12,109] [INFO] [paperless.consumer] Consuming Latzug kssl020 Anleitung.pdf

[2025-01-14 19:38:12,115] [DEBUG] [paperless.consumer] Detected mime type: application/pdf

[2025-01-14 19:38:12,120] [DEBUG] [paperless.consumer] Parser: RasterisedDocumentParser

[2025-01-14 19:38:12,122] [DEBUG] [paperless.consumer] Parsing Latzug kssl020 Anleitung.pdf...

[2025-01-14 19:38:12,602] [INFO] [paperless.parsing.tesseract] pdftotext exited 0

[2025-01-14 19:38:12,694] [DEBUG] [paperless.parsing.tesseract] Calling OCRmyPDF with args: {'input_file': PosixPath('/tmp/paperless/paperless-ngxzot2kiv2/Latzug kssl020 Anleitung.pdf'), 'output_file': PosixPath('/tmp/paperless/paperless-_lyeuj3l/archive.pdf'), 'use_threads': True, 'jobs': 4, 'language': 'deu', 'output_type': 'pdfa', 'progress_bar': False, 'color_conversion_strategy': 'RGB', 'skip_text': True, 'clean': True, 'deskew': True, 'rotate_pages': True, 'rotate_pages_threshold': 12.0, 'sidecar': PosixPath('/tmp/paperless/paperless-_lyeuj3l/sidecar.txt')}

[2025-01-14 19:38:20,704] [INFO] [ocrmypdf._pipelines.ocr] Start processing 4 pages concurrently

[2025-01-14 19:38:20,711] [INFO] [ocrmypdf._pipeline] skipping all processing on this page

[2025-01-14 19:38:20,711] [INFO] [ocrmypdf._pipeline] skipping all processing on this page

[2025-01-14 19:38:20,711] [INFO] [ocrmypdf._pipeline] skipping all processing on this page

[2025-01-14 19:38:20,711] [INFO] [ocrmypdf._pipeline] skipping all processing on this page

[2025-01-14 19:38:20,712] [INFO] [ocrmypdf._pipeline] skipping all processing on this page

[2025-01-14 19:38:20,712] [INFO] [ocrmypdf._pipeline] skipping all processing on this page

[2025-01-14 19:38:20,712] [INFO] [ocrmypdf._pipeline] skipping all processing on this page

[2025-01-14 19:38:20,788] [INFO] [ocrmypdf._pipelines.ocr] Postprocessing...

Das „Postprocessing“ lässt mich zwar glauben es würde noch etwas passieren, tut es aber nicht. Obige Fehlermeldung, „worker_lost“ lässt mich an einen timeout glauben.
Wenn ich das mit derselben Datei versuche klappt es manchmal beim 4. oder 5. Versuch.
Aber nicht immer…
Hat einer von euch einen Tip, wo ich noch nach aussagekräftigeren Meldungen suchen kann?

Nach Neustart des Docker-containers wird das Dokument dann eingelesen.
Ein neues Dokument aber direkt wieder nicht. Gleiche Fehlermeldung

Hallo,

Probier mal folgende ENV Variable.
PAPERLESS_CONSUMER_INOTIFY_DELAY=5

Paperless wartet dann 5 sekunden bis das Dokument verarbeitet wird.
Wird gerne benuzt wenn ein Scanner eine Datei anlegt aber eine geweisse Zeit beansprucht bis es kpl im Consume Ordner gespeichert ist.

Hi, danke für die Antwort. Wo setze ich die denn? Ich betreibe Paperless in einem Docker-container wenn das hilft.

Entweder hast du eine Datei docker-compose.yml oder zusätzlich eine .env Datei
Kommt immer drauf an nach welcher Anleitung du Paperless installiert hast.

Die Dateien kannste mit einem Editor bearbeiten. Schau einfach mal in der docker-compose nach environment, darunter findest du die ENV Variablen.
Da einfach die Varable hinzufügen ud Paperless neu starten

Leider gleichbleibende Fehlermeldung

Hat jemand eine Lösung zu dem Problem gefunden, ich habe das gleiche Problem und finde keine Lösung …

Als Systeminformation: Paperless läuft bei mir auf einem Proxmox Server, „media“ - „data“ - „consume“ liegen auf dem gleichen Proxmox auf einem Truenas Scale 24.10.1 als Samba Share, das habe ich auf den Note vom Proxmox gemountet und dieses Verzeichnis dann als weitere Festplatte in den LXC gemountet. Das gleiche System nutze ich privat => keine Probleme // bei diesem System habe ich permanent Probleme mit diesen Fehlern …

Keine Ahnung ob es anderen hilft / oder der Grund war. Ich hatte Paperless über die env - Datei sehr viel Leistung auf der CPU gegeben, seit ich das auskommentiert habe, läuft es …

Ich habe diese Fehlermeldung auch. Wahrgenommen nach dem aktuellen Update. Gibt es von Eurer Seite noch Ideen zur Lösung?

Ich habe das leider nicht lösen können. Bin auf eine Bare Metal installation gewechselt. Das klappt ganz gut, nur der Celery-Status geht nach relativ kurzer Zeit in ERROR. Ein Neustart der Maschine behebt das kurzfristig. Die Logs sind leider auch dazu stumm.

Ich konnte dieses Problem lösen, indem ich die Anzahl der „worker“ durch die folgende Konfiguration verringerte:

PAPERLESS_THREADS_PER_WORKER=2

Der Standardwert war 4, also begann ich, ihn zu verringern, bis mein paperless system in der Lage war, die große Datei, die ich hinzugefügt hatte, zu verarbeiten.

Diese Konfiguration kann in der Datei docker-compose.env hinzugefügt werden.

1 „Gefällt mir“

Diese Einstellungen sind wichtig, wenn man einen „kleinen“ Prozessor hat, der z.B. nur zwei Threads laufen lassen kann.

Paperless konsumiert ein Dokument mit mehreren Seiten gleichzeitig und mehreren Workern gleichzeitig.
Das Produkt aus Workern und simultanen Seiten darf nicht größer sein als die Summe der Threads, die deine CPU gleichzeitig ausführen kann.

Beispiel:

2 Kerne, 4 Threads.

2 Seiten parallel x 2 Worker gleichzeitig = 4 ==> Passt
4 Seiten parallel x 2 Worker = 8 ==> Passt nicht mehr.

Ich probiere diese Option

PAPERLESS_THREADS_PER_WORKER=2

gerade aus.

Gibt es auch eine sinnvolle Variable um den RAM(verbrauch) einzuschränken?

Mit dieser Einstellung ist das Dokument durchgelaufen. Mit entsprechender Laufzeit für die Prozessierung, aber durchgelaufen.

Was meinst du damit?
Hat die Autokorrektur zugeschlagen und du meinst RAM Verbrauch?

Natürlich :slight_smile: Habe festgestellt, dass ein aktuelles Dokument (eine Rechnung) substanziell viel CPU (behoben siehe oben) und RAM bedarf hat.

Sag mal welches Gerät du hast und wie viel RAM verbaut ist.

Einen Mini PC 4Core Celeron und 8GB RAM. Möglicherweise gab es beim Konsumieren schon immer so einen hohen RAM Bedarf. Mit dem Setting zur Core/Threads Begrenzung funktioniert der Ingest nun wieder.