See bug 12810

> -----Original Message-----
> From: Greg Strobl [mailto:[EMAIL PROTECTED]] 
> Sent: Thursday, December 12, 2002 9:38 AM
> To: '[EMAIL PROTECTED]'
> Subject: Problem with Socket closing
> 
> 
> Hi,
> 
> Tomcat 4.1.12
> OS: W2K
> JRE: Sun 1.4.1_01  (Originally found using 1.4.0)
> 
> I am seeing a problem with Tomcat closing a socket connection 
> and having a write error. This happens with both SSL and 
> regular sockets (the log example that is at the end show an 
> SSL example.) I can reproduce the problem at times but 
> sometimes that test case works (and the page renders as it
> should.) Our website sits on top of a data warehouse and I 
> mostly experience the problem with the pages that have the 
> longer queries. 
> 
> Does anybody know why this happens? Is there a fix? What can 
> I do to try figure out what is causing the problem? I have 
> turned up the debugging level on Tomcat (to 1) and that 
> didn't produce much more information. I have added
> (println) statements to my code to see if there is a problem 
> in it. It appears that my code always completes even when the 
> socket connection is broken.
> 
> Basically, I am at a point where I don't know what to try next.
> 
> Here is the log output:
> 
> 2002-12-11 17:07:28 ApplicationDispatcher[] Servlet.service() 
> for servlet jsp threw exception
> org.apache.jasper.JasperException: Connection has been shutdown:
> javax.net.ssl.SSLException: java.net.SocketException: 
> Software caused connection abort: socket write error
>       at 
> org.apache.jasper.servlet.JspServletWrapper.service(JspServlet
> Wrapper.java:2
> 48)
>       at
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet
> .java:289)
>       at 
> org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.invoke(Applicat
> ionDispatcher.
> java:684)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.doForward(Appli
> cationDispatch
> er.java:432)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.forward(Applica
> tionDispatcher
> .java:356)
>       at
> org.apache.jasper.runtime.PageContextImpl.forward(PageContextI
> mpl.java:427)
>       at org.apache.jsp.page_jsp._jspService(page_jsp.java:100)
>       at
> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:136)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>       at 
> org.apache.jasper.servlet.JspServletWrapper.service(JspServlet
> Wrapper.java:2
> 04)
>       at
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet
> .java:289)
>       at 
> org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.invoke(Applicat
> ionDispatcher.
> java:684)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.doForward(Appli
> cationDispatch
> er.java:432)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.forward(Applica
> tionDispatcher
> .java:356)
>       at
> org.apache.jasper.runtime.PageContextImpl.forward(PageContextI
> mpl.java:427)
>       at org.apache.jsp.page_jsp._jspService(page_jsp.java:116)
>       at
> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:136)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>       at 
> org.apache.jasper.servlet.JspServletWrapper.service(JspServlet
> Wrapper.java:2
> 04)
>       at
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet
> .java:289)
>       at 
> org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilt
> er(Application
> FilterChain.java:247)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(Appli
> cationFilterCh
> ain.java:193)
>       at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardW
> rapperValve.ja
> va:260)
>       at 
> org.apache.catalina.core.StandardPipeline$StandardPipelineValv
> eContext.invok
> eNext(StandardPipeline.java:643)
>       at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipel
> ine.java:480)
>       at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>       at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardC
> ontextValve.ja
> va:191)
>       at 
> org.apache.catalina.core.StandardPipeline$StandardPipelineValv
> eContext.invok
> eNext(StandardPipeline.java:643)
>       at 
> org.apache.catalina.valves.CertificatesValve.invoke(Certificat
> esValve.java:2
> 46)
>       at 
> org.apache.catalina.core.StandardPipeline$StandardPipelineValv
> eContext.invok
> eNext(StandardPipeline.java:641)
>       at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipel
> ine.java:480)
>       at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>       at
> org.apache.catalina.core.StandardContext.invoke(StandardContex
> t.java:2396)
>       at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHost
> Valve.java:180
> )
>       at 
> org.apache.catalina.core.StandardPipeline$StandardPipelineValv
> eContext.invok
> eNext(StandardPipeline.java:643)
>       at 
> org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDi
> spatcherValve.
> java:170)
>       at 
> org.apache.catalina.core.StandardPipeline$StandardPipelineValv
> eContext.invok
> eNext(StandardPipeline.java:641)
>       at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReport
> Valve.java:172
> )
>       at 
> org.apache.catalina.core.StandardPipeline$StandardPipelineValv
> eContext.invok
> eNext(StandardPipeline.java:641)
>       at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipel
> ine.java:480)
>       at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>       at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEn
> gineValve.java
> :174)
>       at 
> org.apache.catalina.core.StandardPipeline$StandardPipelineValv
> eContext.invok
> eNext(StandardPipeline.java:643)
>       at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipel
> ine.java:480)
>       at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>       at
> org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.
> java:223)
>       at
> org.apache.coyote.http11.Http11Processor.process(Http11Process
> or.java:405)
>       at 
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandle
> r.processConne
> ction(Http11Protocol.java:380)
>       at
> org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoi
> nt.java:508)
>       at 
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(
> ThreadPool.jav
> a:533)
>       at java.lang.Thread.run(Thread.java:536)
> ----- Root Cause -----
> javax.net.ssl.SSLException: Connection has been shutdown:
> javax.net.ssl.SSLException: java.net.SocketException: 
> Software caused connection abort: socket write error
>       at com.sun.net.ssl.internal.ssl.SSLSocketImpl.d(DashoA6275)
>       at com.sun.net.ssl.internal.ssl.SSLSocketImpl.e(DashoA6275)
>       at 
> com.sun.net.ssl.internal.ssl.AppOutputStream.write(DashoA6275)
>       at 
> org.apache.coyote.http11.InternalOutputBuffer$OutputStreamOutp
> utBuffer.doWri
> te(InternalOutputBuffer.java:652)
>       at 
> org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(C
> hunkedOutputFi
> lter.java:166)
>       at 
> org.apache.coyote.http11.InternalOutputBuffer.doWrite(Internal
> OutputBuffer.j
> ava:523)
>       at org.apache.coyote.Response.doWrite(Response.java:513)
>       at
> org.apache.coyote.tomcat4.OutputBuffer.realWriteBytes(OutputBu
> ffer.java:380)
>       at
> org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:360)
>       at 
> org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:338)
>       at
> org.apache.tomcat.util.buf.IntermediateOutputStream.write(C2BC
> onverter.java:
> 273)
>       at
> sun.nio.cs.StreamEncoder$CharsetSE.writeBytes(StreamEncoder.java:334)
>       at
> sun.nio.cs.StreamEncoder$CharsetSE.implFlushBuffer(StreamEncod
er.java:402)
>       at
> sun.nio.cs.StreamEncoder$CharsetSE.implFlush(StreamEncoder.java:406)
>       at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:150)
>       at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:213)
>       at
> org.apache.tomcat.util.buf.WriteConvertor.flush(C2BConverter.java:222)
>       at
> org.apache.tomcat.util.buf.C2BConverter.flushBuffer(C2BConvert
> er.java:165)
>       at
> org.apache.coyote.tomcat4.OutputBuffer.realWriteChars(OutputBu
> ffer.java:576)
>       at
> org.apache.tomcat.util.buf.CharChunk.flushBuffer(CharChunk.java:388)
>       at
> org.apache.coyote.tomcat4.OutputBuffer.flush(OutputBuffer.java:340)
>       at 
> org.apache.coyote.tomcat4.CoyoteResponse.flushBuffer(CoyoteRes
> ponse.java:554
> )
>       at 
> org.apache.coyote.tomcat4.CoyoteResponseFacade.flushBuffer(Coy
> oteResponseFac
> ade.java:227)
>       at
> org.apache.jasper.runtime.JspWriterImpl.flush(JspWriterImpl.java:211)
>       at 
> org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntime
> Library.java:8
> 08)
>       at
> org.apache.jasper.runtime.PageContextImpl.include(PageContextI
> mpl.java:395)
>       at 
> org.apache.jasper.runtime.PageContextImpl.handlePageException(
> PageContextImp
> l.java:480)
>       at 
> org.apache.jsp.MakePage_jsp._jspService(MakePage_jsp.java:468)
>       at
> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:136)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>       at 
> org.apache.jasper.servlet.JspServletWrapper.service(JspServlet
> Wrapper.java:2
> 04)
>       at
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet
> .java:289)
>       at 
> org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.invoke(Applicat
> ionDispatcher.
> java:684)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.doForward(Appli
> cationDispatch
> er.java:432)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.forward(Applica
> tionDispatcher
> .java:356)
>       at
> org.apache.jasper.runtime.PageContextImpl.forward(PageContextI
> mpl.java:427)
>       at org.apache.jsp.page_jsp._jspService(page_jsp.java:100)
>       at
> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:136)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>       at 
> org.apache.jasper.servlet.JspServletWrapper.service(JspServlet
> Wrapper.java:2
> 04)
>       at
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet
> .java:289)
>       at 
> org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.invoke(Applicat
> ionDispatcher.
> java:684)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.doForward(Appli
> cationDispatch
> er.java:432)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.forward(Applica
> tionDispatcher
> .java:356)
>       at
> org.apache.jasper.runtime.PageContextImpl.forward(PageContextI
> mpl.java:427)
>       at org.apache.jsp.page_jsp._jspService(page_jsp.java:116)
>       at
> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:136)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>       at 
> org.apache.jasper.servlet.JspServletWrapper.service(JspServlet
> Wrapper.java:2
> 04)
>       at
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet
> .java:289)
>       at 
> org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilt
> er(Application
> FilterChain.java:247)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(Appli
> cationFilterCh
> ain.java:193)
>       at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardW
> rapperValve.ja
> va:260)
>       at 
> org.apache.catalina.core.StandardPipeline$StandardPipelineValv
> eContext.invok
> eNext(StandardPipeline.java:643)
>       at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipel
> ine.java:480)
>       at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>       at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardC
> ontextValve.ja
> va:191)
>       at 
> org.apache.catalina.core.StandardPipeline$StandardPipelineValv
> eContext.invok
> eNext(StandardPipeline.java:643)
>       at 
> org.apache.catalina.valves.CertificatesValve.invoke(Certificat
> esValve.java:2
> 46)
>       at 
> org.apache.catalina.core.StandardPipeline$StandardPipelineValv
> eContext.invok
> eNext(StandardPipeline.java:641)
>       at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipel
> ine.java:480)
>       at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>       at
> org.apache.catalina.core.StandardContext.invoke(StandardContex
> t.java:2396)
>       at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHost
> Valve.java:180
> )
>       at 
> org.apache.catalina.core.StandardPipeline$StandardPipelineValv
> eContext.invok
> eNext(StandardPipeline.java:643)
>       at 
> org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDi
> spatcherValve.
> java:170)
>       at 
> org.apache.catalina.core.StandardPipeline$StandardPipelineValv
> eContext.invok
> eNext(StandardPipeline.java:641)
>       at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReport
> Valve.java:172
> )
>       at 
> org.apache.catalina.core.StandardPipeline$StandardPipelineValv
> eContext.invok
> eNext(StandardPipeline.java:641)
>       at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipel
> ine.java:480)
>       at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>       at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEn
> gineValve.java
> :174)
>       at 
> org.apache.catalina.core.StandardPipeline$StandardPipelineValv
> eContext.invok
> eNext(StandardPipeline.java:643)
>       at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipel
> ine.java:480)
>       at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>       at
> org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.
> java:223)
>       at
> org.apache.coyote.http11.Http11Processor.process(Http11Process
> or.java:405)
>       at 
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandle
> r.processConne
> ction(Http11Protocol.java:380)
>       at
> org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoi
> nt.java:508)
>       at 
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(
> ThreadPool.jav
> a:533)
>       at java.lang.Thread.run(Thread.java:536)
> Caused by: javax.net.ssl.SSLException: 
> java.net.SocketException: Software caused connection abort: 
> socket write error
>       at com.sun.net.ssl.internal.ssl.BaseSSLSocketImpl.a(DashoA6275)
>       at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
>       at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
>       at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
>       at 
> com.sun.net.ssl.internal.ssl.AppOutputStream.write(DashoA6275)
>       at 
> org.apache.coyote.http11.InternalOutputBuffer$OutputStreamOutp
> utBuffer.doWri
> te(InternalOutputBuffer.java:652)
>       at 
> org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(C
> hunkedOutputFi
> lter.java:171)
>       at 
> org.apache.coyote.http11.InternalOutputBuffer.doWrite(Internal
> OutputBuffer.j
> ava:523)
>       at org.apache.coyote.Response.doWrite(Response.java:513)
>       at
> org.apache.coyote.tomcat4.OutputBuffer.realWriteBytes(OutputBu
> ffer.java:380)
>       at
> org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:360)
>       at 
> org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:338)
>       at
> org.apache.tomcat.util.buf.IntermediateOutputStream.write(C2BC
> onverter.java:
> 273)
>       at
> sun.nio.cs.StreamEncoder$CharsetSE.writeBytes(StreamEncoder.java:334)
>       at
> sun.nio.cs.StreamEncoder$CharsetSE.implFlushBuffer(StreamEncod
er.java:402)
>       at
> sun.nio.cs.StreamEncoder$CharsetSE.implFlush(StreamEncoder.java:406)
>       at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:150)
>       at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:213)
>       at
> org.apache.tomcat.util.buf.WriteConvertor.flush(C2BConverter.java:222)
>       at
> org.apache.tomcat.util.buf.C2BConverter.flushBuffer(C2BConvert
> er.java:165)
>       at
> org.apache.coyote.tomcat4.OutputBuffer.realWriteChars(OutputBu
> ffer.java:576)
>       at
> org.apache.tomcat.util.buf.CharChunk.flushBuffer(CharChunk.java:388)
>       at
> org.apache.coyote.tomcat4.OutputBuffer.flush(OutputBuffer.java:340)
>       at java.io.PrintWriter.flush(PrintWriter.java:120)
>       at
> org.apache.coyote.tomcat4.CoyoteWriter.flush(CoyoteWriter.java:97)
>       at
> org.apache.jasper.runtime.JspWriterImpl.flush(JspWriterImpl.java:209)
>       at 
> org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntime
> Library.java:8
> 08)
>       at 
> org.apache.jsp.MakePage_jsp._jspService(MakePage_jsp.java:460)
>       ... 59 more
> Caused by: java.net.SocketException: Software caused 
> connection abort: socket write error
>       at java.net.SocketOutputStream.socketWrite0(Native Method)
>       at
> java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
>       at 
> java.net.SocketOutputStream.write(SocketOutputStream.java:136)
>       at com.sun.net.ssl.internal.ssl.OutputRecord.a(DashoA6275)
>       ... 84 more
> 
> Greg Strobl
> Analytical Healthcare Solutions
> 
> 
> --
> To unsubscribe, e-mail:   
> <mailto:tomcat-dev-> [EMAIL PROTECTED]>
> For 
> additional commands, 
> e-mail: <mailto:[EMAIL PROTECTED]>
> 


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to