Spring AI 1.1.2 BUG排行榜:RST_STREAM错误修复

2026-06-14阅读 0热度 0
stream

Spring AI 异常排查:RST_STREAM 内部错误根源解析

使用 Spring AI 的开发者或许会遇到一个令人困惑的运行时异常:应用在正常运行一段时间后,毫无预警地抛出 RST_STREAM: Internal error。从表面看,这个错误极易被误判为服务端故障,导致排查方向偏差。

Spring AI 1.1.2 框架BUG解决RST_STREAM: Internal error

该错误并非启动即现,而是通常出现在持续运行或并发请求增加之后。通过抓包分析,发现 TCP 连接挥手过程中,服务端主动向客户端发送了 RST 标志。服务端工程师坚称自身逻辑无误,一度使问题陷入死胡同。

问题解决路径

既然疑点指向客户端,需从底层源码开始排查。阅读 Spring AI 源码可知,其默认底层通信依赖 WebClient 客户端。

而 WebClient 在默认配置下会启用连接池。连接池本意是提升性能,但恰恰在此埋下了隐患。

临时规避方案

禁用连接池

    @Bean
    public WebClient.Builder webClientBuilder() {
        ConnectionProvider noPoolProvider = ConnectionProvider.newConnection();
        HttpClient httpClient = HttpClient.create(noPoolProvider)
                .option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 9000)
                .doOnConnected(conn ->
                        conn.addHandlerLast(new ReadTimeoutHandler(9000))
                );

        return WebClient.builder().clientConnector(new ReactorClientHttpConnector(httpClient));
    }

此修改快速解决了问题,但仅能作为临时应急手段。核心疑问依然存在:为何连接池会触发异常,而禁用后则正常?

深度根因分析

经过反复验证,最终定位到一个隐藏在 Netty 代码库中的严重缺陷。

最终修复策略:

问题的根本原因是 Netty 的一个已知漏洞(CVE-2025-55163),受影响的版本范围如下:

  1. io.netty:netty-codec-http2 版本 <= 4.1.123.Final
  2. io.netty:netty-codec-http2 版本 >= 4.2.0.Alpha1, <= 4.2.3.Final

解决方案十分直接:升级 Spring AI 项目所依赖的 Netty 版本,避开上述缺陷版本。推荐升级至 4.1.131.Final


    
    
        io.netty
        netty-all
        4.1.131.Final
    

在 Spring Boot 环境下,需特别注意依赖声明的顺序。Netty BOM 必须置于 Spring Boot BOM 之前,否则会被后者覆盖,导致升级失效。


    org.springframework.cloud
    spring-cloud-dependencies
    ${spring-cloud.version}
    pom
    import


    io.netty
    netty-bom
    ${netty.version}
    pom
    import


    org.springframework.boot
    spring-boot-dependencies
    ${spring-boot.version}
    pom
    import


    org.springframework.ai
    spring-ai-bom
    ${spring-ai.version}
    pom
    import

这个隐藏的坑位虽然不易察觉,但只要理清依赖优先级与 Netty 版本锁定,问题便能彻底化解。

免责声明

本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。

相关阅读

更多
欢迎回来 登录或注册后,可保存提示词和历史记录
登录后可同步收藏、历史记录和常用模板
注册即表示同意服务条款与隐私政策