Incident Library

IL-0307 Supabase · 2025-01-29database

Supabase us-east-1 에서 Supavisor 2.0 업그레이드 뒤 Postgres 연결 풀러가 테넌트 약 80% 의 연결을 끊었다

Supabase 는 Postgres 연결 풀러인 Supavisor 를 10개 리전에서 2.0 으로 올리는 메이저 업그레이드를 계획했다. 새 버전은 쿼리 지연과 가용 영역 인식이 나아진 버전이었고, 지난 몇 주 동안 더 작은 9개 리전에 문제없이 배포되었다. 2025년 1월 29일 13:00 UTC 에 유지보수가 시작되어 9개 리전에 배포되었고, 클라이언트 연결을 다시 맺는 것 말고는 중단이 거의 없었다. 14:46 UTC 에 us-east-1 배포도 끝났고 클라이언트가 다시 연결되어 처리량이 안정되었다.

16:05:50 UTC 에 :ets.select_delete 작업이 실패하며 ETS 테이블이 손상되었다. 16:05:56 UTC 부터 Syn 과 Cachex 라이브러리에서 ETS 를 쓰는 프로세스 레지스트리 조회가 실패해 테넌트가 다시 연결하지 못했다. 16:06:00 UTC 에는 이 레지스트리가 관리하던 프로세스들이 죽어 테넌트 약 80% 의 연결이 끊겼다. 16:11 UTC 에 장애를 선언하고 이전 Supavisor 버전으로 롤백을 시작했다. 롤백은 16:53 UTC 에 끝났고 이전 안정 버전으로 정상 동작이 돌아왔다. 장애는 1시간쯤 이어졌다.

심각도
–
영향 범위
Postgres connections through the Supavisor pooler and Supabase Storage connectivity in us-east-1
영향 사용자
about 80% of tenants in us-east-1
지역
us-east-1
감지까지
6m
복구까지
48m

증상

2025년 1월 29일 16:05 UTC 에 us-east-1 의 Supavisor 클라이언트 대다수가 연결이 끊겼고 다시 연결하는 데 자꾸 실패했다. Supavisor 는 Postgres 연결을 관리하는 연결 풀러다. Supabase Storage 연결도 함께 문제를 겪었다.

us-east-1 배포는 14:46 UTC 에 끝났고, 그때는 클라이언트가 다시 연결되고 처리량도 안정되어 있었다. 한 시간 넘게 지난 16:05:50 UTC 에 :ets.select_delete 작업이 실패하며 ETS 테이블이 손상되었다. ETS 는 Erlang Term Storage 다. 16:05:56 UTC 부터 Syn 과 Cachex 라이브러리에서 ETS 를 쓰는 프로세스 레지스트리 조회가 실패해 테넌트가 다시 연결하지 못했다. 16:06:00 UTC 에 이 레지스트리가 관리하던 프로세스들이 죽으면서 테넌트 약 80% 의 연결이 끊겼다.

조사 중에 Supabase 는 데이터베이스 연결은 당분간 직접 연결로 바꿔 쓰라고 안내했다. Storage 연결은 연결 풀러 문제가 풀려야 돌아온다고 알렸다.

증상 연결 리셋간헐적 연결 실패

원인

촉발
us-east-1 에 Supavisor 2.0 으로 올리는 메이저 업그레이드를 배포한 뒤, :ets.select_delete 작업이 실패해 ETS 테이블이 손상되었다.

감지

–

조치

후속 조치

교훈

Supabase 는 이 장애로 롤백이 느리고, 부하가 걸린 상태에서 예상하지 못한 장애를 견디는 힘이 약하다는 점이 드러났다고 밝혔다. 앞으로 비슷한 배포 실패의 영향을 줄이려고 롤백 효율을 높이는 데 집중한다고 썼다.

출처

관련 사례

내 클러스터에도 있는지 확인하기

kubegap 은 Claude Code 나 Codex 에서 쿠버네티스 클러스터를 읽기만 하며 이 사례와 같은 상태를 점검합니다. 이 사례의 구성 요소: 데이터베이스 프록시와 커넥션 풀러, 데이터베이스. 점검 항목의 근거는 이 사례 같은 공개 보고서입니다.

AI 도구와 스크립트용

API 는 키가 필요 없습니다. MCP 서버는 search_incidents, get_incident, list_incidents, get_topic, vocab 도구를 내놓습니다. 사용법은 API 와 MCP.