{"id":"IL-0508","org":"SourceHut","date":"2023-01-11","docs":[],"title":{"en":"All SourceHut services went down when the main database server remilia.sr.ht failed in hardware and became unreachable","ko":"SourceHut 의 주 데이터베이스 서버 remilia.sr.ht 가 하드웨어 고장으로 연결이 끊겨 모든 서비스가 중단됐다"},"domain":["database"],"impact":{"scope":"All SourceHut services were down; afterwards builds.sr.ht ran with reduced build capacity","users":"unknown","region":"US datacenter"},"review":{"written_by":"session","reviewed_at":null,"reviewed_by":null},"lessons":null,"related":[],"sources":[{"url":"https://man.sr.ht/ops/outages/2023-01-11-unreachable-host.md","kind":"runbook","archived":"https://web.archive.org/web/20260714132317/https://man.sr.ht/ops/outages/2023-01-11-unreachable-host.md"}],"summary":{"en":"remilia.sr.ht, SourceHut's main database server and a physical host in a US datacenter, suffered a hardware failure at about 13:38 UTC on 11 January 2023 and became unreachable, and the loss of database connectivity took down all services. The off-site database backup was working, but it could not have served as a failover database host. Nobody at the datacenter answered the phone before official hours, so an operator sent SourceHut's emergency contact in the area, who was an hour away. Only one of SourceHut's three staff had a valid passport in case serious work had to be done on site in the US.\n\nWhile waiting, the team planned to diagnose the server and, if it could not be recovered, move its hard drives into another host and bring that host up as a clone of the database server. It chose cirno1.sr.ht, a build worker redundant with cirno2.sr.ht, so taking it out of service would not affect availability. Datacenter staff power-cycled remilia, which did not come back but suggested the disks were not at fault, and at 15:03 the hardware other than the disks was judged likely lost. The emergency contact arrived at 15:39, confirmed the diagnosis and moved the disks into cirno1's chassis, which brought remilia back in its old state; there was some initial confusion about remilia's disk layout. Prometheus scraped remilia again at 16:04, services began coming back at 16:06, and all services were online at 16:09 UTC, with builds.sr.ht running at reduced build capacity without cirno1.","ko":"2023년 1월 11일 13:38 UTC 무렵 SourceHut 의 주 데이터베이스 서버 remilia.sr.ht 가 하드웨어 고장으로 연결이 끊겼고, 데이터베이스 연결이 없어지자 모든 서비스가 중단됐다. 원격으로는 서버에 닿을 수 없어 사람이 데이터센터에 가야 했다. 데이터센터 직원은 공식 업무 시간 전이라 전화를 받지 않았고, 운영팀은 데이터센터 근처의 SourceHut 비상 연락 담당자를 보냈다. 그 담당자는 데이터센터까지 한 시간 거리에 있었다.\n\n기다리는 동안 운영팀은 서버를 되살릴 수 없으면 디스크를 다른 호스트로 옮겨 데이터베이스 서버를 그대로 띄우기로 했다. 그 호스트로는 빌드 워커 cirno1.sr.ht 를 골랐다. cirno1 은 cirno2.sr.ht 와 중복이라 빼도 가용성에 영향이 없었다. 데이터센터 직원이 서버 전원을 껐다 켰지만 살아나지 않았고, 운영팀은 이 결과로 디스크는 문제가 아니라고 봤다. 15:39 에 도착한 비상 연락 담당자가 진단을 확인하고 디스크를 cirno1.sr.ht 와 바꿔 끼웠다. remilia 는 cirno1 의 섀시에서 옛 상태 그대로 떴다. 16:04 에 Prometheus 가 remilia 의 지표를 다시 수집했고 16:09 에 모든 서비스가 돌아왔다. cirno1 이 빠지면서 builds.sr.ht 의 빌드 용량은 줄었다.\n\n오프사이트 데이터베이스 백업은 동작하고 있었지만 장애 조치용 데이터베이스 호스트로 쓸 수는 없었다. SourceHut 직원 세 명 가운데 유효한 여권이 있는 사람은 한 명뿐이어서, 미국 현장에서 바로 큰 작업을 해야 했다면 그 한 명만 갈 수 있었다. 운영팀은 처음에 remilia.sr.ht 의 디스크 구성을 헷갈리기도 했다."},"trigger":{"en":"remilia.sr.ht, the main database server, suffered a hardware failure at about 13:38 UTC.","ko":"주 데이터베이스 서버 remilia.sr.ht 의 하드웨어가 고장 났다."},"severity":"unknown","symptoms":["service-unavailable"],"timeline":{"detected_after":"2m","resolved_after":"2h 31m"},"date_kind":"incident","detection":{"en":"Alerts fired at about 13:40 UTC for most services and for remilia.sr.ht itself, after Prometheus started failing to scrape remilia at 13:38.","ko":"13:38 에 Prometheus 가 remilia 의 지표 수집에 실패했고, 13:40 무렵 대부분의 서비스와 remilia.sr.ht 를 사용할 수 없다는 경보가 울렸다."},"components":["database"],"root_cause":"hardware-failure","remediation":[{"text":{"en":"Sent SourceHut's emergency on-call contact in the datacenter area to go on site","ko":"데이터센터 직원에게 연락이 닿지 않아 데이터센터 근처의 비상 연락 담당자를 불렀고, 담당자가 데이터센터로 출발했다."}},{"text":{"en":"Moved remilia's disks into the chassis of build worker cirno1.sr.ht and brought it online as remilia","ko":"현장에 도착한 비상 연락 담당자가 데이터센터 직원의 진단을 확인한 뒤 디스크를 cirno1.sr.ht 와 바꿔 끼우고 서버를 띄웠다."}}],"action_items":[{"text":{"en":"Make the off-site database copy able to serve as a failover database host","ko":"오프사이트 데이터베이스 백업이 장애 조치용 데이터베이스 호스트로도 쓰일 수 있게 고친다. 이 일은 이미 끝났다."}},{"text":{"en":"Re-prioritize the migration to the EU","ko":"EU 이전 작업 전체의 우선순위를 다시 높인다."}},{"text":{"en":"Set up new database failover","ko":"새 데이터베이스 장애 조치 구성을 만든다."}},{"text":{"en":"Add a new EU build worker to backfill build capacity","ko":"빌드 용량을 메우려고 EU 에 새 빌드 워커를 둔다."}},{"text":{"en":"Record a better hardware inventory for future reference","ko":"앞으로를 대비해 하드웨어 목록을 더 꼼꼼히 기록한다."}}],"contributing":["single-point-of-failure","limited-debug-access"],"recurrence_of":null,"symptoms_text":{"en":"At about 13:40 UTC on 11 January 2023, alerts started firing for most SourceHut services being unavailable, along with one for remilia.sr.ht, the physical host that is SourceHut's main database server. The database server could not be reached remotely at all.\n\nPrometheus had started failing to scrape metrics from remilia at 13:38. Without database connectivity, services went down across SourceHut. At 13:44 Postfix was shut down so the mail delivery pipeline would not spill over, and Alertmanager was disabled to silence the many alarms.\n\nWith no remote way to reach the server, someone had to go to the datacenter. A call to the datacenter at 8:45 AM local time went unanswered because its daytime availability starts at 9 AM, and SourceHut's own emergency contact in the area was an hour's travel away. When datacenter staff power-cycled the server it did not come back and stayed unresponsive.","ko":"13:40 UTC 무렵 SourceHut 서비스 대부분을 사용할 수 없다는 경보가 한꺼번에 울렸다. 그 가운데 하나는 주 데이터베이스 서버인 물리 호스트 remilia.sr.ht 를 사용할 수 없다는 경보였다.\n\n13:38 에 Prometheus 가 remilia 의 지표를 수집하지 못하기 시작했다. remilia 에는 원격으로 닿을 방법이 전혀 없었다.\n\n데이터베이스 연결이 끊기자 모든 서비스가 중단됐다. 운영팀은 메일 전달 파이프라인이 넘치지 않도록 Postfix 를 내렸고, 쏟아지는 경보를 끄려고 alertmanager 를 껐다."},"updated_at":"2026-11-14T12:34:15.273909Z","url":"https://benchlet.com/incidentlib/app/cases/IL-0508","org_slug":"sourcehut"}