分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

记录一个使用HttpClient过程中的一个bug

发布时间:2023-09-06 01:09责任编辑:顾先生关键词:暂无标签

最近用HttpClient进行链接请求,开了多线程之后发现经常有线程hang住,查看线程dump

java.lang.Thread.State: RUNNABLE ???at java.net.SocketInputStream.socketRead0(Native Method) ???at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) ???at java.net.SocketInputStream.read(SocketInputStream.java:170) ???at java.net.SocketInputStream.read(SocketInputStream.java:141) ???at org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:139) ???at org.apache.http.impl.io.SessionInputBufferImpl.fillBuffer(SessionInputBufferImpl.java:155) ???at org.apache.http.impl.io.SessionInputBufferImpl.readLine(SessionInputBufferImpl.java:284) ???at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:140) ???at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:57) ???at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:261) ???at org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:165) ???at org.apache.http.impl.conn.CPoolProxy.receiveResponseHeader(CPoolProxy.java:167) ???at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:272) ???at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:124) ???at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:271) ???at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184) ???at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88) ???at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110) ???at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184) ???at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:71) ???at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:220) ???at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:164) ???at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:139)

一直就停留在java.net.SocketInputStream.socketRead0 这个Native方法,单步调试了之后发现timeout参数也传入了,后来在网上搜索发现这个是jdk一个bug

https://stackoverflow.com/questions/25968769/got-stuck-at-java-net-socketinputstream-socketread0native-method

https://bugs.openjdk.java.net/browse/JDK-8075484

我用的是8u111貌似不在修复列表,下了8u144

记录一个使用HttpClient过程中的一个bug

原文地址:http://www.cnblogs.com/lcxdever/p/7481912.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved