Files
obsidian/history/2026-07-11-pgpool-stale-primary-n8n-outage.md

2.9 KiB

title, updated, tags
title updated tags
pgpool stale primary detection — n8n 장기 장애 (2026-07-11) 2026-07-11
history
incident
n8n
pgpool
postgresql-ha

증상

  • https://n8n.inouter.com 접속 시 BunnyCDN 오리진 pull은 성공하나 HTTP 503, body {"code":503,"message":"Database is not ready!"}
  • n8n 파드 로그에 Database connection timed out, Pruning failed, Failed to hard-delete executions 반복

원인

pgpool-II 두 파드(db ns) 모두 show pool_nodes 기준 실제 Patroni Leader(node 1, 10.100.3.185)를 status=down으로 오인식, 3개 백엔드 전부 role=standby로 표시되어 write 가능한 노드가 없는 상태였음.

  • pod pgpool-f6fcdb947-pvx45 (2026-05-19 기동): node 1 down since 2026-06-05 15:53:45 — 5주 이상 방치
  • pod pgpool-f6fcdb947-lmwg5 (2026-05-22 기동): node 1 down since 2026-06-25 20:52:59

Patroni 자체는 정상 (patronictl list — postgres-2 Leader, TL23, replica lag 0). 즉 Patroni failover/switchover 이후 pgpool이 새 primary를 재탐지하지 못하고 stuck된 것으로 추정.

failover_on_backend_error = off, failover_command = '' 설정(../infra/data/postgresql-ha 참조 — Patroni가 promotion 전담)이라 pgpool은 자동으로 상태를 갱신하지 않고, 수동 개입(PCP 또는 재시작) 필요.

PCP 관리 인터페이스 불능

pcp_attach_node로 수동 재연결 시도 시:

FATAL: failed to authenticate PCP user
DETAIL: could not open /opt/pgpool-II/etc/pcp.conf. reason: No such file or directory

pgpool 배포에 pcp.conf가 아예 생성되어 있지 않음 — PCP 기반 노드 관리가 애초에 불가능한 상태. pgpool-secretspcp_user/pcp_password는 존재하나 서버측 conf 파일 부재로 무용.

조치

  1. kubectl -n db rollout restart deployment pgpool — 재시작 후 show pool_nodes에서 node 1 role=primary, status=up으로 정상 인식 확인
  2. n8n 파드는 pgpool 재시작 후에도 기존 끊긴 커넥션을 계속 사용해 timeout 지속 → kubectl -n n8n rollout restart deployment n8n으로 해결
  3. https://n8n.inouter.com HTTP 200 복구 확인

TODO / 재발 방지

  • pgpool 이미지/차트에 pcp.conf 생성 로직 추가 (Helm values 또는 ConfigMap) — PCP로 즉시 재연결 가능하게
  • Patroni switchover/failover 시 pgpool 자동 재탐지 여부 조사 (health_check_period=10s인데 왜 자동 복구 안 됐는지 원인 미상 — 재현 필요)
  • pgpool show pool_nodesstatus=down & role≠primary 상태를 감지하는 모니터링/알림 추가 (5주간 미인지 상태로 방치됨)
  • n8n 자체도 DB 재연결 실패 시 자동 재시작(liveness probe on DB connectivity) 검토

관련