Timeout: Was Du machen kannst, wenn sich ONLYOFFICE nicht in Nextcloud installiert (ich rate aber davon ab)

Ein Kommentar Autor: Jürgen (jdo)

Ich wollte es eigentlich nicht erwähnen, aber ein Leser hat es in einem Kommentar zur Sprache gebracht. Das Problem, warum sich ONLYOFFICE bei den meisten nicht per occ oder Browser installieren oder aktualisieren lässt: ein fest codierter Timeout in cURL. Der liegt bei 30 Sekunden. Da die Datei von ONLYOFFICE aber 300 MByte groß ist, dauert der Download möglicherweise länger als 30 Sekunden und bricht ab. Das ist der Grund.

Nun könntest Du den Timeout selbst hochsetzen. Ich rate aber nicht dazu und möchte erst erklären, warum.

Integritäts-Prüfung fällt auf die Nase

Die Nextcloud prüft bei diversen Aktionen den Code. Sie macht das mit einem Integritäts-Check. Du kannst den auch manuell anstoßen:

cd /pfad/zu/nextcloud
sudo -u www-data php occ integrity:check-core

Manipulierst Du die entsprechende Datei mit dem Timeout, dann fällt diese Prüfung auf die Nase. Das kann bei Updates oder Upgrades lästig sein.

Manipulierst Du die relevante Datei, meckert die Integritäts-Prüfung

Manipulierst Du die relevante Datei, meckert die Integritäts-Prüfung

Ich habe einen Server mit root-Zugriff und kann das Problem umgehen, indem ich manuell aktualisiere oder installiere. Hast Du die Möglichkeit, die App manuell herunterzuladen und in den Ordner /pfad/zu/nextcloud/apps/ zu kopieren, würde ich das so machen. Die Änderung, also den Timeout hochsetzen, müsste von den Entwicklern kommen. Das müsste im Code geändert und ausgeliefert werden, ist meine Meinung.

Du willst den Timeout trotzdem hochsetzen?

OK, ich kann Dir sagen wie das geht, aber auf eigene Gefahr. Ich rate Dir zunächst, die Original-Datei zu kopieren. Klar kannst Du sie auch aus dem Quellcode für die Nextcloud wieder organisieren, aber so geht es halt schneller, wenn Du eine Rolle rückwärts machen willst.

Öffne die Datei /pfad/zu/nextcloud/lib/private/Http/Client/Client.php und ändere den Wert RequestOptions::TIMEOUT => 30, zum Beispiel auf 240. 0 bedeutet gar kein Timeout, wenn ich mich nicht irre. Das sieht dann wie folgt aus.

Den Timeout manuell hochsetzen

Den Timeout manuell hochsetzen

Nun hat cURL länger Zeit, das große Archiv herunterzuladen. Das ist natürlich eine Option, aber ich weiß eben nicht, was das an anderer Stelle für Probleme auslöst. Deswegen bin ich hier lieber konservativ und warte, wie und ob die Entwickler das Problem lösen.

Die Lösung gilt natürlich nicht nur für ONLYOFFICE, sondern für alle Aktionen, die cURL brauchen und länger als 30 Sekunden dauern.

Das Problem ist auch schon länger bekannt und hier beschrieben. Manipulierst Du die Datei selbst, bin ich nicht Schuld. 🙂




 Alle Kommentare als Feed abonnieren

Ein Kommentar zu “Timeout: Was Du machen kannst, wenn sich ONLYOFFICE nicht in Nextcloud installiert (ich rate aber davon ab)”

  1. Thomas says:

    Danke für den Tipp. Ich hatte schon aufgegeben.