synOCR synOCR - ./synOCR.sh: syntax error: operand expected (error token is "+ ")

JohnLocke

Benutzer
Mitglied seit
07. Apr 2021
Beiträge
3
Punkte für Reaktionen
0
Punkte
1
Hallo.
Mein Input Verzeichnis beinhaltet einige PDF die durch synOCR verarbeitet werden sollen. Das hat die ersten Mal auch gut funktioniert. Bei dem aktuellen Schwung an PDFs erhalte ich aber die beigefügte Error Log. Was ist Ursache des Problems? Was mache ich um ihn zu beheben?

Ich selbst bin neu im Umgang mit meinem DS220+ und somit auch mit synOCR. In der Forensuche bin ich ich auf https://www.synology-forum.de/threads/synocr-gui-fuer-ocrmypdf.99647/ gestoßen, wo u.a. ein ähnlicher Fehler beschrieben wird. Allerdings werde ich aus der Diskussion nicht schlau, ob dort auch für mich Verwertbares beschrieben ist.

Danke euch.
Viele Grüße
Thomas
 

Anhänge

  • synOCR_2021-04-07_14-27-09.txt
    1,3 KB · Aufrufe: 3

JohnLocke

Benutzer
Mitglied seit
07. Apr 2021
Beiträge
3
Punkte für Reaktionen
0
Punkte
1
Hallo @geimist,
ich denke ja. Zumindest sehen alle *.log Dateien in meinem Log-Verzeichnis '/volume1/Dokumente_OCR/_synOCR/_LOG/' so aus.
Viele Grüße
Thomas
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.381
Punkte für Reaktionen
1.195
Punkte
234
Ich verstehe noch nicht, warum synOCR bei dir da aussteigt. Ich werde dir ein Paket mit etwas erweitertem Logging erstellen.
 
  • Like
Reaktionen: JohnLocke

Loomis

Benutzer
Mitglied seit
20. Sep 2020
Beiträge
14
Punkte für Reaktionen
0
Punkte
1
Guten Morgen,

ich habe (leider erst jetzt) auch den Fehler bemerkt:


--------------------------------
-----------------------------------
| ==> installation info <== |
-----------------------------------

synOCR-user:
synOCR-version: 1.1.1
Architecture: x86_64
DSM-build: 25556
Device: 1520plus (0378339495)
current Profil: default
DB-version: 4
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.39/containers/jbarlow83/ocrmypdf:latest/json: dial unix /var/run/docker.sock: connect: permission denied
used image (created): jbarlow83/ocrmypdf:latest ()
used ocr-parameter: --author xxx --jobs 4 --rotate-pages --rotate-pages-threshold 5 -dc --skip-text --clean-final -l deu --jbig2-lossy --optimize 3
replace search prefix: yes
renaming syntax: §y-§m-§d_§tag_§tit
Symbol for tag marking: #
source for filedate: now
ignored dates by search: 2021-02-29;2020-11-31
Docker Test: OK
Loglevel: normal
Application Directory: /usr/syno/synoman/webman/3rdparty/synOCR
Source directory: /volume1/DMS/input/
Target directory: /volume1/DMS/output/
BackUp directory: /volume1/DMS/_backup/


----------------------------------
| ==> Funktionsaufrufe <== |
----------------------------------
./synOCR.sh: line 1225: 442 + : syntax error: operand expected (error token is "+ ")
-----------------------------------
| synOCR exit with ERROR! |
-----------------------------------
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.381
Punkte für Reaktionen
1.195
Punkte
234
Hallo @Loomis

die Auswirklich scheint die selbe, aber die Ursache ist wohl eine andere. Das Problem bei JohnLocke war, dass im Dateinamen der Quelldatei ein Zeilenumbruch drin war …

Bei dir verweigert Docker die Arbiet, weil es nicht mit den nötigen Rechten aufgerufen wird - nur root darf Docker starten.
Mich verwundert jetzt bei dir, dass gar kein User angegeben wird (Abfrage whoami bleibt leer …).

Wie rufst du einen Durchlauf von synOCR auf?
 

Loomis

Benutzer
Mitglied seit
20. Sep 2020
Beiträge
14
Punkte für Reaktionen
0
Punkte
1
Hi @geimist,

den User habe ich nur rausgeixt bzw. entfernt hier im Forum.

Ich rufe wie folgt auf: --author xxx --jobs 4 --rotate-pages --rotate-pages-threshold 5 -dc --skip-text --clean-final -l deu --jbig2-lossy --optimize 3

Hilft dir das?

Gruß, Carsten
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.381
Punkte für Reaktionen
1.195
Punkte
234
Nein, ich meine nicht deine Parameterzeile für OCRmyPDF.

Startest du einen Programmlauf über die synOCR-GUI (mit dem blauen Button)?
Oder über den integrierten Zeitplaner?
Oder über eine Aufgabe im Aufgabenplaner?
 

Loomis

Benutzer
Mitglied seit
20. Sep 2020
Beiträge
14
Punkte für Reaktionen
0
Punkte
1
Sorry, über den Aufgabenplaner alle 10 Minuten mit dem synOCR Startscript (damit schon seit den letzten Versionen).
 

Loomis

Benutzer
Mitglied seit
20. Sep 2020
Beiträge
14
Punkte für Reaktionen
0
Punkte
1
Detailliert;

bash /usr/syno/synoman/webman/3rdparty/synOCR/synOCR-start.sh

Als user „root“
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.381
Punkte für Reaktionen
1.195
Punkte
234
Ich kann mir das noch nicht erklären.

