Net::HTTP response error using SSL connection
---------------------------------------------

                 Key: JRUBY-1222
                 URL: http://jira.codehaus.org/browse/JRUBY-1222
             Project: JRuby
          Issue Type: Bug
          Components: OpenSSL
    Affects Versions: JRuby 1.0.0
         Environment: Win32, JDK 1.5.0_12, JRuby 1.0, jruby-openssl 0.0.3
            Reporter: Dan Sketcher
            Assignee: Thomas E Enebo
            Priority: Critical
         Attachments: https_test.rb

When making an SSL encrypted HTTP request, responses over a certain length time 
out. It seems as though it cannot make it to the full end of the response. 

Sometimes a stack trace is returned, sometimes it just hangs indefinitely.

Attached is a replication implementation that works on 
C:\development>ruby -v
ruby 1.8.5 (2006-12-25 patchlevel 12) [i386-mswin32]

but not on
C:\development>jruby -v
ruby 1.8.5 (2007-06-07 rev 3841) [x86-jruby1.0]


Stack trace 1:
----------
SocketChannelImpl.java:125:in `sun.nio.ch.SocketChannelImpl.ensureWriteOpen': 
java.nio.channels.ClosedChannelException: null (NativeExceptio
n)
        from SocketChannelImpl.java:294:in `sun.nio.ch.SocketChannelImpl.write'
        from SSLSocket.java:271:in `org.jruby.ext.openssl.SSLSocket.flushData'
        from SSLSocket.java:371:in `org.jruby.ext.openssl.SSLSocket.doShutdown'
        from SSLSocket.java:430:in `org.jruby.ext.openssl.SSLSocket.close'
        from SSLSocket.java:437:in `org.jruby.ext.openssl.SSLSocket.sysclose'
        from null:-1:in `org.jruby.ext.openssl.SSLSocketInvokersysclose0.call'
        from FastInvocationCallback.java:49:in 
`org.jruby.runtime.callback.FastInvocationCallback.execute'
        from SimpleCallbackMethod.java:81:in 
