3292f77e5c
- Распознавание 53300/too many clients и др. в isStoreCapacityOrConnExhausted - SaveHostResult/порты/SNMP: при фатальной ошибке БД — CancelScan; ctx отменяет дальнейший SNMP - Воркеры при ctx.Done быстро скипают оставшиеся IP без SNMP (дренаж канала) Made-with: Cursor
21 lines
715 B
Go
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")
|
|
}
|