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

本地XMPP连接随机断开伴XMLStreamException问题排查求助

故障原因分析:XMPP连接随机断开并触发XML解析异常

问题背景

我们的两个应用通过本地XMPP服务器通信,日常消息交互正常,但连接会随机断开;执行大批次任务时,几乎必然在运行中出现连接断开。报错显示在[39341,25831]位置发生XML解析异常,但我们从未传输过这么大的数据,请求分析故障原因。

错误日志

2022-12-22T21:06:49.406-0500 WARN Connection XMPPTCPConnection[user1@localhost/Avert] (0) closed with error
org.jivesoftware.smack.xml.XmlPullParserException: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[39341,25831]
Message: Connection reset
    at org.jivesoftware.smack.xml.stax.StaxXmlPullParser.next(StaxXmlPullParser.java:193) ~[smack-xmlparser-stax-4.4.3.jar!/:4.4.3]
    at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPConnection.java:1140) ~[smack-tcp-4.4.3.jar!/:4.4.3]
    at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$700(XMPPTCPConnection.java:913) ~[smack-tcp-4.4.3.jar!/:4.4.3]
    at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnection.java:936) ~[smack-tcp-4.4.3.jar!/:4.4.3]
    at java.lang.Thread.run(Unknown Source) [?:?]
Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[39341,25831]
Message: Connection reset
    at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(Unknown Source) ~[?:?]
    at org.jivesoftware.smack.xml.stax.StaxXmlPullParser.next(StaxXmlPullParser.java:191) ~[smack-xmlparser-stax-4.4.3.jar!/:4.4.3]
    ... 4 more
21:06:49 XMPPConnection closed due to an exception (XMPPTCPConnection[user1@localhost/Avert] (0))
org.jivesoftware.smack.xml.XmlPullParserException: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[39341,25831]
Message: Connection reset
    at org.jivesoftware.smack.xml.stax.StaxXmlPullParser.next(StaxXmlPullParser.java:193)
    at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPConnection.java:1140)
    at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$700(XMPPTCPConnection.java:913)
    at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnection.java:936)
    at java.base/java.lang.Thread.run(Unknown Source)
Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[39341,25831]
Message: Connection reset
    at java.xml/com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(Unknown Source)
    at org.jivesoftware.smack.xml.stax.StaxXmlPullParser.next(StaxXmlPullParser.java:191)
    ... 4 more

故障原因分析

  • XML解析异常是连接断开的次生结果:日志核心错误为Connection reset,[39341,25831]的行列号并非真实传输数据的大小,而是XML解析器在连接突然中断时,当前缓冲区的偏移位置标记,并非实际数据包的尺寸。
  • 大批次任务触发资源瓶颈:高并发任务场景下,XMPP服务器或客户端的TCP连接缓冲区可能被耗尽,导致操作系统主动重置连接;另外服务器的线程池、内存资源不足,无法处理大量并发数据包,会强制断开连接。
  • TCP层隐式问题:本地网络看似稳定,但大流量传输时可能出现丢包、延迟,触发TCP超时重传机制,最终导致连接被重置;防火墙或操作系统的TCP连接超时配置过短,也会在长时间大流量传输时强制断开连接。
  • XMPP配置缺失或不合理:使用的Smack客户端(版本4.4.3)若未配置XEP-0199心跳机制,长时间无交互时会被服务器判定为死连接断开;服务器端的最大数据包大小、并发连接数限制过低,大批次任务会触发阈值导致连接中断。

内容的提问来源于stack exchange,提问作者runfastman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 20:20:25