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

Error when uploading file from Remote URL #10

Closed
kcollignon opened this issue Aug 18, 2015 · 6 comments
Closed

Error when uploading file from Remote URL #10

kcollignon opened this issue Aug 18, 2015 · 6 comments
Labels

Comments

@kcollignon
Copy link

Since upgraded to the new, extracted refile-s3 gem, adding a profile photo via a remote URL gives me this error:

IOError (closed stream):
  app/controllers/users_controller.rb:52:in `block in update'

Traditional uploads via uploading a local file from my computer works fine

@jnicklas jnicklas added the bug label Sep 10, 2015
@jnicklas
Copy link
Contributor

Could you provide a full stack trace for this please?

@kcollignon
Copy link
Author

@jnicklas here is what I have:

Completed 500 Internal Server Error in 446ms

IOError (closed stream):
  app/controllers/users_controller.rb:58:in `block in update'
  app/controllers/users_controller.rb:57:in `update'
aws-sdk-core (2.1.14) lib/aws-sdk-core/plugins/s3_md5s.rb:38:in `md5'
aws-sdk-core (2.1.14) lib/aws-sdk-core/plugins/s3_md5s.rb:31:in `call'
aws-sdk-core (2.1.14) lib/aws-sdk-core/plugins/s3_expect_100_continue.rb:21:in `call'
aws-sdk-core (2.1.14) lib/aws-sdk-core/plugins/s3_bucket_dns.rb:31:in `call'
aws-sdk-core (2.1.14) lib/aws-sdk-core/rest/handler.rb:7:in `call'
aws-sdk-core (2.1.14) lib/aws-sdk-core/plugins/user_agent.rb:12:in `call'
aws-sdk-core (2.1.14) lib/seahorse/client/plugins/endpoint.rb:34:in `call'
aws-sdk-core (2.1.14) lib/aws-sdk-core/plugins/param_validator.rb:21:in `call'
aws-sdk-core (2.1.14) lib/seahorse/client/plugins/raise_response_errors.rb:14:in `call'
aws-sdk-core (2.1.14) lib/aws-sdk-core/plugins/s3_sse_cpk.rb:18:in `call'
aws-sdk-core (2.1.14) lib/aws-sdk-core/plugins/param_converter.rb:21:in `call'
aws-sdk-core (2.1.14) lib/seahorse/client/plugins/response_target.rb:21:in `call'
aws-sdk-core (2.1.14) lib/seahorse/client/request.rb:70:in `send_request'
aws-sdk-core (2.1.14) lib/seahorse/client/base.rb:207:in `block (2 levels) in define_operation_methods'
aws-sdk-resources (2.1.14) lib/aws-sdk-resources/request.rb:24:in `call'
aws-sdk-resources (2.1.14) lib/aws-sdk-resources/operations.rb:41:in `call'
aws-sdk-resources (2.1.14) lib/aws-sdk-resources/operation_methods.rb:19:in `block in add_operation'
refile-s3 (0.1.0) lib/refile/s3.rb:58:in `upload'
refile (0.5.5) lib/refile/backend_macros.rb:31:in `block (2 levels) in verify_uploadable'
refile (0.5.5) lib/refile/attacher.rb:105:in `download'
refile (0.5.5) lib/refile/attachment.rb:74:in `block (2 levels) in attachment'
activerecord (4.2.0) lib/active_record/attribute_assignment.rb:54:in `public_send'
activerecord (4.2.0) lib/active_record/attribute_assignment.rb:54:in `_assign_attribute'
activerecord (4.2.0) lib/active_record/attribute_assignment.rb:41:in `block in assign_attributes'
actionpack (4.2.0) lib/action_controller/metal/strong_parameters.rb:183:in `each_pair'
actionpack (4.2.0) lib/action_controller/metal/strong_parameters.rb:183:in `each_pair'
activerecord (4.2.0) lib/active_record/attribute_assignment.rb:35:in `assign_attributes'
activerecord (4.2.0) lib/active_record/persistence.rb:249:in `block in update'
activerecord (4.2.0) lib/active_record/transactions.rb:347:in `block in with_transaction_returning_status'
activerecord (4.2.0) lib/active_record/connection_adapters/abstract/database_statements.rb:213:in `block in transaction'
activerecord (4.2.0) lib/active_record/connection_adapters/abstract/transaction.rb:188:in `within_new_transaction'
activerecord (4.2.0) lib/active_record/connection_adapters/abstract/database_statements.rb:213:in `transaction'
activerecord (4.2.0) lib/active_record/transactions.rb:220:in `transaction'
activerecord (4.2.0) lib/active_record/transactions.rb:344:in `with_transaction_returning_status'
activerecord (4.2.0) lib/active_record/persistence.rb:248:in `update'
app/controllers/students_controller.rb:58:in `block in update'
actionpack (4.2.0) lib/action_controller/metal/mime_responds.rb:211:in `respond_to'
app/controllers/students_controller.rb:57:in `update'
actionpack (4.2.0) lib/action_controller/metal/implicit_render.rb:4:in `send_action'
actionpack (4.2.0) lib/abstract_controller/base.rb:198:in `process_action'
actionpack (4.2.0) lib/action_controller/metal/rendering.rb:10:in `process_action'
actionpack (4.2.0) lib/abstract_controller/callbacks.rb:20:in `block in process_action'
activesupport (4.2.0) lib/active_support/callbacks.rb:117:in `call'
activesupport (4.2.0) lib/active_support/callbacks.rb:117:in `call'
activesupport (4.2.0) lib/active_support/callbacks.rb:151:in `block in halting_and_conditional'
activesupport (4.2.0) lib/active_support/callbacks.rb:151:in `call'
activesupport (4.2.0) lib/active_support/callbacks.rb:151:in `block in halting_and_conditional'
activesupport (4.2.0) lib/active_support/callbacks.rb:151:in `call'
activesupport (4.2.0) lib/active_support/callbacks.rb:151:in `block in halting_and_conditional'
activesupport (4.2.0) lib/active_support/callbacks.rb:219:in `call'
activesupport (4.2.0) lib/active_support/callbacks.rb:219:in `block in halting_and_conditional'
activesupport (4.2.0) lib/active_support/callbacks.rb:219:in `call'
activesupport (4.2.0) lib/active_support/callbacks.rb:219:in `block in halting_and_conditional'
activesupport (4.2.0) lib/active_support/callbacks.rb:169:in `call'
activesupport (4.2.0) lib/active_support/callbacks.rb:169:in `block in halting'
activesupport (4.2.0) lib/active_support/callbacks.rb:169:in `call'
activesupport (4.2.0) lib/active_support/callbacks.rb:169:in `block in halting'
activesupport (4.2.0) lib/active_support/callbacks.rb:151:in `call'
activesupport (4.2.0) lib/active_support/callbacks.rb:151:in `block in halting_and_conditional'
activesupport (4.2.0) lib/active_support/callbacks.rb:169:in `call'
activesupport (4.2.0) lib/active_support/callbacks.rb:169:in `block in halting'
activesupport (4.2.0) lib/active_support/callbacks.rb:169:in `call'
activesupport (4.2.0) lib/active_support/callbacks.rb:169:in `block in halting'
activesupport (4.2.0) lib/active_support/callbacks.rb:234:in `call'
activesupport (4.2.0) lib/active_support/callbacks.rb:234:in `block in halting'
activesupport (4.2.0) lib/active_support/callbacks.rb:169:in `call'
activesupport (4.2.0) lib/active_support/callbacks.rb:169:in `block in halting'
activesupport (4.2.0) lib/active_support/callbacks.rb:92:in `call'
activesupport (4.2.0) lib/active_support/callbacks.rb:92:in `_run_callbacks'
activesupport (4.2.0) lib/active_support/callbacks.rb:734:in `_run_process_action_callbacks'
activesupport (4.2.0) lib/active_support/callbacks.rb:81:in `run_callbacks'
actionpack (4.2.0) lib/abstract_controller/callbacks.rb:19:in `process_action'
actionpack (4.2.0) lib/action_controller/metal/rescue.rb:29:in `process_action'
actionpack (4.2.0) lib/action_controller/metal/instrumentation.rb:31:in `block in process_action'
activesupport (4.2.0) lib/active_support/notifications.rb:164:in `block in instrument'
activesupport (4.2.0) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
activesupport (4.2.0) lib/active_support/notifications.rb:164:in `instrument'
actionpack (4.2.0) lib/action_controller/metal/instrumentation.rb:30:in `process_action'
actionpack (4.2.0) lib/action_controller/metal/params_wrapper.rb:250:in `process_action'
activerecord (4.2.0) lib/active_record/railties/controller_runtime.rb:18:in `process_action'
actionpack (4.2.0) lib/abstract_controller/base.rb:137:in `process'
actionview (4.2.0) lib/action_view/rendering.rb:30:in `process'
actionpack (4.2.0) lib/action_controller/metal.rb:195:in `dispatch'
actionpack (4.2.0) lib/action_controller/metal/rack_delegation.rb:13:in `dispatch'
actionpack (4.2.0) lib/action_controller/metal.rb:236:in `block in action'
actionpack (4.2.0) lib/action_dispatch/routing/route_set.rb:73:in `call'
actionpack (4.2.0) lib/action_dispatch/routing/route_set.rb:73:in `dispatch'
actionpack (4.2.0) lib/action_dispatch/routing/route_set.rb:42:in `serve'
actionpack (4.2.0) lib/action_dispatch/journey/router.rb:43:in `block in serve'
actionpack (4.2.0) lib/action_dispatch/journey/router.rb:30:in `each'
actionpack (4.2.0) lib/action_dispatch/journey/router.rb:30:in `serve'
actionpack (4.2.0) lib/action_dispatch/routing/route_set.rb:802:in `call'
recurring_select (1.3.0) app/middleware/recurring_select_middleware.rb:24:in `call'
warden (1.2.3) lib/warden/manager.rb:35:in `block in call'
warden (1.2.3) lib/warden/manager.rb:34:in `catch'
warden (1.2.3) lib/warden/manager.rb:34:in `call'
rack (1.6.4) lib/rack/etag.rb:24:in `call'
rack (1.6.4) lib/rack/conditionalget.rb:38:in `call'
rack (1.6.4) lib/rack/head.rb:13:in `call'
actionpack (4.2.0) lib/action_dispatch/middleware/params_parser.rb:27:in `call'
actionpack (4.2.0) lib/action_dispatch/middleware/flash.rb:260:in `call'
rack (1.6.4) lib/rack/session/abstract/id.rb:225:in `context'
rack (1.6.4) lib/rack/session/abstract/id.rb:220:in `call'
actionpack (4.2.0) lib/action_dispatch/middleware/cookies.rb:560:in `call'
activerecord (4.2.0) lib/active_record/query_cache.rb:36:in `call'
activerecord (4.2.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:647:in `call'
activerecord (4.2.0) lib/active_record/migration.rb:378:in `call'
actionpack (4.2.0) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
activesupport (4.2.0) lib/active_support/callbacks.rb:88:in `call'
activesupport (4.2.0) lib/active_support/callbacks.rb:88:in `_run_callbacks'
activesupport (4.2.0) lib/active_support/callbacks.rb:734:in `_run_call_callbacks'
activesupport (4.2.0) lib/active_support/callbacks.rb:81:in `run_callbacks'
actionpack (4.2.0) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
actionpack (4.2.0) lib/action_dispatch/middleware/reloader.rb:73:in `call'
actionpack (4.2.0) lib/action_dispatch/middleware/remote_ip.rb:78:in `call'
actionpack (4.2.0) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
actionpack (4.2.0) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
railties (4.2.0) lib/rails/rack/logger.rb:38:in `call_app'
railties (4.2.0) lib/rails/rack/logger.rb:20:in `block in call'
activesupport (4.2.0) lib/active_support/tagged_logging.rb:68:in `block in tagged'
activesupport (4.2.0) lib/active_support/tagged_logging.rb:26:in `tagged'
activesupport (4.2.0) lib/active_support/tagged_logging.rb:68:in `tagged'
railties (4.2.0) lib/rails/rack/logger.rb:20:in `call'
actionpack (4.2.0) lib/action_dispatch/middleware/request_id.rb:21:in `call'
rack (1.6.4) lib/rack/methodoverride.rb:22:in `call'
rack (1.6.4) lib/rack/runtime.rb:18:in `call'
activesupport (4.2.0) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
rack (1.6.4) lib/rack/lock.rb:17:in `call'
actionpack (4.2.0) lib/action_dispatch/middleware/static.rb:113:in `call'
rack (1.6.4) lib/rack/sendfile.rb:113:in `call'
railties (4.2.0) lib/rails/engine.rb:518:in `call'
railties (4.2.0) lib/rails/application.rb:164:in `call'
rack (1.6.4) lib/rack/tempfile_reaper.rb:15:in `call'
rack (1.6.4) lib/rack/lint.rb:49:in `_call'
rack (1.6.4) lib/rack/lint.rb:37:in `call'
rack (1.6.4) lib/rack/showexceptions.rb:24:in `call'
rack (1.6.4) lib/rack/commonlogger.rb:33:in `call'
sinatra (1.4.6) lib/sinatra/base.rb:218:in `call'
rack (1.6.4) lib/rack/chunked.rb:54:in `call'
rack (1.6.4) lib/rack/content_length.rb:15:in `call'
unicorn (4.9.0) lib/unicorn/http_server.rb:580:in `process_client'
unicorn (4.9.0) lib/unicorn/http_server.rb:674:in `worker_loop'
unicorn (4.9.0) lib/unicorn/http_server.rb:529:in `spawn_missing_workers'
unicorn (4.9.0) lib/unicorn/http_server.rb:140:in `start'
unicorn (4.9.0) bin/unicorn_rails:209:in `<top (required)>'
/var/deploy/development/web_head/shared/bundle/ruby/2.2.0/bin/unicorn_rails:23:in `load'
/var/deploy/development/web_head/shared/bundle/ruby/2.2.0/bin/unicorn_rails:23:in `<main>'

@ohenrik
Copy link

ohenrik commented Sep 29, 2015

I have the same problem, has any one found a workaround for this?

@ohenrik
Copy link

ohenrik commented Sep 30, 2015

The bug was caused by aws-sdk, since it did not ensure that the file it received to create a md5 checksum was open. See the above pull request for more information.

The file is by default closed by rest-client after its downloaded on this line in refile:
https://github.com/refile/refile/blob/master/lib/refile/attacher.rb#L106

@kcollignon
Copy link
Author

Thanks @ohenrik ! I hope that PR can get merged in quickly. :)

@kcollignon
Copy link
Author

@ohenrik this is now resolved in the latest release of the aws-sdk gem. Thanks so much for finding that! https://github.com/aws/aws-sdk-ruby/releases/tag/v2.1.31

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

Successfully merging a pull request may close this issue.

3 participants