[alibaba/druid]fix #4692:连接池驱逐线程逻辑bug,可能会导致连接泄露

2025-11-10 964 views
0

1.使用成员变量在shrink过程中存储有效的connection,避免每次shrink new新的对象

shrinkConnections在shrink过程中只保存有效的链接(包括keepAlive),需要移除的链接依旧保存在evictConnections中 checkCount的意思应该是需要从当前链接池中移除的链接数量(为了保证连接数量尽可能接近min-idle设置的数量),和循环i做对比并不正确,应该和移除数量 evictCount 进行对比,在 minEvictableIdleTimeMillis 和 maxEvictableIdleTimeMillis 之间也可以从连接池中移除 System.arraycopy 的使用优化,仅填充数组非 null 值部分位置,提高效率

回答

4

哥,想问问这种有重现的demo吗,我们也想学习一下。有单元测试之类的吗

6

哥,想问问这种有重现的demo吗,我们也想学习一下。有单元测试之类的吗

你可以这样配置 min-evictable-idle-time-millis: 30000 time-between-eviction-runs-millis: 60000 max-wait: 60000 initial-size: 100 min-idle: 100 max-active: 100 使用druid版本是1.2.8