{"id":"IL-0236","org":"Wikimedia Foundation","date":"2026-02-23","docs":["https://gerrit.wikimedia.org/r/c/operations/deployment-charts/+/1245289","https://gerrit.wikimedia.org/r/c/operations/deployment-charts/+/1245290","https://gerrit.wikimedia.org/r/c/operations/deployment-charts/+/12452890"],"title":{"en":"After an Istio 1.15 to 1.24 upgrade, half of Wikimedia's ML model servers returned 5XX for about a day","ko":"머신러닝 모델 서빙 클러스터 두 곳에서 투명 프록시로 MediaWiki API 를 부르던 모델 서버들이 약 24시간 5XX 를 냈다"},"domain":["kubernetes","networking","ai-infra"],"impact":{"scope":"A subset of ML model servers, about half of those running, were unreachable or returned 5XX for about 24 hours, first in codfw and the next day in eqiad; the Search Update pipeline, the Revised Tone model server and the ML cache storage were affected","users":"Consumers of the affected model servers","region":"codfw and eqiad"},"review":{"written_by":"session","reviewed_at":null,"reviewed_by":null},"lessons":{"en":"The problem could have been caught on the staging cluster first, or by ad-hoc testing within the team after each cluster upgrade, which had been requested when the upgrades were announced. Not everyone involved knew that httpbb tests existed, and nobody on the Machine Learning team saw the alerts that fired right after the codfw upgrade. Recovery was fairly quick once users reported the problem, helped by having the right person online to find the Istio hot patch.","ko":"사용자가 처음 알린 시점부터 보면 비교적 짧은 시간에 문제를 풀었다. 반면 이 문제는 스테이징 클러스터에서 먼저 잡을 수 있었다. 팀은 업그레이드를 알리고 테스트를 요청했다. 클러스터를 올릴 때마다 팀 안에서 바로 테스트했다면 문제를 더 일찍 찾을 수 있었다. httpbb 테스트가 있다는 것을 관련자 모두가 알지는 못했다. codfw 업그레이드 직후 울린 알림을 Machine Learning 팀의 누구도 보지 못했다.\n\n운도 따랐다. 깨진 기능을 되살릴 Istio 핫픽스를 찾는 데 도움을 줄 기술 담당자가 마침 온라인에 있었다."},"related":[],"sources":[{"url":"https://wikitech.wikimedia.org/wiki/Incidents/2026-02-23_ml-serve","kind":"runbook","archived":"https://web.archive.org/web/20260611105523/https://wikitech.wikimedia.org/wiki/Incidents/2026-02-23_ml-serve"}],"summary":{"en":"In Wikimedia's ML serving clusters Istio acts both as the ingress gateway and as a mesh sidecar, a transparent proxy that carries all ingress and egress traffic of the model servers. Model servers call services such as the MediaWiki API in one of two ways: some name the MediaWiki API VIP in their code with the right Host header, for example mw-api-ro.discovery.wmnet with Host header en.wikipedia.org, and others simply call a domain such as en.wikipedia.org and rely on the transparent proxy to route it. The ML team had never chosen one of the two as the standard. Istio 1.24 validates the \"host\" attribute of VirtualService definitions more strictly than 1.15: when two or more VirtualServices have overlapping host values, only one of them is used and the others are discarded. After the upgrade, the model servers that used the transparent proxy could no longer reach the MediaWiki API and returned 5XX.\n\nThe codfw cluster broke at 17:30 UTC on 23 February, but the alerts were missed, and the eqiad cluster was upgraded the next morning and broke at 11:00 UTC. Investigation began at 11:30 UTC on 24 February after users reported the problem in Slack. With the right Wikimedia technical staff member online to help, the team found an Istio hot patch that restored the broken behaviour, and deploying it at 16:00 UTC fixed most of the HTTP 500 errors. A permanent fix was filed on 27 February and verified on ml-staging-codfw, and was deployed to all affected clusters at 13:17 UTC on 3 March. The incident metadata gives the start as 17:20 UTC on 23 February and the end as 12:50 UTC on 24 February.","ko":"Wikimedia 는 머신러닝 운영 쿠버네티스 클러스터 두 곳을 1.31 로 올리면서 Istio 도 1.15 에서 1.24 로 올렸다. 이 클러스터에서 Istio 는 Ingress Gateway 와 메시 사이드카로 쓰인다. 사이드카는 모든 모델 서버가 들어오고 나가는 트래픽에 쓰는 투명 프록시다. 새 Istio 는 VirtualService 의 host 값을 더 엄격하게 검증해, 값이 겹치는 VirtualService 가 둘 이상이면 하나만 받고 나머지는 버린다.\n\n모델 서버들은 MediaWiki API 를 두 방식으로 불렀다. 하나는 코드에 mw-api-ro.discovery.wmnet 같은 MW API VIP 를 적고 en.wikipedia.org 같은 Host 헤더를 넣는 방식이다. 다른 하나는 VIP 없이 en.wikipedia.org 같은 도메인으로 부르고 투명 프록시에 맡기는 방식이다. 팀은 상황에 따라 편한 쪽을 써 왔고 어느 것을 표준으로 할지 정한 적이 없었다. 이번 장애에서 영향을 받은 것은 투명 프록시 방식을 쓰는 모델 서버였다.\n\n2026-02-23 17:21 UTC 에 ml-serve-codfw 업그레이드가 끝났다. 17:30 UTC 부터 5XX 가 나며 알림이 울렸지만 팀은 알아채지 못했다. 2월 24일 08:00 UTC 에 ml-serve-eqiad 업그레이드를 시작했고, 10:15 UTC 에 사용자들이 Slack 에 codfw 문제를 알렸다. 11:00 UTC 에 eqiad 업그레이드가 끝나 eqiad 서비스도 영향을 받았다. 팀은 11:30 UTC 에 조사를 시작했다. 16:00 UTC 에 Istio 핫픽스를 배포해 HTTP 500 대부분을 없앴고, 이로써 장애가 끝났다. 팀은 근본 수정을 2월 27일에 올려 ml-staging-codfw 에서 확인했고, 3월 3일 13:17 UTC 에 영향받은 모든 클러스터에 배포했다."},"trigger":{"en":"The two production Machine Learning Kubernetes clusters were upgraded to version 1.31, which included upgrading Istio from 1.15 to 1.24; ml-serve-codfw was done at 17:21 UTC on 23 February and ml-serve-eqiad between 08:00 and 11:00 UTC on 24 February.","ko":"머신러닝 운영 쿠버네티스 클러스터 두 곳을 1.31 로 올리면서 Istio 를 1.15 에서 1.24 로 올렸다. 새 Istio 는 VirtualService 의 host 값을 더 엄격하게 검증해, host 가 겹치는 VirtualService 가 둘 이상이면 하나만 받고 나머지를 버렸다."},"severity":"unknown","symptoms":["high-error-rate"],"timeline":{"detected_after":"16h 45m","resolved_after":"22h 30m"},"date_kind":"incident","detection":{"en":"Users of the affected model servers first reported the issue in the talk-to-machine-learning Slack channel. Alerts for HTTP 5XX had fired in the Machine Learning IRC channel right after the codfw upgrade, but nobody on the team noticed them.","ko":"영향받은 모델 서버를 쓰는 사람들이 talk-to-machine-learning Slack 채널에 처음 알렸다. codfw 업그레이드 직후부터 Machine Learning 팀의 IRC 채널에 알림이 올라와 있었지만 팀은 알아채지 못했다."},"components":["istio","inference-server"],"root_cause":"upgrade-breaking-change","remediation":[{"text":{"en":"Deployed an Istio hot patch that restored the broken functionality and fixed most of the HTTP 500 errors","ko":"Istio 핫픽스를 배포해 HTTP 500 대부분을 없앴고, 2026-02-24 16:00 UTC 에 장애가 끝났다."}},{"text":{"en":"Deployed the permanent fix to all affected clusters after verifying it on ml-staging-codfw","ko":"근본 수정을 ml-staging-codfw 에서 확인한 뒤 2026-03-03 13:17 UTC 에 영향받은 모든 클러스터에 배포했다."}}],"action_items":[{"text":{"en":"Deliver alerts to the relevant Slack channels and watch IRC or alerts.wikimedia.org","ko":"알림을 관련 Slack 채널로 보내거나, IRC 나 alerts.wikimedia.org 를 지켜보는 방안을 검토한다."}},{"text":{"en":"Add more SLOs and fix the existing ones, whose Istio metrics changed","ko":"SLO 를 더 두는 방안을 검토한다. Istio 지표가 바뀌었으므로 revertrisk-la 의 가용성 SLO 와 지연 SLO 같은 기존 SLO 도 고친다."}}],"contributing":["early-signal-ignored"],"recurrence_of":null,"symptoms_text":{"en":"From 17:30 UTC on 23 February 2026, right after the ml-serve-codfw Kubernetes cluster was upgraded, 5XX responses appeared in the metrics of a subset of Wikimedia's machine learning model servers and alerts started to fire. About half of the running model servers were affected and stayed unreachable for roughly 24 hours.\n\nThe affected model servers were article-models, articletopic-outlink, revertrisk, revision-models, revscoring-articlequality, revscoring-articletopic, revscoring-draftquality, revscoring-drafttopic, revscoring-editquality-damaging and revscoring-editquality-goodfaith, all of them calling the MediaWiki API through the Istio sidecar's transparent proxy. The alerts pointed to HTTP 5XX errors for each affected service; the error volume was moderate compared with other Wikimedia services. The Search Update pipeline, which calls these model servers, the Revised Tone model server and the Machine Learning cache storage were also affected.\n\nThe alerts went to the Machine Learning team's IRC channel and nobody noticed them. At 10:15 UTC on 24 February consumers of the model servers reported the codfw problems in the talk-to-machine-learning Slack channel. By then the ml-serve-eqiad cluster was being upgraded the same way, and when that finished at 11:00 UTC the services in eqiad failed too.","ko":"2026-02-23 17:30 UTC 에 ml-serve-codfw 업그레이드가 끝난 직후, 일부 머신러닝 서비스의 지표에 5XX 응답 코드가 나타나기 시작했고 알림이 울렸다. 실행 중인 모델 서버의 절반이 영향을 받았고, 이 서비스들에는 약 24시간 동안 접근할 수 없었다.\n\n알림은 Machine Learning 팀의 IRC 채널에 올라왔고, 영향받은 서비스마다 HTTP 5XX 오류를 가리켰다. 다른 WMF 서비스에 비하면 오류량은 중간 정도였다. 팀은 이 알림을 알아채지 못했다.\n\n다음 날인 2월 24일 10:15 UTC 에 영향받은 모델 서버를 쓰는 사람들이 talk-to-machine-learning Slack 채널에 codfw 문제를 알렸고, 그 뒤에야 팀이 알림을 보았다. 같은 날 08:00 UTC 에 시작한 ml-serve-eqiad 업그레이드가 11:00 UTC 에 끝나자 eqiad 서비스도 영향을 받았다.\n\n영향은 MediaWiki API 를 투명 프록시로 부르는 모델 서버에 몰렸다. 영향받은 모델 서버는 article-models, articletopic-outlink, revertrisk, revision-models, revscoring-articlequality, revscoring-articletopic, revscoring-draftquality, revscoring-drafttopic, revscoring-editquality-damaging, revscoring-editquality-goodfaith 였다. 이 모델 서버를 부르는 Search Update 파이프라인과 Revised Tone 모델 서버, Machine Learning 캐시 저장소에도 영향이 갔다."},"updated_at":"2026-11-14T05:53:45.517551Z","url":"https://benchlet.com/incidentlib/app/cases/IL-0236","org_slug":"wikimedia-foundation"}