# Muhandis GitLab'ning ishlab chiqarish ma'lumotlar bazasini o'chirib tashladi. 300 gigabayt.

Published: 2026-09-10

2017-yil 31-yanvar, 23:27 UTC: GitLab muhandisi uzoq tun oxirida buzilgan replikatsiya bilan kurashib, db2 o'rniga db1'dagi PostgreSQL ma'lumotlar katalogini olib tashlaydi. db1 asosiy hisoblanadi. GitLab.com ma'lumotlar bazasining taxminan 300 GB bir-ikki soniyada yo'q bo'lib ketadi va beshta zaxira nusxalash va replikatsiya mexanizmlaridan hech biri ishlamaydi. Postmortem: spam to'lqinidan noto'g'ri xost nomigacha bo'lgan vaqt jadvali, pg\_basebackup nega tiqilib qolgandek ko'ringani, pg\_dump nega jimgina ishlamay qolgani (9.6 ma'lumotlar bazasida 9.2 ikkilik fayllar, DMARC tomonidan qaytarilgan xatolik e-pochta xabarlari), YouTube'da jonli efirga uzatilgan 6 soatlik sahnaga qo'yishdan olingan 18 soatlik tiklash va ayb kimda ekanligi. Javob bo'yicha hukm: SHIP IT.

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

## Bu video nimani qamrab oladi

- 2017-yil 31-yanvar: asosiy ma'lumotlar katalogida rm -Rvf; ~300 GB o'chirildi, 4,5 GB qoldi
- 5 ta zaxira nusxadan 5 tasi ishlamayapti: bo'sh S3 chelaki (pg\_dump versiya mos kelmasligi), DB'da Azure snapshotlari yo'q, o'chirilgan replika, veb-hook'larsiz kundalik LVM nusxasi
- 1-fevral, 18:00 UTC: GitLab.com 6 soatlik eski qo'lda olingan snapshotdan qayta tiklandi; jonli hujjat, jonli efir, tuzatishlar ro'yxati bilan aybsiz postmortem

## Tarjima qilingan transkript

Asl inglizcha hikoyadan tarjima qilingan. Mavjud audio va subtitrlar YouTube tomonidan boshqariladi.

0:00 GitLab'dagi muhandis noto'g'ri ma'lumotlar bazasi serverida rm -rf buyrug'ini ishga tushiradi, va GitLab.com'ning uch yuz gigabayti bir-ikki soniyada g'oyib bo'ladi, xost nomini o'qishga ketadigan vaqt bilan teng. 2017-yil 31-yanvar, soat 23:27. UTC. GitLab tasodifan ishlab chiqarish ma'lumotlarini o'chirib tashlaganini tvit qiladi, o'zining hodisa qaydlarini internetga ochadi va tiklash jarayonini YouTube'da jonli efirga uzatadi, platformadagi ikkinchi raqamli jonli efir. Keyingi kun, yozma ravishda: beshta zaxira nusxalash usulidan,

0:25 hech biri ishonchli ishlamaydi. Bu qanday sodir bo'ladi, nega bu mumkin va kim aslida aybdor. Bu The Daily Diff, postmortem. 17:20: muhandis ishlab chiqarishning snapshotini oladi sahnalashtirishda yuk balanserini sinash uchun. 19:00: spam ma'lumotlar bazasiga hujum qiladi, shuningdek, GitLab xodimini qattiq o'chirib tashlaydigan ish trol tomonidan suiiste'mollik uchun xabar qilingan. 23:00: replika shunchalik orqada qoladiki, asosiy allaqachon tashlab yuborgan

0:48 unga kerak bo'lgan jurnaldan; yagona yechim - replikani o'chirish va asosiy nusxani qayta nusxalash. pg\_basebackup hech qanday chiqishsiz osilib qoladi. U aslida, jimgina, asosiy nusxani kutmoqda; buni hech kim bilmaydi, va yo'riqnomada yozilmagan. Soat o'n birda chiqib ketmoqchi bo'lgan muhandis bo'sh ma'lumotlar katalogi muammo ekanligini hal qiladi va uni olib tashlaydi. db1'da. Asosiy. U bir-ikki soniyadan keyin sezadi; taxminan uch yuz gigabaytdan,

1:11 4,5 qoldi. Zaxira nusxalar. Bir: pg\_dump S3'ga, har kuni. Chelak bo'sh. Cron ishi ma'lumotlar bazasi bo'lmagan ilova serverida ishlaydi, shuning uchun paket tanlaydi 9.6 ma'lumotlar bazasi uchun PostgreSQL 9.2 ikkilik fayllarini, ishlamay qoladi va elektron pochta orqali xabarlarni yuboradi, bu DMARC yo'qligi sababli qaytariladi. Ikki: Azure disk snapshotlari, fayl serverlari uchun yoqilgan, ma'lumotlar bazalari uchun emas.

1:32 Uch: replika, bir soat oldin ataylab o'chirilgan. To'rt: kundalik snapshot, 24 soatlik eski, har bir veb-hook sahnalashtirish sinxronizatsiyasi tomonidan olib tashlangan. Besh: 17:20'da olingan qo'lda snapshot, bog'liq bo'lmagan sinov uchun. Bu g'olib chiqadi. Tiklash Azure'ning arzon xotirasi orqali sahnalashtirish diskini ishlab chiqarishga oltmish megabit tezlikda qaytarishni anglatadi: soniyada oltmish megabit: o'n sakkiz soat. GitLab.com 1-fevral kuni soat 18:00'da qayta tiklandi UTC, olti soatlik ma'lumotlar eskiroq.

1:58 git blame: bir belgiga farqli ikkita xost nomi va hech kim hech qachon tiklamagan beshta zaxira nusxa tizimi. Muhandis emas. Bosh direktor tomonidan imzolangan postmortem uni anonim saqlaydi, ishlab chiqarish promptini qizil rangga bo'yaydi va ma'lumotlar chidamliligiga egasini beradi, chunki shu vaqtgacha uning egasi yo'q edi. Portlash radiusi: o'n sakkiz soat ishlamadi, olti soatlik ma'lumotlar yo'qoldi, taxminan besh ming loyiha, besh ming izoh,

2:18 etti yuz yangi foydalanuvchi va besh ming kishi jarayon panelini tomosha qilmoqda. Hacker News jonli hujjatga 1,162 ball beradi va ularga bir qatorni iqtibos keltiradi: beshta zaxira nusxadan hech biri. Hukm, postmortem: javob bo'yicha SHIP IT. Ular hodisani ommaviy ravishda boshqaradi, jarayonni ayblaydi va tuzatishlar ro'yxatini muammo raqamlari bilan nashr etadi. Dushanba harakati: zaxira nusxani tiklash. Agar uni hech qachon tiklamagan bo'lsangiz, sizda bunday narsa yo'q.

2:42 Mengga hali ham gapirishga ruxsat berilmagan hodisani yuboring, izohlarda yoki the daily diff dot dev manzilida. Va bugungi farq shu. Men Axrisi'dan Niko'man. Mas'uliyat bilan birlashtiring.

## Manbalar

- [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
