Док: консультация с Соннетом — EPERM не PG, проблема платформы
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
# Консультация с Соннетом: инцидент 2026-07-08 (продолжение)
|
||||
|
||||
## Вопрос 1: Может ли PG быть повреждён после OOM при нормальных метриках?
|
||||
|
||||
Да, может. Сценарий:
|
||||
- OOM при активной записи → WAL-запись оборвана на середине
|
||||
- PG поднялся, прошёл recovery по WAL, считает себя здоровым
|
||||
- Grafana показывает метрики процесса PG — они нормальные
|
||||
- Но на уровне отдельных relation-файлов могут быть битые страницы, которые проявляются только при обращении к конкретной таблице/индексу
|
||||
|
||||
EPERM при `connect()` — это не PG-уровневая ошибка, это OS/сеть. PG повреждение дало бы `ECONNRESET`, `53300` (too many connections), или ошибку внутри сессии. Если EPERM именно на `connect()` — смотри в сторону сети/платформы, не PG internals.
|
||||
|
||||
## Вопрос 2: Достаточно ли разницы PG для объяснения?
|
||||
|
||||
Нет. EPERM на `connect()` — это не симптом повреждённого PG. Повреждённый PG дал бы:
|
||||
- `FATAL: could not open file`
|
||||
- `ERROR: invalid page in block`
|
||||
- Или просто отклонял бы соединения с ошибкой pg-level
|
||||
|
||||
EPERM — это ядро Linux отказывает в системном вызове `connect()`. PG здесь ни при чём. Ищи причину на стороне Node.js процесса или платформы.
|
||||
|
||||
## Вопрос 3: Мог ли managed-сервис перегенерировать credentials при recovery?
|
||||
|
||||
Да, это распространённая практика у managed PG — при `recovery` (особенно из backup/snapshot) могут:
|
||||
- Сброситься пароли к дефолтным
|
||||
- Создаться новый пользователь вместо старого
|
||||
- Измениться SSL CA-сертификат
|
||||
|
||||
Как проверить без прямого доступа — через `/v2/db-status` (уже есть в коде)
|
||||
|
||||
## Ключевой вывод
|
||||
|
||||
EPERM на connect() — проблема сети/платформы, не PG и не нашего кода.
|
||||
Reference in New Issue
Block a user