# Insener kustutas GitLab’i tootmisandmebaasi. 300 gigabaiti.

Published: 2026-09-10

31. jaanuar 2017, kell 23:27 UTC: GitLab’i insener, kes võitles pika öö lõpus katkise replikaga, eemaldas PostgreSQL-i andmekataloogi db1-lt db2 asemel. db1 on primaarne. Umbes 300 GB GitLab.com’i andmebaasist kadus sekundi või kahega ja viiest varundus- ning replikatsioonimehhanismist ei töötanud ükski. Järelaanalüüs: ajajoon rämpsposti rünnakust vale hostinime valikuni, miks pg\_basebackup näis seisvat, miks pg\_dump oli vaikselt ebaõnnestunud (9.2 binaarid 9.6 andmebaasis, tõrketeated põrkasid DMARC-i tõttu tagasi), 18-tunnine taastamine 6 tundi vanast lavastuse hetktõmmisest, mis striimiti otse YouTube’is, ja kes tegelikult süüdi on. Reageeringu kohtuotsus: SHIP IT.

Canonical: https://thedailydiff.dev/et/video/2026-09-10-gitlab-rm-rf/

## Mida see video hõlmab

- 31. jaanuar 2017: rm -Rvf primaarse andmekataloogis; ~300 GB eemaldatud, 4,5 GB jäi
- 5 varundusest 5 ebaõnnestusid: tühi S3 kopp (pg\_dump versioonide lahknevus), andmebaasil puudusid Azure'i hetktõmmised, pühitud replika, igapäevane LVM koopia ilma veebiühendusteta
- 1. veebruar, 18:00 UTC: GitLab.com tagasi 6 tundi vanast käsitsi tehtud hetktõmmisest; elav dokument, otseülekanne, süüdistusteta järelaanalüüs veaparanduste loeteluga

## Tõlgitud transkriptsioon

Tõlgitud ingliskeelsest originaaljutustusest. Saadaolevat heli ja subtiitreid kontrollib YouTube.

0:00 Insener GitLabis käivitab rm -rf vale andmebaasiserveri peal, ja kolmsada gigabaiti GitLab dot com-i kaob sekundi või paari jooksul, umbes sama kaua, kui kulub hostinime lugemiseks. 31. jaanuar 2017, kell 23:27 UTC. GitLab säutsub, et nad kustutasid kogemata tootmisandmed, avalikustab oma intsidentmärkmed internetis ja striimib taastamist YouTube'is, platvormi teine otseülekanne. Järgmisel päeval kirjalikult: viiest varundustehnikast,

0:25 ükski ei töötanud usaldusväärselt. Kuidas see juhtub, miks see on võimalik ja kes tegelikult süüdi on. See on The Daily Diff, järelaanalüüs. Kell 17:20: insener teeb tootmisest hetktõmmise koormuse tasakaalustaja testimiseks lavastuskeskkonnas. Kell 19:00: rämpspost pommitab andmebaasi, lisaks töö, mis kustutab GitLab'i töötaja troll teatas väärkohtlemisest. Kell 23:00: replika jääb nii kaugele maha, et primaarne on juba logi kõrvaldanud,

0:48 mida ta vajab; ainus lahendus on replika pühkida ja primaarne uuesti kopeerida uuesti. pg\_basebackup hangub ilma väljundita. See tegelikult ootab vaikselt primaarset; keegi ei tea seda, ja käitusjuhend seda ei ütle. Insener, kes pidi kell üksteist töölt lahkuma, otsustab, et tühi andmekataloog on probleem ja eemaldab selle. Db1 peal. Primaarne. Ta märkab sekundi või paari pärast; ligikaudu kolmsajast gigabaidist,

1:11 4.5 jääb alles. Varukoopiad. Üks: pg\_dump S3-sse, iga päev. Kopp on tühi. Cron-töö jookseb rakendusserveril, millel pole andmebaasi, nii et pakett valib PostgreSQL 9.2 binaarid 9.6 andmebaasi jaoks, ebaõnnestub ja saadab e-kirju ebaõnnestumise kohta, mis põrkab DMARC-i puudumise tõttu tagasi. Kaks: Azure'i kettapildid, lubatud failiserverite jaoks, mitte andmebaaside jaoks.

1:32 Kolm: replika, mis pühiti tahtlikult tund aega tagasi. Neli: igapäevane hetktõmmis, 24 tundi vana, kõik veebiühendused eemaldatud lavastuse sünkroonimisega. Viis: käsitsi tehtud hetktõmmis kell 17:20, mitteseotud testi jaoks. See võidab. Taastamine tähendab lavastuskettalt tootmisse kopeerimist üle Azure'i odava salvestusruumi kuuekümne megabitti sekundis: kaheksateist tundi. GitLab dot com on tagasi 1. veebruaril kell 18:00 UTC, kuus tundi vanemate andmetega.

1:58 git blame: kaks hostinime, mis on ühe tähemärgi kaugusel, ja viis varundussüsteemi, millest keegi pole kunagi taastanud. Mitte insener. Järelaanalüüs, mille on allkirjastanud tegevjuht, hoiab teda anonüümsena, värvib tootmisviipa punaseks ja annab andmete püsivusele omaniku, sest siiamaani seda polnud. Plahvatusraadius: kaheksateist tundi maas, kuus tundi andmeid kadunud, umbes viis tuhat projekti, viis tuhat kommentaari,

2:18 seitsekümmend uut kasutajat ja viis tuhat inimest jälgimas edenemisriba. Hacker News annab reaalajas dokumendile 1162 punkti ja tsiteerib ühte rida neile tagasi: viiest varukoopiast, mitte ühtegi. Otsus, järelaanalüüs: SHIP IT, reageerimise osas. Nad juhivad intsidenti avalikult, süüdistavad protsessi ja avaldavad paranduste loendi probleeminumbritega. Esmaspäevane tegevus: taastage varukoopia. Kui te pole seda kunagi taastanud, siis teil seda pole.

2:42 Saatke mulle intsident, millest teil ikka veel ei ole lubatud rääkida, kommentaarides või aadressil daily diff dot dev. Ja see on tänane vahe. Olen Niko Axrisist. Ühendage vastutustundlikult.

## Allikad

- [GitLab, "Postmortem of database outage of January 31" (Feb 10, 2017)](https://about.gitlab.com/blog/postmortem-of-database-outage-of-january-31/) — about.gitlab.com
- [GitLab, "GitLab.com database incident" (Feb 1, 2017)](https://about.gitlab.com/blog/gitlab-dot-com-database-incident/) — about.gitlab.com
- [@gitlabstatus, "We accidentally deleted production data…"](https://twitter.com/gitlabstatus/status/826591961444384768) — twitter.com
- [@gitlabstatus, emergency maintenance notice](https://twitter.com/gitlabstatus/status/826572933304827904) — twitter.com
- [Hacker News, "GitLab Database Incident – Live Report" (1,162 points, 598 comments)](https://news.ycombinator.com/item?id=13537052) — news.ycombinator.com
- [Hacker News, the postmortem thread (377 points)](https://news.ycombinator.com/item?id=13619714) — news.ycombinator.com
