Bildoptimierung fehlgeschlagen: Unbekannter Grund

Hallo zusammen :wave:

Wir haben gerade die Migration eines unserer Foren von einem Server auf einen anderen abgeschlossen und dabei gleichzeitig die Domain geändert.

In der neuen Installation erhalten wir viele dieser Fehler in unseren Protokollen:

lib/discourse.rb:810:in `block in warn'
lib/discourse.rb:804:in `each'
lib/discourse.rb:804:in `warn'
/var/www/discourse/app/models/optimized_image.rb:329:in `rescue in convert_with'
/var/www/discourse/app/models/optimized_image.rb:311:in `convert_with'
/var/www/discourse/app/models/optimized_image.rb:305:in `optimize'
/var/www/discourse/app/models/optimized_image.rb:289:in `resize'
/var/www/discourse/app/models/optimized_image.rb:97:in `block in create_for'
/var/www/discourse/app/models/optimized_image.rb:19:in `block in lock'
/var/www/discourse/lib/distributed_mutex.rb:33:in `block in synchronize'
/var/www/discourse/lib/distributed_mutex.rb:29:in `synchronize'
/var/www/discourse/lib/distributed_mutex.rb:29:in `synchronize'
/var/www/discourse/lib/distributed_mutex.rb:14:in `synchronize'
/var/www/discourse/app/models/optimized_image.rb:18:in `lock'
/var/www/discourse/app/models/optimized_image.rb:68:in `create_for'
/var/www/discourse/app/models/upload.rb:167:in `rescue in get_optimized_image'
/var/www/discourse/app/models/upload.rb:161:in `get_optimized_image'
/var/www/discourse/app/models/upload.rb:147:in `create_thumbnail!'
/var/www/discourse/lib/cooked_post_processor.rb:281:in `convert_to_link!'
/var/www/discourse/lib/cooked_post_processor.rb:487:in `block in post_process_images'
nokogiri-1.13.3-x86_64-linux/lib/nokogiri/xml/node_set.rb:233:in `block in each'
nokogiri-1.13.3-x86_64-linux/lib/nokogiri/xml/node_set.rb:232:in `upto'
nokogiri-1.13.3-x86_64-linux/lib/nokogiri/xml/node_set.rb:232:in `each'
/var/www/discourse/lib/cooked_post_processor.rb:486:in `post_process_images'
/var/www/discourse/lib/cooked_post_processor.rb:44:in `block in post_process'
/var/www/discourse/lib/distributed_mutex.rb:33:in `block in synchronize'
/var/www/discourse/lib/distributed_mutex.rb:29:in `synchronize'
/var/www/discourse/lib/distributed_mutex.rb:29:in `synchronize'
/var/www/discourse/lib/distributed_mutex.rb:14:in `synchronize'
/var/www/discourse/lib/cooked_post_processor.rb:40:in `post_process'
/var/www/discourse/app/jobs/regular/process_post.rb:26:in `block in execute'
/var/www/discourse/lib/distributed_mutex.rb:33:in `block in synchronize'
/var/www/discourse/lib/distributed_mutex.rb:29:in `synchronize'
/var/www/discourse/lib/distributed_mutex.rb:29:in `synchronize'
/var/www/discourse/lib/distributed_mutex.rb:14:in `synchronize'
/var/www/discourse/app/jobs/regular/process_post.rb:10:in `execute'
/var/www/discourse/app/jobs/base.rb:232:in `block (2 levels) in perform'
rails_multisite-4.0.0/lib/rails_multisite/connection_management.rb:80:in `with_connection'
/var/www/discourse/app/jobs/base.rb:221:in `block in perform'
/var/www/discourse/app/jobs/base.rb:217:in `each'
/var/www/discourse/app/jobs/base.rb:217:in `perform'
sidekiq-6.4.1/lib/sidekiq/processor.rb:196:in `execute_job'
sidekiq-6.4.1/lib/sidekiq/processor.rb:164:in `block (2 levels) in process'
sidekiq-6.4.1/lib/sidekiq/middleware/chain.rb:138:in `block in invoke'
/var/www/discourse/lib/sidekiq/pausable.rb:138:in `call'
sidekiq-6.4.1/lib/sidekiq/middleware/chain.rb:140:in `block in invoke'
sidekiq-6.4.1/lib/sidekiq/middleware/chain.rb:143:in `invoke'
sidekiq-6.4.1/lib/sidekiq/processor.rb:163:in `block in process'
sidekiq-6.4.1/lib/sidekiq/processor.rb:136:in `block (6 levels) in dispatch'
sidekiq-6.4.1/lib/sidekiq/job_retry.rb:114:in `local'
sidekiq-6.4.1/lib/sidekiq/processor.rb:135:in `block (5 levels) in dispatch'
sidekiq-6.4.1/lib/sidekiq.rb:40:in `block in <module:Sidekiq>'
sidekiq-6.4.1/lib/sidekiq/processor.rb:131:in `block (4 levels) in dispatch'
sidekiq-6.4.1/lib/sidekiq/processor.rb:257:in `stats'
sidekiq-6.4.1/lib/sidekiq/processor.rb:126:in `block (3 levels) in dispatch'
sidekiq-6.4.1/lib/sidekiq/job_logger.rb:13:in `call'
sidekiq-6.4.1/lib/sidekiq/processor.rb:125:in `block (2 levels) in dispatch'
sidekiq-6.4.1/lib/sidekiq/job_retry.rb:81:in `global'
sidekiq-6.4.1/lib/sidekiq/processor.rb:124:in `block in dispatch'
sidekiq-6.4.1/lib/sidekiq/job_logger.rb:39:in `prepare'
sidekiq-6.4.1/lib/sidekiq/processor.rb:123:in `dispatch'
sidekiq-6.4.1/lib/sidekiq/processor.rb:162:in `process'
sidekiq-6.4.1/lib/sidekiq/processor.rb:78:in `process_one'
sidekiq-6.4.1/lib/sidekiq/processor.rb:68:in `run'
sidekiq-6.4.1/lib/sidekiq/util.rb:56:in `watchdog'
sidekiq-6.4.1/lib/sidekiq/util.rb:65:in `block in safe_thread'