Was bewirkt ein Programmlauf über den Button in der GUI?
bash musst du eigentlich nicht vor den Befehl schreiben, sollte aber auch kein Problem sein …
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.381
Punkte für Reaktionen
1.195
Punkte
234
Ich kann mir noch keinen Reim darauf machen :confused:

Könntest du mal bitte:
  • die DS neustarten
  • wenn das nicht geholfen hat, eine neue Aufgabe im Aufgabenplaner als root erstellen (lass mal bash weg)
  • und wenn das auch nicht hilft, eine Sicherung deiner Einstellungen machen (HyperBackup) und synOCR deinstallieren / neuinstallieren
 

Loomis

Benutzer
Mitglied seit
20. Sep 2020
Beiträge
14
Punkte für Reaktionen
0
Punkte
1
Hallo Stephan,

alles getan, leider noch keine Besserung.

Vorher und nachher habe ich mir auf Shellebene die Prozesse auf meiner DSM angeschaut, nichts auffälliges vorhanden. Die Startscripte habe ich händisch im Debugmodus gestartet, dabei ist mir aufgefallen, das SynOCR über unvollständige Profile stolpert, sich aber nicht daran aufhängt (hatte mal mit Testprofilen gespielt, um schlechte PDF‘s zu OCRn) - Also nicht Ursache zu dem o.g. Fehler (Pfade waren unvollständig, wohlgemerkt, das Profil war nicht aktiviert). Die Profile sind nun testhalber entfernt, lediglich Standard (wie oben schon beschrieben). Bist du sicher, das du der Schuldige bist? Ich habe gesehen, das ocrmypdf mit einer Version vom 09.04.2021 arbeiten will?!

Das Setup läuft seit Monaten ohne Problem, letzte Woche ist ein Update der DSM gelaufen (sah aber von den Changes nicht nach unmittelbarem Zusammenhang aus).

Ich habe außerdem einen SQL Aufruf gesehen, darf man fragen warum du dir da eine Datenbank anlegst oder benutzt? Ich habe auf der DSM leider kein strace oder ähnliches Entwicklungswerkzeug gefunden/installiert, kann dir also mit richtigen Details leider nicht helfen.

Gruß, Carsten
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.381
Punkte für Reaktionen
1.195
Punkte
234
Ich sehe, du bist nicht unerfahren - sehr schön :cool:

Bist du sicher, das du der Schuldige bist? Ich habe gesehen, das ocrmypdf mit einer Version vom 09.04.2021 arbeiten will?!
Ich hoffe es natürlich nicht, aber ich verstehe den Fehler auch noch nicht ganz.

Ich sehe den Zusammenhang: synOCR-user: ist leer (sollte eigentlich synOCR-user: root stehen) und dem Perission denied (und das Docker root voraussetzt).

Zum Check, ob es einen Fehler mit dem OCRmyPDF-Image gibt, wähle mal in der GUI ein anderes / älteres (vorher in der Docker-GUI laden)

Ich habe außerdem einen SQL Aufruf gesehen, darf man fragen warum du dir da eine Datenbank anlegst oder benutzt?
Für die Konfiguration wird eine SQLite-DB verwendet. Das macht es einfacher, die einzelnen Profile verwalten zu können. Die kannst du dir über die synOCR-GUI auch herunterladen (Button ganz unten in der Konfigurationsseite).
 

Loomis

Benutzer
Mitglied seit
20. Sep 2020
Beiträge
14
Punkte für Reaktionen
0
Punkte
1
Meine ersten Linuxkontakte waren noch Slackware und 10 Stück 3,5“ Floppy Discs, danach knapp 20 Jahre in der Entwicklung unter Linux tätig. Erzähle ich dir gern im persönlichen Gespräch oder Bier. Unter Unix noch einige Jahre zuvor mit SCO.

Vergiss den User, den habe ich nachträglich entfernt. Der lief unter dem Admin-Account, über die Shell habe ich mit Root-Rechten gearbeitet.

Bin zurück auf 11.7.0 - Will nicht. im Scriptoutput ist nichts zu sehen, was irgendwie auf einen Fehler deutet. Ohne einem „Strace-Tool“ würde ich jetzt nicht mehr weitersuchen wollen. Ich würde mir jetzt die Aufrufe vom Betriebssystem anschauen wollen.

Hast du eine Idee? Jetzt eine GCC Umgebung … Gold Wert .-)
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.381
Punkte für Reaktionen
1.195
Punkte
234
Ich könnte nur trial&error …

Eines würde ich aber mal machen:
Die Errorlog-Funktion ist im aktuellen Skript erst nach deinem Fehler aktiv. In Zukunft kommt die ganz oben hin. Vielleicht spuckt die ja noch einen Hinweis aus.

Des Weiteren setze ich in Zukunft den Seitenzähler auf 0, sofern das Auslesen nicht gelungen ist (= die Variable leer ist). Das sollte dein Rechenproblem beheben.

Diese beiden Änderungen sind im aktuellen Build, wenn du den mal testen magst (liegt auf meinem Server - nicht die DSM7_dev-Version nehmen): https://geimist.eu/synOCR/
 

Loomis

Benutzer
Mitglied seit
20. Sep 2020
Beiträge
14
Punkte für Reaktionen
0
Punkte
1
Die Version läuft!

Trotzdem nervt es mich, die Ursache nicht 100%ig ermittelt zu haben. Hm…

Vielen Dank auf jeden Fall für die Fehlerbehebung, jetzt kann ich erstmal die PDF‘s abarbeiten lassen :)
Schönen Abend! Ich werde trotzalledem mich auf die Suche nach einem strace und die benötigen Lib‘s machen.

Gruss Carsten
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat