Blauwe en grijze netwerkkabels in een genummerd patchpaneel
Nieuws20 augustus · 20:384 min leestijd

GitHub wijt storing van bijna acht uur aan autoscaling en een retry-bug in VS Code

GitHub noemt de oorzaak van de storing van 17 augustus: een schaalregel die naar de verkeerde limiet keek, plus een retry-bug in VS Code die het Copilot-tokenverkeer vertienvoudigde. Het incident duurde 7 uur en 47 minuten.

GitHub wijt de storing van 17 augustus aan een verkeerd ingestelde autoscaling in het datacenter in Central US en een sluimerende retry-bug in Visual Studio Code, die het tokenverkeer van Copilot ongeveer vertienvoudigde. Het incident duurde 7 uur en 47 minuten. Toen API Requests, Issues, Pull Requests, Actions en Copilot die middag tegelijk op major outage gingen, had het bedrijf nog geen oorzaak.

Twee dingen in dat rapport raken iedereen die software laat bouwen. De versterker zat niet in de infrastructuur van GitHub maar in de editor op de laptops van ontwikkelaars: een mislukte tokenaanvraag kon een stortvloed aan nieuwe aanvragen uitlokken. En Europese klanten met data residency ontkwamen er niet aan, omdat hun Actions-workflows publieke stapdefinities ophalen die op GitHub.com staan. Waar je data staat, bepaalt dus niet waaraan je pijplijn hangt.

Een sidecar die niet meegroeide

De directe oorzaak was netwerkverzadiging op de loadbalancers in Central US, na een nieuwe piek in het verkeer. Daaronder zat een Istio-sidecar die zijn gelijktijdigheidslimiet raakte en niet automatisch opschaalde. De schaalregel keek naar de capaciteit van de hostdienst en niet naar de limieten van de sidecar zelf.

Vanaf daar liep het door. Vier HAProxy-knooppunten raakten door hun flow-limieten heen, waardoor de authenticatieroute in de gateway degradeerde en inloggen op grote schaal traag werd of mislukte. Optimistische retry-logica trok de interne loadbalancers verder vol. Pas toen HAProxy op die knooppunten tegelijk werd gepauzeerd, herstelde het beeld meteen. Op het hoogtepunt lag het foutpercentage rond 20 procent op web- en API-verkeer en rond 50 procent op archief- en ruwe bestandsdownloads.

Visual Studio Code met een geopend JavaScript-bestand en een terminalvenster eronder. Bron: Cycling2 / Wikimedia Commons (CC0)
Visual Studio Code met een geopend JavaScript-bestand en een terminalvenster eronder. Bron: Cycling2 / Wikimedia Commons (CC0)

De retry-lus in VS Code die het herstel uren vertraagde

Een deel van het falende verkeer werd verplaatst naar Northern Virginia. Daar ontstond het tweede probleem: vertraagde antwoorden van één intern eindpunt activeerden een sluimerende retry-bug in Visual Studio Code. Een mislukte tokenoperatie kon veel extra aanvragen genereren en in een lus belanden. Het verkeer naar de Copilot Token Service ging van normaal 7.000 tot 9.000 aanvragen per seconde naar 70.000 tot 100.000.

GitHub kreeg dat pas stil door de retries in de gateway te verminderen en inkomende tokenaanvragen op de loadbalancers met een 403 te blokkeren, om het verkeer daarna per locatie stapsgewijs weer op te voeren. Dat is waarom Copilot uren later herstelde dan de rest: het merendeel van de diensten was om 16.36 UTC terug, Actions bleef verstoord tot ongeveer 18.03 UTC en de Copilot Token Service was pas om 21.02 UTC volledig in orde. Om 21.15 UTC ging het incident dicht. De fout in de editor liet de storing verder escaleren, constateert Techzine.

Een complicerende factor bij het herstel noemt GitHub apart: een reeks scraping-aanvallen op de codeload-endpoints, precies de route waarlangs builds archieven en ruwe bestanden ophalen. Dat past in een bredere verschuiving, want geautomatiseerd verkeer heeft het menselijke verkeer op internet inmiddels ingehaald.

Vijf maatregelen, drie daarvan over retries

GitHub noemt vijf vervolgacties. De schaalregels worden gecorrigeerd zodat ze de gelijktijdigheid en capaciteit van service-mesh-sidecars meenemen. De Istio-limieten voor verzoeken, gelijktijdigheid en schaling worden bij de geraakte diensten doorgelicht. De retry-limieten en het backoff-gedrag in gateways en clients worden herzien. Het retry-gedrag van VS Code wordt aangepakt. En de capaciteitsbewaking van de loadbalancers en de regionale failover worden verbeterd.

