Welcome to the "trac"-ing site of http-access2!
[soap4r] [httpclient] [openpgp4u] [pkcs1] [logger] [csv] [vtr]

Ticket #120 (closed defect: fixed)

Opened 2 years ago

Last modified 1 year ago

http-access2 SSL keepalive fixes

Reported by: nahi Assigned to: nahi
Priority: high Milestone: 2.0.7
Component: core Version: 2.0
Keywords: Cc:

Description

I am using http-access2 to interface with with a system over HTTPS. If I made a connection that supported keepalives and then waited until the remote server closed the connection, I would get uncaught exceptions on the next request. I patched the code for the errors I was getting, the patch is attached below. Here are various exceptions I got when keepalives expired:

OpenSSL::SSL::SSLError: SSL_write:: bad write retry
        from /usr/lib/ruby/1.8/openssl/buffering.rb:178:in `syswrite'
        from /usr/lib/ruby/1.8/openssl/buffering.rb:178:in `do_write'
        from /usr/lib/ruby/1.8/openssl/buffering.rb:231:in `flush'
        from /usr/lib/ruby/site_ruby/1.8/http-access2.rb:1059:in `flush'
        from /usr/lib/ruby/site_ruby/1.8/http-access2.rb:1238:in `close'
        from /usr/lib/ruby/site_ruby/1.8/http-access2.rb:894:in `query'
        from /usr/lib/ruby/site_ruby/1.8/http-access2.rb:434:in `do_get_block'
        from /usr/lib/ruby/site_ruby/1.8/http-access2.rb:370:in `conn_request'
        from /usr/lib/ruby/site_ruby/1.8/http-access2.rb:285:in `request'
        from /usr/lib/ruby/site_ruby/1.8/http-access2.rb:260:in `get'

Errno::ECONNRESET: Connection reset by peer
        from /usr/lib/ruby/1.8/openssl/buffering.rb:178:in `syswrite'
        from /usr/lib/ruby/1.8/openssl/buffering.rb:178:in `do_write'
        from /usr/lib/ruby/1.8/openssl/buffering.rb:192:in `write'
        from /usr/lib/ruby/site_ruby/1.8/http-access2.rb:1053:in `<<'
        from /usr/lib/ruby/site_ruby/1.8/http-access2/http.rb:179:in `dump'
        from /usr/lib/ruby/site_ruby/1.8/http-access2/http.rb:386:in `dump'
        from /usr/lib/ruby/site_ruby/1.8/http-access2.rb:1213:in `query'
        from /usr/lib/ruby/site_ruby/1.8/http-access2.rb:1211:in `timeout'
        from /usr/lib/ruby/1.8/timeout.rb:62:in `timeout'
        from /usr/lib/ruby/site_ruby/1.8/http-access2.rb:1211:in `query'
        from /usr/lib/ruby/site_ruby/1.8/http-access2.rb:892:in `query'
        from /usr/lib/ruby/site_ruby/1.8/http-access2.rb:434:in `do_get_block'
        from /usr/lib/ruby/site_ruby/1.8/http-access2.rb:370:in `conn_request'
        from /usr/lib/ruby/site_ruby/1.8/http-access2.rb:285:in `request'
        from /usr/lib/ruby/site_ruby/1.8/http-access2.rb:260:in `get'

IOError: closed stream
        from /usr/lib/ruby/1.8/openssl/buffering.rb:178:in `syswrite'
        from /usr/lib/ruby/1.8/openssl/buffering.rb:178:in `do_write'
        from /usr/lib/ruby/1.8/openssl/buffering.rb:231:in `flush'
        from /usr/lib/ruby/site_ruby/1.8/http-access2.rb:1059:in `flush'
        from /usr/lib/ruby/site_ruby/1.8/http-access2.rb:1239:in `close'
        from /usr/lib/ruby/site_ruby/1.8/http-access2.rb:894:in `query'
        from /usr/lib/ruby/site_ruby/1.8/http-access2.rb:434:in `do_get_block'
        from /usr/lib/ruby/site_ruby/1.8/http-access2.rb:370:in `conn_request'
        from /usr/lib/ruby/site_ruby/1.8/http-access2.rb:285:in `request'
        from /usr/lib/ruby/site_ruby/1.8/http-access2.rb:260:in `get'

Change History

07/17/06 13:09:20 changed by nahi

  • priority changed from normal to high.
  • milestone changed from undefined to 2.0.7.

04/28/07 23:57:07 changed by nahi

  • status changed from new to closed.
  • resolution set to fixed.

applied at [134]. Thanks!