我不确定这是Heroku的操作系统错误。当我打开从Heroku到此站点的HTTPS连接时:https://www.economicclub.ca/events/由ruby。 Heroku的过程崩溃了。使用开始/救援在这种情况下不起作用。以下是我的测试代码。
https://gist.github.com/jacobdam/9244453
我尝试使用ruby 1.9.3和2.0。错误仍在发生。
任何人都有解决方案来解决这个问题吗?
答案 0 :(得分:1)
我也看过ruby 2.0.0和2.1.1,但2.1.0似乎没有受到影响。它抛出错误而不是segfaulting:
OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv2/v3 read server hello A: (null)
from /app/vendor/ruby-2.1.0/lib/ruby/2.1.0/net/http.rb:920:in `connect'
from /app/vendor/ruby-2.1.0/lib/ruby/2.1.0/net/http.rb:920:in `block in connect'
from /app/vendor/ruby-2.1.0/lib/ruby/2.1.0/timeout.rb:67:in `timeout'
from /app/vendor/ruby-2.1.0/lib/ruby/2.1.0/net/http.rb:920:in `connect'
from /app/vendor/ruby-2.1.0/lib/ruby/2.1.0/net/http.rb:863:in `do_start'
from /app/vendor/ruby-2.1.0/lib/ruby/2.1.0/net/http.rb:852:in `start'
from /app/vendor/ruby-2.1.0/lib/ruby/2.1.0/net/http.rb:583:in `start'
from (irb):7
因此,使用2.1.0是一种可行的解决方法。我已经问过heroku支持,所以我们会看看他们是否提出了其他任何问题。
根据Heroku支持的响应进行更新:这可能是相关的红宝石错误: https://bugs.ruby-lang.org/issues/9592。这只是一些旧版OpenSSL的问题,而heroku显然正在运行其中一个版本。另一种解决方法是将ruby修复到Gemfile中的特定补丁级别:
ruby '2.1.1', patchlevel: '0'
或
ruby '2.0.0', patchlevel: '353'
似乎没有这个问题。