5월 18일 Replit 서비스 중단 사태
·2023.05.20 09:30
핵심 내용
Replit은 설정 업데이트 과정에서 발생한 **Golang RwMutex** 데드락 버그로 인해 약 2시간 동안 서비스 중단 사태를 겪었다.
자세히 보기
5월 18일 (태평양 표준시 기준), 약 2시간 동안 모든 사용자가 Replit 서비스에 접속할 수 없는 장애가 발생했다.
장애의 근본 원인은 설정 푸시 방식의 잠재적 버그였다. 새로운 설정 종류를 추가할 때 핸들러를 누락하면서, Golang RwMutex의 읽기 잠금(read-lock)이 해제되지 않고 누수되는 현상이 발생했다.
11:45, 정기 빌드 배포 중 쓰기 잠금(write-lock) 시도가 발생하자 모든 VM에서 **데드락(deadlock)**이 유발되었다. 이로 인해 모든 VM이 비정상(unhealthy) 상태로 보고되었고, 내부 로드밸런서가 트래픽을 보낼 수 없게 되었다.
복구 과정에서 다음과 같은 기술적 난관이 있었다:
- 롤백 지연: 롤백 프로세스가 원활하지 않아 마지막 정상 빌드를 배포하는 데 40분이 소요되었다.
- Autoscaler 오작동: 롤백 후 시스템 용량이 초기화되자, 낮은 이용률을 감지한 Autoscaler가 오히려 인스턴스 크기를 줄이는 악순환이 발생했다.
결국 13:56에 시스템이 완전히 복구되었으며, 이후 데드락 버그를 수정한 빌드를 배포하여 문제를 해결했다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.