К содержимому
Tickwise
ПредупреждениеБазы данныхSIG-DB-012

Утечка соединений с БД (HikariCP: Apparent connection leak detected)

Платформы
Paper · Purpur · Velocity · один сервер
Проверено
Проверено
Уверенность
Уверенность 85%

Как это выглядит в логе

Достаточно одной из строк. Агент сверяет их с логом локально, на вашем сервере.

logs/latest.log
  • [WARN] Connection leak detection triggered for
  • [WARN] Apparent connection leak detectedв stack trace

Симптомы

  • HikariCP сообщает, что соединение взято из пула и не возвращено дольше leakDetectionThreshold
  • Со временем пул исчерпывается (см. SIG-DB-002)

Причина

Плагин получил соединение из пула HikariCP и не закрыл (не вернул) его дольше порога leakDetectionThreshold: утечка соединения или очень долгая операция с БД.

Вероятные причины

  • Плагин не закрывает Connection/Statement/ResultSet (нет try-with-resources) — настоящая утечка
  • Запрос или транзакция выполняется дольше порога (порог слишком низкий, медленная БД) — ложная тревога, после неё HikariCP пишет «… was returned to the pool (unleaked)»
  • Поток плагина завис, удерживая соединение

Как исправитьНизкий риск

  1. В стеке под Apparent connection leak detected найдите первый фрейм плагина — это место, где соединение взято и не возвращено.
  2. Если в логе следом есть «Previously reported leaked connection … was returned to the pool (unleaked)» — это долгая операция, а не утечка: увеличьте leakDetectionThreshold или ищите медленный запрос.
  3. Обновите плагин; если повторяется на последней версии — сообщите автору, приложив стек (без конфигов с паролями).
  4. До исправления держите запас в maximum-pool-size и следите за SIG-DB-002.

Источники