Rails アプリで、Carrier_wave と mini_magick の gem を ImageMagick と一緒に使用しています。すべてのバージョンは可能な限り最新のものです。
開発モードでは問題なく動作します。ただし、アプリをデプロイしたばかりで、運用モードでは機能しません。
mini_magick に画像のサイズ変更を要求すると、問題が発生します。
rake aborted!
No such file or directory - gm identify -ping /tmp/mini_magick20120407-19273-jjzz44.jpg
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/subexec-0.2.1/lib/subexec.rb:71:in `spawn'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/subexec-0.2.1/lib/subexec.rb:71:in `spawn'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/subexec-0.2.1/lib/subexec.rb:55:in `run!'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/subexec-0.2.1/lib/subexec.rb:41:in `run'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/mini_magick-3.4/lib/mini_magick.rb:405:in `run'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/mini_magick-3.4/lib/mini_magick.rb:399:in `run_command'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/mini_magick-3.4/lib/mini_magick.rb:198:in `valid?'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/mini_magick-3.4/lib/mini_magick.rb:163:in `create'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/mini_magick-3.4/lib/mini_magick.rb:73:in `read'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/mini_magick-3.4/lib/mini_magick.rb:134:in `block in open'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/mini_magick-3.4/lib/mini_magick.rb:133:in `open'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/mini_magick-3.4/lib/mini_magick.rb:133:in `open'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/carrierwave-0.6.0/lib/carrierwave/processing/mini_magick.rb:245:in `manipulate!'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/carrierwave-0.6.0/lib/carrierwave/processing/mini_magick.rb:145:in `resize_to_fit'
CarrierWave リクエストを「resize_to_fit」にコメントアウトすると、画像はすべて正常に機能します。
mini_magick には、/tmp ディレクトリ内のファイルが mini_magick によって処理される前にガベージ コレクターによって削除されるという競合状態の問題があったことを読みましたが、それらのケースは大きな画像やクラウド ストレージを処理しているように見えました。
私のイメージ ファイルはわずか 6K で、すべてがローカルにあるため、ガベージ コレクターが /tmp ファイルのサイズを変更する前に急いで削除しているとは信じがたいです。(しかし、繰り返しになりますが、これらのタイミングについてはわかりませんので、間違っている可能性があります。)
誰でもこれで私を助けることができますか?
ありがとう、ラリー