Wenn ich mir den Code ansehe, scheint es, dass, wenn der Fehler nicht convert: enthält, diese generische Fehlermeldung verwendet wird, sodass der eigentliche zugrunde liegende Fehler verschluckt wird.

Ich habe das Gefühl, dass dies eine fehlende Voraussetzung auf unserer Seite sein könnte, oder vielleicht sind einige Dateien während der Migration nicht mitübertragen worden, aber es ist schwer zu sagen, ohne die Fehlermeldung zu kennen. Hat jemand eine Idee, wo ich mit der Suche beginnen könnte?

Meine Vermutung ist, dass ImageMagick veraltet ist.

Können Sie bestätigen, dass Sie unser offizielles Setup verwenden? Wenn wir ./launcher rebuild ausführen, ziehen wir immer die neueste Version des Basis-Images.

1 „Gefällt mir“

Hallo Sam, ja, wir verwenden ./launcher und haben mehrmals in der letzten Woche neu kompiliert.

Gibt es eine Möglichkeit, dieses Skript schnell zu “monkey-patchen”, damit der zugrunde liegende Fehler ausgegeben wird? Mein Ruby ist etwas eingerostet, kann ich einfach eine Datei bearbeiten, oder sind Caching / Kompilierung im Spiel?

Tatsächlich ist dieser Fehler laut unseren Protokollen seit neustem nicht mehr aufgetreten. Vielleicht war das nur ein Problem während unserer Migration :thinking:

Meine Vermutung ist, dass die Uploads zu diesem Zeitpunkt fehlten. Wir haben versucht, Bilder zu optimieren und zu konvertieren, und es gab keine Datei.

Unsere Fehlermeldung kann hier sicherlich verbessert werden.

Was das Debugging angeht, falls Sie es benötigen. Ich würde die Datei innerhalb des Containers bearbeiten und Discourse.warn-Aufrufe einstreuen, die (was im Grunde printf in die Logs ist). Container nach dem Bearbeiten der Datei neu starten.

2 „Gefällt mir“

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.