You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JBoss EAP 6.4升级至7.4后应用累积大量未关闭密钥库文件导致打开文件数超限问题咨询

JBoss EAP 6.4升级至7.4后应用累积大量未关闭密钥库文件导致打开文件数超限问题咨询

我有个基于Java 1.8的JBoss应用,使用的是旧的JKS格式密钥库,它位于类路径下,通过以下代码加载:

KeyStore.load(getClass().getClassLoader().getResourceAsStream(keystoreLocation), password);

这段代码没有被包裹在try块中,虽然按最佳实践应该确保InputStream被关闭,但之前在EAP 6.4环境下并未出现问题。

升级到EAP 7.4之后,我发现应用最终会耗尽打开文件的限额,抛出如下错误:

java.nio.file.FileSystemException: /opt/jboss-app/deployments: Too many open files

查看/proc/<PID>/fd后,我发现有数千个指向我的JKS密钥库的符号链接条目,数量已经达到了应用用户的4096文件上限,这些条目是在约3周的时间里累积起来的。

在EAP 6.4环境下我完全没有这个问题,而且迁移时的代码改动极少,根本没有碰过密钥库相关的交互逻辑。

配置层面,EAP迁移要求将旧的Web 2.2密钥库配置替换为Elytron TLS配置,供Undertow处理请求使用。

我知道这种升级可能存在很多潜在问题,所以不想问太宽泛的问题。我特别想确认:我的问题有没有可能是EAP 7.4没有关闭getClass().getClassLoader().getResourceAsStream(keystoreLocation)返回的InputStream导致的?


编辑补充:看起来大部分密钥库文件的打开(且未关闭)操作发生在应用的入站API请求期间,但这时候我的应用代码里并没有主动调用keystore.load方法。所以可能这个原因并不成立?

备注:内容来源于stack exchange,提问作者BullroarerTook

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 09:28:10