Bild-Upload-Problem

Hallo,

ich denke, dass dieser Fix FIX: automatically timeout long running image magick commands (#12670) · discourse/discourse@5deda5e · GitHub das Hochladen mehrerer Bilder beschädigt hat. Wenn ich versuche, 3 Bilder mit ~5–6 MB hochzuladen, funktioniert es nicht, und jedes Mal wird dieser Fehler angezeigt. Ich vermute, das liegt an der 20-Sekunden-Timeout-Grenze.

lib/discourse.rb:93:in 'exec': Ein Fehler ist beim Konvertieren von PNG nach JPG aufgetreten.

Vielen Dank :slight_smile:

Fehlschlägt dies auf dieser Website? Könntest du versuchen, das Bild hochzuladen (vorausgesetzt, es ist für Kinder geeignet)?

Wir brauchen hier ein Limit; wir können es nicht viel über 20 Sekunden hinaus treiben.

1 „Gefällt mir“

Hallo Sam,
beim letzten Mal ist es hier ebenfalls fehlgeschlagen, weshalb ich es als Fehler eingestuft habe. Jetzt wurde es jedoch hochgeladen. Auf meiner Seite scheitert es jedes Mal. Größe ca. 6 MB / Foto

Oh, das ist tricky. Ich möchte lokal debuggen. Könntest du ein Originalbild irgendwo hochladen, damit ich es herunterladen und testen kann, wie lange die verschiedenen ImageMagick-Befehle brauchen?

Ich könnte überlegen, eine Site-Einstellung für ein “längeres Timeout” hinzuzufügen, aber ich bin etwas besorgt, dass die Konvertierung dieses einfachen Bildes von PNG nach JPG über 10 Sekunden dauert.

3 „Gefällt mir“

Vielen Dank! Ich habe einige Bilder auf Mega hochgeladen: File folder on MEGA

Können Sie bestätigen, dass Sie eine Standard-Docker-Installation verwenden?

Ich habe gerade eines Ihrer oben genannten Images getestet. Wir führen zwei Befehle im Container aus.

timeout -k 10.0 5 identify -format %Q image.jpg

und

timeout -k 40.0 20 convert jpeg:original.jpg -auto-orient -background white -interlace none -flatten -quality 90 jpg:/tmp/target.jpg

Der erste Befehl benötigt auf meinem lokalen System 0,27 Sekunden von den zugestandenen 5 Sekunden.

Der zweite Befehl benötigt 1,3 Sekunden von den zugestandenen 20 Sekunden.

Können Sie mir etwas mehr über Ihre Installation und die spezifische Leistung des Servers, auf dem sie läuft, mitteilen?

1 „Gefällt mir“

Danke, Sam, dass du das geprüft hast. Ja, Standard-Docker-Installation. Gestern habe ich den Server aktualisiert, da die gesamte Website so stark verlangsamt war, und habe sie neu aufgebaut. Mit dem Server-Update funktioniert es einwandfrei. Habe es gerade getestet. Digital Ocean hat vor etwa zwei Monaten einen neuen Plan mit Premium-Intel-CPU eingeführt, während der bisherige reguläre Plan deutlich schwächer geworden ist.

Der alte Server :arrow_down_small:
Basic - Shared CPU 2 vCPUs 4 GB 60 GB

Der neue Server :arrow_down_small:
Basic - Premium Intel Shared CPU 2 vCPUs 4 GB 60 GB

Entschuldige bitte das Thema. 20 Sekunden reichen völlig. Und danke noch einmal! :slightly_smiling_face:

1 „Gefällt mir“

Ja, ich denke, wir verhalten uns hier korrekt.

Wenn wir kein Timeout setzen, besteht ein hohes Risiko, dass diese unterdimensionierten Instanzen von Nutzern, die Bilder hochladen, überlastet werden. 20 Sekunden sind eine enorme CPU-Zeit, die man Leuten zum Ändern der Bildgröße einräumen kann.

3 „Gefällt mir“

Dieses Thema wurde automatisch nach 15 Stunden geschlossen. Neue Antworten sind nicht mehr möglich.