httpclient - JVM Out.of.Memory 异常上的连接池关闭
问题描述
在 JVM 中收到 Out.Of.Memory 错误后,我在 httpclient 中观察到“连接池关闭”异常。
我正在使用 aws-java-sdk-s3 v1.11.547 awsClient 和 httpclient 4.5.8。JVM 抛出 Out.of.Memory 异常后,对 awsClient (getObject) 的任何调用都会失败。
以下提交https://github.com/apache/httpcomponents-client/commit/ca98ad69adad79de57d8b944ba524f7267a795cb似乎是原因。它在出现错误时关闭连接池,而不是关闭连接。
即使在进程从异常中恢复之后,对 awsClient 的调用也会继续失败。
这是 httpclient v4.5.7 以后的错误吗?此外,在执行不同的代码路径时收到 Out.Of.Memory,即除了对 awsClient 的调用之外,这是否意味着连接管理器在类实例之间共享?
解决方案
现在将其弃用到 v4.5.6 有效。允许连接泄漏而不是根据关闭的提交(在问题中共享)进行修复
推荐阅读
- r - 当 output_dir 包含空格时,使用 Rmarkdown 生成 PDF 文档时出错
- terraform - 在计划阶段“创建”和“销毁”的顺序是什么?
- python - 使用 BeautifulSoup 提取正确信息的问题
- multithreading - c++ 中的多线程尝试 - 它在做我想要的吗?
- wordpress - wp_register_script 快疯了
- javascript - Javascript 读取 JSON 文件,然后以 HTML 格式显示
- ios - 从 collectionView 中显示的图像数组中删除图像
- java - 查找索引另一个列表中的所有索引,其中值与第一个列表中的值相同
- python - 为什么运行代码时在“±”前面打印“”?
- mysql - 具有相同和不同列的两个mysql查询的联合结果