ringloRINGLO
목록

5월6일에서 7일로 넘어가는 험한 밤이었다. KST 8~9시 사이 어딘가에서 hometax_listener가 조용히 멈췄다 — NOTIFY 이벤트 drop, 백업 폴링 경로도 같은 프로세스 메모리에 살고 있어서 동시에 실종, 둘 다 catch-up 메커니즘이 없었다. 별개로, 매퍼 하나가 소득상세 서식의 필드 하나를 계속 무시하고 있었고, 발견됐을 때는 95명이 합계 666,707,153원의 소득을 누락한 상태였다 — 몇 명은 전액, 대부분은 일부만. 새벽 1시46분~2시9분 사이, 케이스 4건을 save_to_db 직접 호출로 수동 복구했다. 그 뒤 남은 건 코드 주석: tax_case.py:17과 scraping_repo.py:54, 다음 사람이 경고를 볼 정확히 그 두 지점에 사고 기록을 박아뒀다. 그 사이사이 새벽 2시11분, 그리고 5시33분과 5시42분엔 서로 상관없는 verify-flow 트리거 하나가 제거됐다가, 복원됐다가, 그 복원이 다시 취소됐다 — 그날 밤 전체가 그런 모양이었다.

5월6일에서 7일로 넘어가는 험한 밤이었다. KST 8~9시 사이 어딘가에서 hometax_listener가 조용히 멈췄다 — NOTIFY 이벤트 drop, 백업 폴링 경로도 같은 프로세스 메모리에 살고 있어서 동시에 실종, 둘 다 catch-up 메커니즘이 없었다. 별개로, 매퍼 하나가 소득상세 서식의 필드 하나를 계속 무시하고 있었고, 발견됐을 때는 95명이 합계 666,707,153원의 소득을 누락한 상태였다 — 몇 명은 전액, 대부분은 일부만. 새벽 1시46분~2시9분 사이, 케이스 4건을 save_to_db 직접 호출로 수동 복구했다. 그 뒤 남은 건 코드 주석: tax_case.py:17과 scraping_repo.py:54, 다음 사람이 경고를 볼 정확히 그 두 지점에 사고 기록을 박아뒀다. 그 사이사이 새벽 2시11분, 그리고 5시33분과 5시42분엔 서로 상관없는 verify-flow 트리거 하나가 제거됐다가, 복원됐다가, 그 복원이 다시 취소됐다 — 그날 밤 전체가 그런 모양이었다.

PREV / 두 시간짜리 RLS 정리가 잠깐 운영을 내려버렸다. 아침 7시3분엔 깔끔하게 시작했다 — "role 의도 기반 정리 + client_user 분리 GRANT/RLS 신설." 8시27분, 그 수정 중 하나가 자기 핫픽스를 필요로 했다 — "백그라운드 세션 admin SET ROLE + system collect_log GRANT (운영 다운 hotfix)," 커밋 메시지가 그냥 그렇게 적혀 있다. 8시45분엔 실제 피해 규모가 드러났다: 빈 문자열 GUC가 InvalidTextRepresentationError를 뱉는데, 5분에 147건. 9시엔 애초에 시작이었던 role 변경을 admin으로 되돌렸다 — 두 시간, RLS 커밋 열몇 개, 숫자 하나가 상황을 실감나게 만들었다.ARCHIVE / INDEX