`org.jruby.internal.runtime.methods.SimpleCallbackMethod.call'
         ... 60 levels...
        from C:/jruby-1.0/lib/ruby/1.8/net/http.rb:1035:in `request'
        from C:/jruby-1.0/lib/ruby/1.8/net/http.rb:989:in `request_post'
        from https_test.rb:22
Complete Java stackTrace
java.nio.channels.ClosedChannelException
        at 
sun.nio.ch.SocketChannelImpl.ensureWriteOpen(SocketChannelImpl.java:125)
        at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:294)
        at org.jruby.ext.openssl.SSLSocket.flushData(SSLSocket.java:271)
        at org.jruby.ext.openssl.SSLSocket.doShutdown(SSLSocket.java:371)
        at org.jruby.ext.openssl.SSLSocket.close(SSLSocket.java:430)
        at org.jruby.ext.openssl.SSLSocket.sysclose(SSLSocket.java:437)
        at org.jruby.ext.openssl.SSLSocketInvokersysclose0.call(Unknown Source)
        at 
org.jruby.runtime.callback.FastInvocationCallback.execute(FastInvocationCallback.java:49)
        at 
org.jruby.internal.runtime.methods.SimpleCallbackMethod.call(SimpleCallbackMethod.java:81)
        at 
org.jruby.evaluator.EvaluationState.vcallNode(EvaluationState.java:1756)
        at 
org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:382)
        at 
org.jruby.evaluator.EvaluationState.blockNode(EvaluationState.java:531)
        at 
org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:201)
        at org.jruby.evaluator.EvaluationState.eval(EvaluationState.java:164)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.internalCall(DefaultMethod.java:135)
        at 
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:79)
        at 
org.jruby.evaluator.EvaluationState.callNode(EvaluationState.java:568)
        at 
org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:207)
        at org.jruby.evaluator.EvaluationState.eval(EvaluationState.java:164)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.internalCall(DefaultMethod.java:135)
        at 
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:79)
        at 
org.jruby.evaluator.EvaluationState.callNode(EvaluationState.java:568)
        at 
org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:207)
        at 
org.jruby.evaluator.EvaluationState.blockNode(EvaluationState.java:531)
        at 
org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:201)
        at org.jruby.evaluator.EvaluationState.eval(EvaluationState.java:164)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.internalCall(DefaultMethod.java:135)
        at 
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:79)
        at 
org.jruby.evaluator.EvaluationState.vcallNode(EvaluationState.java:1756)
        at 
org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:382)
        at 
org.jruby.evaluator.EvaluationState.ensureNode(EvaluationState.java:986)
        at 
org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:247)
        at 
org.jruby.evaluator.EvaluationState.blockNode(EvaluationState.java:531)
        at 
org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:201)
        at org.jruby.evaluator.EvaluationState.eval(EvaluationState.java:164)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.internalCall(DefaultMethod.java:135)
        at 
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:79)
        at org.jruby.RubyObject.callMethod(RubyObject.java:564)
        at 
org.jruby.evaluator.EvaluationState.fCallNode(EvaluationState.java:1030)
        at 
org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:253)
        at 
org.jruby.evaluator.EvaluationState.blockNode(EvaluationState.java:531)
        at 
org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:201)
        at org.jruby.evaluator.EvaluationState.eval(EvaluationState.java:164)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.internalCall(DefaultMethod.java:135)
        at 
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:79)
        at 
org.jruby.evaluator.EvaluationState.fCallNode(EvaluationState.java:1023)
        at 
org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:253)
        at org.jruby.evaluator.EvaluationState.eval(EvaluationState.java:164)
        at 
org.jruby.internal.runtime.methods.DefaultMethod.internalCall(DefaultMethod.java:135)
        at 
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:79)
        at 
org.jruby.internal.runtime.methods.AliasMethod.call(AliasMethod.java:71)
        at 
org.jruby.evaluator.EvaluationState.callNode(EvaluationState.java:568)
        at 
org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:207)
        at 
org.jruby.evaluator.EvaluationState.localAsgnNode(EvaluationState.java:1234)
        at 
org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:286)
        at 
org.jruby.evaluator.EvaluationState.blockNode(EvaluationState.java:531)
        at 
org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:201)
        at 
org.jruby.evaluator.EvaluationState.rootNode(EvaluationState.java:1609)
        at 
org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:356)
        at org.jruby.evaluator.EvaluationState.eval(EvaluationState.java:164)
        at org.jruby.Ruby.eval(Ruby.java:287)
        at org.jruby.Ruby.compileOrFallbackAndRun(Ruby.java:315)
        at org.jruby.Main.runInterpreter(Main.java:228)
        at org.jruby.Main.runInterpreter(Main.java:173)
        at org.jruby.Main.run(Main.java:120)
        at org.jruby.Main.main(Main.java:95)
----------

Stack trace 2:
----------
C:/jruby-1.0/lib/ruby/1.8/net/protocol.rb:91:in `read': End of file reached 
(EOFError)
        from C:/jruby-1.0/lib/ruby/1.8/net/http.rb:2230:in `read_chunked'
        from C:/jruby-1.0/lib/ruby/1.8/net/http.rb:2204:in `read_body_0'
        from C:/jruby-1.0/lib/ruby/1.8/net/http.rb:2170:in `read_body'
        from C:/jruby-1.0/lib/ruby/1.8/net/http.rb:2195:in `body'
        from C:/jruby-1.0/lib/ruby/1.8/net/http.rb:2134:in `reading_body'
        from C:/jruby-1.0/lib/ruby/1.8/net/http.rb:1051:in `request'
        from C:/jruby-1.0/lib/ruby/1.8/net/http.rb:1034:in `request'
        from C:/jruby-1.0/lib/ruby/1.8/net/http.rb:989:in `start'
        from C:/jruby-1.0/lib/ruby/1.8/net/http.rb:1035:in `request'
        from C:/jruby-1.0/lib/ruby/1.8/net/http.rb:989:in `request_post'
        from http_test.rb:20
----------

Stack trace 3:
----------
C:/jruby-1.0/lib/ruby/1.8/net/protocol.rb:120:in `readuntil': End of file 
reached (EOFError)
        from C:/jruby-1.0/lib/ruby/1.8/net/protocol.rb:126:in `readline'
        from C:/jruby-1.0/lib/ruby/1.8/net/http.rb:2224:in `read_chunked'
        from C:/jruby-1.0/lib/ruby/1.8/net/http.rb:2204:in `read_body_0'
        from C:/jruby-1.0/lib/ruby/1.8/net/http.rb:2170:in `read_body'
        from C:/jruby-1.0/lib/ruby/1.8/net/http.rb:2195:in `body'
        from C:/jruby-1.0/lib/ruby/1.8/net/http.rb:2134:in `reading_body'
        from C:/jruby-1.0/lib/ruby/1.8/net/http.rb:1051:in `request'
        from C:/jruby-1.0/lib/ruby/1.8/net/http.rb:1034:in `request'
        from C:/jruby-1.0/lib/ruby/1.8/net/http.rb:989:in `start'
        from C:/jruby-1.0/lib/ruby/1.8/net/http.rb:1035:in `request'
        from C:/jruby-1.0/lib/ruby/1.8/net/http.rb:989:in `request_post'
        from http_test.rb:20
----------

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email

Reply via email to