【问题标题】:Ruby Excon SSL SocketError: read finished ARuby Excon SSL SocketError: 读完 A
【发布时间】:2014-06-10 21:57:20
【问题描述】:

将 Ruby on Rails 与 Carrierwave + Fog 结合使用,后者依赖 Excon 连接到 S3。 Rails 服务器正在 AWS EC2 上运行。大多数情况下,Carrierwave 上传器工作正常,但我经常收到以下错误和堆栈跟踪:

Excon::Errors::SocketError: SSL_connect SYSCALL returned=5 errno=0 state=SSLv3 read finished A (OpenSSL::SSL::SSLError)
…y/gems/2.1.0/gems/excon-0.36.0/lib/excon/ssl_socket.rb: 105:in `connect_nonblock'
…y/gems/2.1.0/gems/excon-0.36.0/lib/excon/ssl_socket.rb: 105:in `block in initialize'
/usr/local/lib/ruby/2.1.0/timeout.rb:  91:in `block in timeout'
/usr/local/lib/ruby/2.1.0/timeout.rb:  35:in `block in catch'
/usr/local/lib/ruby/2.1.0/timeout.rb:  35:in `catch'
/usr/local/lib/ruby/2.1.0/timeout.rb:  35:in `catch'
/usr/local/lib/ruby/2.1.0/timeout.rb: 106:in `timeout'
…y/gems/2.1.0/gems/excon-0.36.0/lib/excon/ssl_socket.rb: 101:in `initialize'
…y/gems/2.1.0/gems/excon-0.36.0/lib/excon/connection.rb: 414:in `new'
…y/gems/2.1.0/gems/excon-0.36.0/lib/excon/connection.rb: 414:in `socket'
…y/gems/2.1.0/gems/excon-0.36.0/lib/excon/connection.rb: 126:in `request_call'
…/2.1.0/gems/excon-0.36.0/lib/excon/middlewares/mock.rb:  42:in `request_call'
…ems/excon-0.36.0/lib/excon/middlewares/instrumentor.rb:  22:in `request_call'
…/2.1.0/gems/excon-0.36.0/lib/excon/middlewares/base.rb:  15:in `request_call'
…/2.1.0/gems/excon-0.36.0/lib/excon/middlewares/base.rb:  15:in `request_call'
…/2.1.0/gems/excon-0.36.0/lib/excon/middlewares/base.rb:  15:in `request_call'
…y/gems/2.1.0/gems/excon-0.36.0/lib/excon/connection.rb: 269:in `request'
…/gems/excon-0.36.0/lib/excon/middlewares/idempotent.rb:  12:in `error_call'
…/2.1.0/gems/excon-0.36.0/lib/excon/middlewares/base.rb:  10:in `error_call'
…/2.1.0/gems/excon-0.36.0/lib/excon/middlewares/base.rb:  10:in `error_call'
…y/gems/2.1.0/gems/excon-0.36.0/lib/excon/connection.rb: 292:in `rescue in request'
…y/gems/2.1.0/gems/excon-0.36.0/lib/excon/connection.rb: 229:in `request'
…/gems/excon-0.36.0/lib/excon/middlewares/idempotent.rb:  12:in `error_call'
…/2.1.0/gems/excon-0.36.0/lib/excon/middlewares/base.rb:  10:in `error_call'
…/2.1.0/gems/excon-0.36.0/lib/excon/middlewares/base.rb:  10:in `error_call'
…y/gems/2.1.0/gems/excon-0.36.0/lib/excon/connection.rb: 292:in `rescue in request'
…y/gems/2.1.0/gems/excon-0.36.0/lib/excon/connection.rb: 229:in `request'
…/gems/excon-0.36.0/lib/excon/middlewares/idempotent.rb:  12:in `error_call'
…/2.1.0/gems/excon-0.36.0/lib/excon/middlewares/base.rb:  10:in `error_call'
…/2.1.0/gems/excon-0.36.0/lib/excon/middlewares/base.rb:  10:in `error_call'
…y/gems/2.1.0/gems/excon-0.36.0/lib/excon/connection.rb: 292:in `rescue in request'
…y/gems/2.1.0/gems/excon-0.36.0/lib/excon/connection.rb: 229:in `request'
…/2.1.0/gems/fog-core-1.22.0/lib/fog/core/connection.rb:  56:in `request'
…cal/lib/ruby/gems/2.1.0/gems/fog-1.22.1/lib/fog/xml.rb:  23:in `request'
…ruby/gems/2.1.0/gems/fog-1.22.1/lib/fog/aws/storage.rb: 535:in `request'
…/fog-1.22.1/lib/fog/aws/requests/storage/put_object.rb:  31:in `put_object'
…1.0/gems/fog-1.22.1/lib/fog/aws/models/storage/file.rb: 199:in `save'
…/2.1.0/gems/fog-core-1.22.0/lib/fog/core/collection.rb:  51:in `create'
…gems/carrierwave-0.10.0/lib/carrierwave/storage/fog.rb: 261:in `store'
…gems/carrierwave-0.10.0/lib/carrierwave/storage/fog.rb:  80:in `store!'
…s/carrierwave-0.10.0/lib/carrierwave/uploader/store.rb:  59:in `block in store!'
…rrierwave-0.10.0/lib/carrierwave/uploader/callbacks.rb:  17:in `with_callbacks'
…s/carrierwave-0.10.0/lib/carrierwave/uploader/store.rb:  58:in `store!'
…2.1.0/gems/carrierwave-0.10.0/lib/carrierwave/mount.rb: 375:in `store!'
…2.1.0/gems/carrierwave-0.10.0/lib/carrierwave/mount.rb: 207:in `store_finish_image!'

知道发生了什么吗?

【问题讨论】:

    标签: ruby ssl amazon-s3 fog excon


    【解决方案1】:

    作为第一步,我建议升级到 0.37.0。我在那里修复了一个关于分块编码的错误,不确定它会以这种方式表现出来,但最好在走错路之前减少可能性。

    更新:没有什么能引起我的注意,但写作应该是幂等的。如果这是间歇性的,最好/最简单的方法是针对这个特定错误进行救援/重试。

    【讨论】:

    • 我已将所有 gem 升级到 0.37.0,包括 excon,但仍然出现同样的错误。
    猜你喜欢
    • 2013-07-20
    • 1970-01-01
    • 2012-12-14
    • 2016-06-01
    • 2016-03-07
    • 1970-01-01
    • 2016-11-30
    • 1970-01-01
    • 2013-10-02
    相关资源
    最近更新 更多