Drie van die vijf gaan over retry-gedrag en niet over capaciteit. Daarmee verschuift de diagnose van een klassieke storing. De piek in het verkeer was het begin, maar wat er bijna acht uur van maakte, waren de clients die op elke fout harder gingen kloppen. Inmiddels draait op vrijwel elke ontwikkelaarslaptop een assistent die voortdurend tokens ververst en opnieuw probeert. Wat bij 9.000 aanvragen per seconde onschuldige retry-logica heet, is bij 100.000 de storing zelf. De vraag voor je eigen koppelingen en pijplijnen is daarmee niet of een leverancier omvalt, maar wat jouw code doet op het moment dat hij hapert.

Veelgestelde vragen

Alisina Nawabi
Geschreven doorAlisina Nawabi

AI Product Engineer & Solutions Architect

Koppelingen die tegen uitval kunnen

Een storing bij je leverancier wordt pas echt duur als je eigen koppelingen erop blijven hameren. Ik doe het hele traject, van meedenken en ontwerpen tot bouwen en automatiseren, met foutafhandeling die klopt en self hosted waar dat kan.

Meer informatie

Dit artikel is geproduceerd samen met het Agent Team. Meer over de redactie.

Genoemde integraties

Dit artikel noemt deze tools. Ik koppel ze op maat aan je eigen systemen.

Gerelateerde artikelen

GitHub meldt zware storing in API, Actions, Pull Requests en Copilot
Nieuws
4

17 aug 18:08

GitHub meldt zware storing in API, Actions, Pull Requests en Copilot

GitHub zet API Requests, Issues, Pull Requests, Actions en Copilot op major outage. Het incident loopt sinds 15.40 uur zonder bekende oorzaak, met 20 procent fouten op het web en 50 procent op downloads.

GitHub schrapt modelkeuze in gratis Copilot: Auto bepaalt voortaan welk AI je code schrijft
Nieuws
4 min

25 jun 13:05

GitHub schrapt modelkeuze in gratis Copilot: Auto bepaalt voortaan welk AI je code schrijft

GitHub haalt de handmatige modelkeuze weg bij Copilot Free en Student. Voortaan kiest Copilot Auto zelf welk AI-model je code schrijft. Wie op de gratis tier leunt, verliest die controle.

UiPath laat Claude Code, Cursor en Copilot het bedrijfsproces schrijven
Nieuws
5 min

20 aug 16:23

UiPath laat Claude Code, Cursor en Copilot het bedrijfsproces schrijven

UiPath brengt Maestro Flow uit, waarin een codeeragent het bedrijfsproces schrijft in één bestand dat zonder herbouw in productie draait. Governance en tracing zitten in de runtime, niet ernaast.

Cursor lanceert codehosting Origin en zet die standaard aan
Nieuws
6 min

18 aug 12:09

Cursor lanceert codehosting Origin en zet die standaard aan

Cursor host sinds 17 augustus je code zelf. Origin staat standaard aan op alle betaalde abonnementen, maar over bewaartermijn, dataregio en training op je repo publiceerde Cursor niets. Wat wel geldt, hangt aan Privacy Mode.

Microsoft zet MAI-Code-1.1-Flash in GitHub Copilot, 73 procent goedkoper dan zijn voorganger
Nieuws
4 min

12 aug 08:22

Microsoft zet MAI-Code-1.1-Flash in GitHub Copilot, 73 procent goedkoper dan zijn voorganger

Microsoft zet MAI-Code-1.1-Flash in GitHub Copilot, met een listprijs die 73 procent onder die van zijn voorganger ligt. Wat het model kost, wat het kan, en waarom het bij Business en Enterprise standaard uit staat.

Agent Plugins 1.0 maakt agentuitbreidingen draagbaar tussen ChatGPT, Copilot en VS Code
Nieuws
4 min

7 aug 12:24

Agent Plugins 1.0 maakt agentuitbreidingen draagbaar tussen ChatGPT, Copilot en VS Code

Amazon, Cursor, Microsoft, OpenAI en Vercel publiceerden een open pakketformaat voor Agent Skills en MCP-servers. Google sluit aan als core maintainer. Je bouwt een agentuitbreiding voortaan een keer, niet per client.