Connection reset by peer: socket write error 的一个原因分析

转载 2013年12月02日 10:16:50

http://01404421.iteye.com/blog/699948


ClientAbortException:  java.net.SocketException: Connection reset by peer: socket write error

at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:366)

at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:432)

at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:311)

at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:293)

at org.apache.catalina.connector.Response.flushBuffer(Response.java:539)

at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:287)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)

at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)

at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)

at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)

at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)

at java.lang.Thread.run(Thread.java:626)

 

 

我的这个问题是在访问首页的时候出现的,关于这个问题网上有很多解决的方法,但是都局限于这几种:

 

1:服务器的并发连接数超过了其承载量,服务器会将其中一些连接Down掉;

2:客户关掉了浏览器,而服务器还在给客户端发送数据;

3:浏览器端按了Stop;

4:服务器给客户端响应结果给防火墙拦截了。

但是我排查了很久都还是找不到原因,刚开始以为是连接池的原因,搞了好几种连接池都还是这样,无奈只能把这个问题放下,但是每天看到都是很心烦,今天终于又鼓起勇气来排查这个问题,首先是写了一个打印,发现每次访问首页,这个打印始终执行很多次,后来终于把错误来源锁定到了一段自动载入图片的代码中,终于才发现我在web.xml中配置了404跳转到首页,而首页有一张图片丢失了,所以浏览器在载入这个图片的时候,服务器又会抛出404错误,然后转向到首页,而首页又找不到这个图片,就继续抛出404,就陷入了一个死循环,这样就是为什么一段打印代码会执行很多次的原因了。当这个死循环达到一定深度,就会触发上面第一个原因:服务器的并发数超过了其承载量,然后就会自动Down掉这些进程。

希望对遇到同样问题的同学有所帮助。

心得:在遇到问题的时候,不能把思路只放在局部,而要善于用联系的眼光来分析。

 


相关文章推荐

Connection reset by peer: socket write error错误分析及解决

Connection reset by peer: socket write error错误分析:常出现的Connection reset by peer: 原因可能是多方面的,不过更常见的原因是: ...
  • zangpuu
  • zangpuu
  • 2011年07月20日 09:47
  • 194455

”Connection reset by peer“引发的思考

”Connection reset by peer“引发的思考   闲来无事,把之前写的一个游戏服务器框架(《一个java页游服务器框架》),部署到阿里云服务器上,测试运行了下,结果...

socket常见异常

第1个异常是java.net.BindException:Address already in use: JVM_Bind。该异常发生在服务器端进行new ServerSocket(port)(por...

ClientAbortException: java.net.SocketException: Connection reset by peer: socket write error"异常原因分析

在网上查找了了下原因,大概归结为:  ClientAbortException: java.net.SocketException: Connection reset by peer: socket...

ClientAbortException,Connection reset by peer: socket write error

extremetable导出excel,弹出一个下载窗口,这时不点下载而点取消,则报下面的异常:   ClientAbortException  Caused by: java.net.SocketE...

连接redis时:Connection reset by peer: socket write error&&mysql:Access denied for user 'root'@'localhos

1、连接redis时:Connection reset by peer: socket write error 2、mysql:Access denied for user 'root'@'loca...

待解决:Connection reset by peer: socket write error

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failureThe last packet ...

Connection reset by peer: socket write error

Connection reset by peer: socket write error错误分析: Connection reset by peer: socket write error错误分析:...

pyspider连接rabbitmq ,结果出现socket.error: [Errno 104] Connection reset by peer 这样的报错信息

linux系统中: pyspider+rabbitmq+mongodb环境下启动pyspider时出现socket.error: [Errno 104] Connection reset by pe...

SSH error ( Read from socket failed: Connection reset by peer ) and it's solution

ssh cann't connected ,event in localhost [root@localhost ssh]# ssh 127.0.0.1 Read from socket fa...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Connection reset by peer: socket write error 的一个原因分析
举报原因:
原因补充:

(最多只允许输入30个字)