JVM 上的连接池关闭 Out.of.Memory 异常

Connection Pool shutdown on JVM Out.of.Memory exception

我在 JVM 中收到 Out.Of.Memory 错误后,在 httpclient 中观察到 "Connection pool shut down" 异常。

我正在使用 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以后的bug吗?此外,在执行不同的代码路径时收到 Out.Of.Memory,即除了调用 awsClient 之外,这是否意味着连接管理器在 class 个实例之间共享?

暂时将其弃用到 v4.5.6。允许连接泄漏而不是根据关闭

的提交(在问题中共享)进行修复