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

只读LDAP连接池出现WriteToClosedSessionException异常排查

关于Apache Directory对接OpenLDAP出现WriteToClosedSessionException的问题

我们有两个Java服务,基于Apache Directory库对接OpenLDAP:

  • 服务A:需执行LDAP写操作,配置了独立的只读连接池和读写连接池
  • 服务B:仅拥有LDAP只读权限,从未执行写操作

近期日志中频繁出现以下WARN级异常,且服务B中也会出现该异常:

2024-12-10 08:23:45.563 [NioProcessor-143413] WARN  org.apache.directory.ldap.client.api.LdapNetworkConnection - null [MDC: {}]
org.apache.mina.core.write.WriteToClosedSessionException: null
    at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.clearWriteRequestQueue(AbstractPollingIoProcessor.java:1192) ~[mina-core-2.2.3.jar!/:?]
    at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeNow(AbstractPollingIoProcessor.java:1153) ~[mina-core-2.2.3.jar!/:?]
    at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeSessions(AbstractPollingIoProcessor.java:864) ~[mina-core-2.2.3.jar!/:?]
    at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:694) ~[mina-core-2.2.3.jar!/:?]
    at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64) ~[mina-core-2.2.3.jar!/:?]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[?:?]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[?:?]
    at java.lang.Thread.run(Thread.java:829) ~[?:?]

该问题仅在**升级至Linux 9(同步升级了OpenLDAP和Apache Directory版本)**后出现,且仅部分环境存在此现象。

异常堆栈未涉及业务代码,推测可能与org.apache.directory.ldap.client.api.LdapConnectionPool内部的连接有效性检查、回收机制相关。

技术疑问

  1. 该异常是否确实由连接池内部操作引发?
  2. 为何升级后仅部分环境出现此问题?有哪些进一步排查思路?(此为核心疑问)
  3. 异常中的“Writing”具体指什么?是写入LDAP记录,还是向LDAP发送数据(如搜索过滤条件)?即操作对象是LDAP存储还是网络流?
  4. 若“Writing”指写入LDAP记录,为何只读权限的服务B会出现该异常?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 16:55:07