jruby-openssl vs mri openssl - Socket Closed

531 views Asked by At

Issue: Net::HTTP calls failing when using jruby with a OpenSSL::SSLError Socket Closed, but working fine using MRI.

Side Note: Calls to many servers work, however this app is calling to a cisco sensor. Again, it works via MRI but not Jruby. I've tried a number of different things to no avail. I've tried jruby 1.6.7, 1.7, and the recently released 1.7.1.dev. I've also tried jruby-openssl-0.7.4, 0.7.7, and 0.8.0.pre3. I've even tried running the script with from Ruby 1.8, and 1.9.

Failing At https://github.com/jruby/jruby/blob/master/src/org/jruby/ext/openssl/SSLSocket.java#L404 ?

Similar Issue in research: http://jira.codehaus.org/browse/JRUBY-6346

Small Back Trace Excerpt

org/jruby/ext/openssl/Utils.java:79:in newError'
org/jruby/ext/openssl/SSL.java:92:innewSSLError'
org/jruby/ext/openssl/SSLSocket.java:192:in connectCommon'
org/jruby/ext/openssl/SSLSocket.java:162:inconnect'
org/jruby/runtime/callsite/CachingCallSite.java:306:in cacheAndCall'
org/jruby/runtime/callsite/CachingCallSite.java:136:incall'
org/jruby/ast/CallNoArgNode.java:64:in interpret'
org/jruby/ast/NewlineNode.java:105:ininterpret'

I have scoured google with no luck. Any help would be greatly appreciated.

It should also be noted that I am running OSX Mountain Lion 10.8.2.

[UPDATE]

I have ran out of time to debug this and used the following workaround: Gemfile

gem 'typhoeus'

Test method

def send_post(url, body)
  response  = Typhoeus::Request.post(url,
    :method => :post,
    :disable_ssl_host_verification => true,
    :disable_ssl_peer_verification => true,
    :username => @auth[:username],
    :password => @auth[:password],
    :headers => {
      'Accept' => 'text/xml',
      'Content-type' => 'application/binary',
      'Connection' => 'keepalive',
      'Accept-Charset' => 'iso-8859-1,*,utf-8',
      'Pragma' => 'no-cache',
      'Cache-Control' => 'no-cache',
    },
    :body => body
  )
  response
end
0

There are 0 answers