画像の最適化に失敗しました:理由不明

皆さん、こんにちは :wave:

フォーラムを別のサーバーに移行し、同時にドメインも変更しました。

新しいインストールで、ログに次のようなエラーが多数表示されています。

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'

コードを見ると、エラーに convert: が含まれていない場合、この一般的なエラーメッセージが使用され、実際の根本的なエラーが隠蔽されているようです。

これは、前提となるライブラリが不足しているか、移行中に一部のファイルが失われた可能性があるように思われますが、実際のメッセージがないと判断するのは困難です。どこから調査を始めるべきか、何か考えはありますか?

私の推測では、ImageMagick が古い可能性があります。

公式のセットアップを使用していることを確認していただけますか? ./launcher rebuild を実行すると、常にベースイメージの最新バージョンがプルされます。

「いいね!」 1

サムさん、はい、./launcher を使用しており、ここ一週間で数回再構築しています。

そのスクリプトを素早くモンキーパッチして、根本的なエラーを出力する方法はありますか?私の Ruby は少し錆びついていますが、ファイルを編集するだけでよいのでしょうか、それともキャッシュやコンパイルが関係していますか?

実際、ログを確認したところ、このエラーは一昨日から発生していません。おそらく、移行中の問題だったのかもしれません :thinking:

おそらく、アップロードがその時点で行われていなかったのだと思います。画像を最適化して変換しようとしたところ、ファイルがありませんでした。

ここでのエラーメッセージは確かに改善できます。

デバッグについては、必要であればコンテナ内のファイルを編集し、Discourse.warn(これは基本的にログへのprintfです)を散りばめることができます。ファイルをいじった後はコンテナを再起動してください。

「いいね!」 2

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