IL-0556 Storj · 2024-05-20database
수동 데이터베이스 유지 보수 중 열어 둔 트랜잭션이 잠금을 쥐어 Storj US1 satellite 의 업로드와 다운로드가 실패했다
2024년 5월 20일 14시 55분 UTC에 Storj US1 satellite 에서 정기 수동 데이터베이스 유지 보수를 시작했고, 다른 작업을 하는 동안 트랜잭션 하나가 실수로 열린 채 남았다. 열린 트랜잭션은 커밋되거나 롤백될 때까지 해당 데이터에 잠금을 쥐고 있어 다른 작업이 그 데이터에 접근하거나 고치지 못하게 한다. 14시 56분부터 쓰기 작업이 실패했고, 시간이 지나면서 읽기 작업도 영향을 받아 업로드에 이어 다운로드가 멈췄다. 14시 59분에 당번 팀이 호출을 받고 조사했고, 15시 22분에 열린 트랜잭션을 찾아 닫고 복구를 시작했다. 15시 23분에 서비스가 돌아왔다. AP1 과 EU1 satellite 는 영향을 받지 않았다.
- 심각도
- –
- 영향 범위
- Storj US1 satellite storage and retrieval (US1 API, Linksharing, Gateway, Select): uploads failed first, then downloads
- 영향 사용자
- Customers and applications using the US1 satellite
- 지역
- US1
- 감지까지
- 3m
- 복구까지
- 27m
증상
2024년 5월 20일 14시 56분 UTC쯤 Storj US1 satellite 에서 쓰기 작업이 실패하기 시작했다. 14시 59분에 당번 팀이 호출을 받고 조사를 시작했다.
먼저 업로드가 실패했고, 시간이 지나면서 읽기 작업도 영향을 받아 다운로드까지 실패했다. 서비스 전반이 중단됐다.
영향은 US1 의 API, Linksharing, Gateway, Select 에 미쳤다. AP1 과 EU1 satellite 는 내내 정상으로 동작했다.
원인
- 촉발
- 14시 55분에 US1 satellite 에서 정기 수동 데이터베이스 유지 보수를 시작했고, 다른 작업을 하는 사이 트랜잭션 하나가 실수로 열린 채 남았다.
감지
14시 59분에 당번 팀이 호출을 받고 조사를 시작했다.
조치
- 15시 22분에 열려 있던 트랜잭션을 찾아 닫고 복구를 시작했다. 15시 23분에 서비스가 돌아왔다.
후속 조치
- 다른 작업으로 넘어가기 전에 모든 트랜잭션을 제대로 닫도록 데이터베이스 유지 보수 절차와 교육을 다시 살펴 고친다.
- 정해 둔 시간보다 오래 열려 있는 트랜잭션을 찾아 팀에 알리는 모니터링과 알림을 더한다.
- 사고 분석으로 절차와 시스템에서 더 고칠 점을 찾고, 수동 유지 보수를 줄이거나 없애는 도구를 만든다.
교훈
–
출처
- https://status.storj.io/incidents/brtpk2c22gdz · official-status · 보관본
관련 사례
같은 원인 · 공통 데이터베이스
같은 원인 · 공통 데이터베이스
IL-0242primary 와 secondary PostgreSQL 데이터베이스를 모두 잃어 matrix.org homeserver 가 약 24시간 동안 멈췄다Matrix.org Foundation · 2025같은 원인 · 공통 데이터베이스
같은 원인 · 공통 데이터베이스
IL-0531West US 의 Azure Database for MySQL Single Server 와 MariaDB 일부 서버로 가는 새 연결이 모두 거부됐다Microsoft Azure · 2024같은 원인 · 공통 데이터베이스
IL-0565쿠키런: 킹덤의 CockroachDB 클러스터가 노드 24대 중 16대의 파일 시스템을 잃고 멈춰 게임이 36시간 넘게 점검에 들어갔다Devsisters · 2022같은 원인 · 공통 데이터베이스
IL-0207로컬 개발 환경에서 돌린 작업이 운영 컨텍스트로 넘어가 Kubernetes 클러스터의 Consul 릴리스를 통째로 지웠고, Patroni 가 무너져 GitLab.com 전체가 5XX 오류를 냈다.GitLab · 2022같은 원인 · 공통 데이터베이스
같은 원인 · 공통 데이터베이스
같은 원인 · 공통 데이터베이스
IL-0506UC Berkeley DataHub 의 JupyterHub sqlite 데이터베이스가 빈 데이터베이스로 덮어써져 로그인이 실패하고 홈 디렉터리가 비어 보이고 다른 사용자로 로그인되는 문제가 났다UC Berkeley · 2017같은 원인 · 공통 데이터베이스
IL-0218복제를 다시 맞추다 PostgreSQL 프라이머리의 데이터 디렉터리가 지워지고 백업이 작동하지 않아 GitLab.com 이 약 18시간 멈추고 데이터를 잃었다GitLab · 2017같은 원인 · 공통 데이터베이스
같은 원인 · 공통 데이터베이스
IL-0319mysql2 를 다시 적재하려고 데이터베이스를 지우는 동안 mysql1 의 데이터베이스도 함께 지워졌다Oregon State University Open Source Lab · 2015같은 원인 · 공통 데이터베이스
같은 원인 · 공통 데이터베이스
내 클러스터에도 있는지 확인하기
AI 도구와 스크립트용
- 이 사례의 JSON: https://incidentlib-api.benchlet.com/cases/IL-0556
- 가장 비슷한 사례들: https://incidentlib-api.benchlet.com/cases/IL-0556/similar
- MCP 서버(Streamable HTTP, 키 없음):
https://incidentlib-mcp.benchlet.com/mcp
API 는 키가 필요 없습니다. MCP 서버는 search_incidents, get_incident, list_incidents, get_topic, vocab 도구를 내놓습니다. 사용법은 API 와 MCP.