Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"undefined method `next' for #<File:./01/02/h-2-1076430.jpg (closed)>" #85

Closed
bdossantos opened this issue Apr 30, 2015 · 6 comments
Closed

Comments

@bdossantos
Copy link

Hi !

I'm trying to optimize recursively a large directory via shell command :

image_optim --pack --no-pngout --no-svgo --no-progress -v -r .

After few minutes my process crash with the following stack trace :

✓ 0.087820509s jpegtran -progressive -copy none -optimize -outfile /tmp/h-2-107645620150430-16738-8968n0.jpg ./01/02/h-2-1076456.jpg
✓ 0.038839975s jpegtran -progressive -copy none -optimize -outfile /tmp/h-2-107645820150430-16738-xkq4cc.jpg ./01/02/h-2-1076458.jpg
✓ 0.042576706s jpegtran -progressive -copy none -optimize -outfile /tmp/h-2-107644220150430-16738-15esx58.JPG ./01/02/h-2-1076442.JPG
✓ 0.059946986s jpegtran -progressive -copy none -optimize -outfile /tmp/h-2-107646120150430-16738-1bp0jrf.jpg ./01/02/h-2-1076461.jpg
✓ 2.29735533s optipng -i0 -o 6 -quiet -- /tmp/h-18-107674920150430-16738-1pd33m4.png
✓ 4.911810016s optipng -i0 -o 6 -quiet -- /tmp/h-18-107657420150430-16738-1umxavp.png
undefined method `next' for #<File:./01/02/h-2-1076430.jpg (closed)>
/opt/rubies/ruby-2.1.6/lib/ruby/gems/2.1.0/gems/exifr-1.2.1/lib/exifr/jpeg.rb:97:in `examine'
/opt/rubies/ruby-2.1.6/lib/ruby/gems/2.1.0/gems/exifr-1.2.1/lib/exifr/jpeg.rb:32:in `block in initialize'
/opt/rubies/ruby-2.1.6/lib/ruby/gems/2.1.0/gems/exifr-1.2.1/lib/exifr/jpeg.rb:32:in `open'
/opt/rubies/ruby-2.1.6/lib/ruby/gems/2.1.0/gems/exifr-1.2.1/lib/exifr/jpeg.rb:32:in `initialize'
/opt/rubies/ruby-2.1.6/lib/ruby/gems/2.1.0/gems/image_optim-0.20.2/lib/image_optim/worker/jhead.rb:38:in `new'
/opt/rubies/ruby-2.1.6/lib/ruby/gems/2.1.0/gems/image_optim-0.20.2/lib/image_optim/worker/jhead.rb:38:in `oriented?'
/opt/rubies/ruby-2.1.6/lib/ruby/gems/2.1.0/gems/image_optim-0.20.2/lib/image_optim/worker/jhead.rb:25:in `optimize'
/opt/rubies/ruby-2.1.6/lib/ruby/gems/2.1.0/gems/image_optim-0.20.2/lib/image_optim.rb:99:in `block (3 levels) in optimize_image'
/opt/rubies/ruby-2.1.6/lib/ruby/gems/2.1.0/gems/image_optim-0.20.2/lib/image_optim/handler.rb:41:in `process'
/opt/rubies/ruby-2.1.6/lib/ruby/gems/2.1.0/gems/image_optim-0.20.2/lib/image_optim.rb:98:in `block (2 levels) in optimize_image'
/opt/rubies/ruby-2.1.6/lib/ruby/gems/2.1.0/gems/image_optim-0.20.2/lib/image_optim.rb:97:in `each'
/opt/rubies/ruby-2.1.6/lib/ruby/gems/2.1.0/gems/image_optim-0.20.2/lib/image_optim.rb:97:in `block in optimize_image'
/opt/rubies/ruby-2.1.6/lib/ruby/gems/2.1.0/gems/image_optim-0.20.2/lib/image_optim/handler.rb:25:in `for'
/opt/rubies/ruby-2.1.6/lib/ruby/gems/2.1.0/gems/image_optim-0.20.2/lib/image_optim.rb:96:in `optimize_image'
/opt/rubies/ruby-2.1.6/lib/ruby/gems/2.1.0/gems/image_optim-0.20.2/lib/image_optim.rb:111:in `optimize_image!'
/opt/rubies/ruby-2.1.6/lib/ruby/gems/2.1.0/gems/image_optim-0.20.2/lib/image_optim.rb:211:in `block in run_method_for'

Thank you in advance for your help

@toy
Copy link
Owner

toy commented May 1, 2015

Could you please tell more about your environment? Is there anything special?
Does this happen on specific image or not? And if specific, is it possible for you to share this image?

@bdossantos
Copy link
Author

Nothing special about my environment, just a Ruby installed via chruby+ruby-install and image_optim+image_optim_pack.

I don't know if this image have something special, may be she is corrupted or something like this ? I'll recuperate it on monday in order to investigate in my local environment and share.

Thank you for your help.

@toy
Copy link
Owner

toy commented May 1, 2015

Will be great if you can find conditions of this bug. It happens in exifr gem, looking at its code (L32, L90, L97) this bug can happen if readsof method is defined for File instances so next is not added to specific instance in examine method. I'll try to rewrite the code and create a PR for exifr.

@toy
Copy link
Owner

toy commented May 3, 2015

Please check with new exifr version 1.2.2.

@bdossantos
Copy link
Author

Thank you very much! I take a look tomorrow.

@bdossantos
Copy link
Author

Fixed, thank you very much !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants