Mantis - Resin
Viewing Issue Advanced Details
701 minor always 01-04-06 14:31 01-16-06 09:46
ferg  
ferg  
urgent  
closed  
fixed  
none    
none 3.0.18  
0000701: OpenSSL response error
(rep by Brian Lovrin)

The SSL3_WRITE_PENDING error still occurs. Attached are two example stack traces that we've seen. The "WriteStream.nextBuffer()" errors happen more frequently than "WriteStream.flushBuffer()".

Resin version is 3.0.17
OpenSSL version is 0.9.7f
Java version is 1.5.0_03

java.io.IOException: 17392:error:1409F07F:SSL routines:SSL3_WRITE_PENDING:bad write retry:s3_pkt.c:730:

    at com.caucho.vfs.JniStream.writeNative(Native Method)
    at com.caucho.vfs.JniStream.write(JniStream.java:129)
    at com.caucho.vfs.WriteStream.nextBuffer(WriteStream.java:311)
    at com.caucho.server.connection.ResponseStream.nextBuffer(ResponseStream.java:308)
    at com.caucho.vfs.i18n.ISO8859_1Writer.write(ISO8859_1Writer.java:114)
    at com.caucho.server.connection.ToByteResponseStream.flushCharBuffer(ToByteResponseStream.java:469)
    at com.caucho.server.connection.ToByteResponseStream.write(ToByteResponseStream.java:321)
    at com.caucho.server.connection.ServletOutputStreamImpl.write(ServletOutputStreamImpl.java:68)
    at com.caucho.server.connection.IncludeResponseStream.writeNext(IncludeResponseStream.java:248)
    at com.caucho.server.connection.ToByteResponseStream.flushByteBuffer(ToByteResponseStream.java:518)
    at com.caucho.server.connection.ToByteResponseStream.flushBuffer(ToByteResponseStream.java:424)
    at com.caucho.server.connection.ToByteResponseStream.close(ToByteResponseStream.java:442)
    at com.caucho.server.connection.IncludeResponseStream.close(IncludeResponseStream.java:318)
    at com.caucho.server.connection.AbstractHttpResponse.finish(AbstractHttpResponse.java:1949)
    at com.caucho.server.connection.AbstractHttpResponse.close(AbstractHttpResponse.java:266)
    at com.caucho.server.webapp.RequestDispatcherImpl.include(RequestDispatcherImpl.java:516)
    at com.caucho.server.webapp.RequestDispatcherImpl.include(RequestDispatcherImpl.java:341)
    at com.caucho.jsp.PageContextImpl.include(PageContextImpl.java:897)
    at _jsp._main._profile__jsp._jspService(_profile__jsp.java:1186)
    at com.caucho.jsp.JavaPage.service(JavaPage.java:60)
    at com.caucho.jsp.Page.pageservice(Page.java:570)
    at com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:159)
    at com.caucho.server.cache.CacheFilterChain.doFilter(CacheFilterChain.java:209)
    at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:178)
    at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229)
    at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:267)
    at com.caucho.server.port.TcpConnection.run(TcpConnection.java:388)
    at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:490)
    at com.caucho.util.ThreadPool.run(ThreadPool.java:423)
    at java.lang.Thread.run(Thread.java:595)java.io.IOException: 17392:error:1409F07F:SSL routines:SSL3_WRITE_PENDING:bad write retry:s3_pkt.c:730:

    at com.caucho.vfs.JniStream.writeNative(Native Method)
    at com.caucho.vfs.JniStream.write(JniStream.java:129)
    at com.caucho.vfs.WriteStream.flushBuffer(WriteStream.java:372)
    at com.caucho.server.connection.AbstractHttpResponse.finish(AbstractHttpResponse.java:1968)
    at com.caucho.server.connection.AbstractHttpResponse.close(AbstractHttpResponse.java:266)
    at com.caucho.server.connection.AbstractHttpResponse.sendRedirect(AbstractHttpResponse.java:590)
    at _jsp._main._profile_22dprocess__jsp._jspService(_profile_22dprocess__jsp.java:115)
    at com.caucho.jsp.JavaPage.service(JavaPage.java:60)
    at com.caucho.jsp.Page.pageservice(Page.java:570)
    at com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:159)
    at com.caucho.server.cache.CacheFilterChain.doFilter(CacheFilterChain.java:188)
    at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:178)
    at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229)
    at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:267)
    at com.caucho.server.port.TcpConnection.run(TcpConnection.java:388)
    at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:490)
    at com.caucho.util.ThreadPool.run(ThreadPool.java:423)
    at java.lang.Thread.run(Thread.java:595)

Notes
(0000710)
ferg   
01-16-06 09:46   
On Solaris, the EINTR wasn't properly handled. Since Solaris propagages EINTR to all threads, not just the interrupted thread, this is important.