Files
PTah 3292f77e5c fix: отмена скана при исчерпании соединений Postgres
- Распознавание 53300/too many clients и др. в isStoreCapacityOrConnExhausted

- SaveHostResult/порты/SNMP: при фатальной ошибке БД — CancelScan; ctx отменяет дальнейший SNMP

- Воркеры при ctx.Done быстро скипают оставшиеся IP без SNMP (дренаж канала)

Made-with: Cursor
2026-04-13 15:41:16 +10:00

21 lines
715 B
Go

package scans
import (
"strings"
)
// isStoreCapacityOrConnExhausted — ошибки, при которых дальнейший проход скана в БД бессмысленен (слоты Postgres, пул и т.п.).
func isStoreCapacityOrConnExhausted(err error) bool {
if err == nil {
return false
}
msg := strings.ToLower(err.Error())
return strings.Contains(msg, "53300") ||
strings.Contains(msg, "too many clients") ||
strings.Contains(msg, "remaining connection slots") ||
strings.Contains(msg, "connection slots are reserved") ||
strings.Contains(msg, "sql: connection is closed") ||
strings.Contains(msg, "broken pipe") ||
strings.Contains(msg, "connection reset by peer")
}