አንድ መሐንዲስ የጂትላብን ፕሮዳክሽን ዳታቤዝ ሰርዟል። 300 ጊጋባይት።
ጃንዋሪ 31, 2017, 23:27 UTC: አንድ የጂትላብ መሐንዲስ፣ ረጅም ምሽት መጨረሻ ላይ ከተበላሸ ቅጂ ጋር ሲታገል፣ የPostgreSQL የውሂብ ማውጫን ከdb2 ይልቅ በdb1 ላይ ያስወግዳል። db1 ዋናው ነው። ወደ 300 ጊባ የሚጠጋ የGitLab.com ዳታቤዝ በአንድ ወይም በሁለት ሰከንድ ውስጥ ጠፍቷል፣ እና ከአምስቱ የመጠባበቂያ እና የመቅዳት ዘዴዎች ውስጥ አንዳቸውም እየሰሩ አይደሉም። ከሞት በኋላ ምርመራ: የአይፈለጌ መልእክት መጨመር እስከ የተሳሳተ የአስተናጋጅ ስም ድረስ ያለው የጊዜ መስመር፣ pg_basebackup ለምን እንደተጣበቀ፣ pg_dump ለምን ዝም ብሎ መስራት እንዳልቻለ (9.2 ሁለትዮሽ በ9.6 ዳታቤዝ ላይ፣ የውድቀት ኢሜይሎች በDMARC የተመለሱት)፣ ከ6 ሰዓት ዕድሜ ካለው የመድረክ ቅጽበታዊ ገጽ እይታ በዩቲዩብ በቀጥታ የተላለፈው የ18 ሰዓት መልሶ ማግኛ፣ እና ተጠያቂው ማነው። ለምላሹ የተሰጠው ፍርድ: SHIP IT።
ጃንዋሪ 31, 2017, 23:27 UTC: አንድ የጂትላብ መሐንዲስ፣ ረጅም ምሽት መጨረሻ ላይ ከተበላሸ ቅጂ ጋር ሲታገል፣ የPostgreSQL የውሂብ ማውጫን ከdb2 ይልቅ በdb1 ላይ ያስወግዳል። db1 ዋናው ነው። ወደ 300 ጊባ የሚጠጋ የGitLab.com ዳታቤዝ በአንድ ወይም በሁለት ሰከንድ ውስጥ ጠፍቷል፣ እና ከአምስቱ የመጠባበቂያ እና የመቅዳት ዘዴዎች ውስጥ አንዳቸውም እየሰሩ አይደሉም። ከሞት በኋላ ምርመራ: የአይፈለጌ መልእክት መጨመር እስከ የተሳሳተ የአስተናጋጅ ስም ድረስ ያለው የጊዜ መስመር፣ pg_basebackup ለምን እንደተጣበቀ፣ pg_dump ለምን ዝም ብሎ መስራት እንዳልቻለ (9.2 ሁለትዮሽ በ9.6 ዳታቤዝ ላይ፣ የውድቀት ኢሜይሎች በDMARC የተመለሱት)፣ ከ6 ሰዓት ዕድሜ ካለው የመድረክ ቅጽበታዊ ገጽ እይታ በዩቲዩብ በቀጥታ የተላለፈው የ18 ሰዓት መልሶ ማግኛ፣ እና ተጠያቂው ማነው። ለምላሹ የተሰጠው ፍርድ: SHIP IT።
ይህ ቪዲዮ ምን ይሸፍናል
- ጥር 31, 2017: rm -Rvf በዋናው የውሂብ ማውጫ ላይ; ~300 ጊባ ተወግዷል, 4.5 ጊባ ቀርቷል
- 5 ከ 5 የመጠባበቂያ ቅጂዎች አይሰሩም: ባዶ S3 ባልዲ (pg_dump ስሪት አለመጣጣም), በዲቢ ላይ ምንም የአዙሬ ቅጽበቶች የሉም, የተደመሰሰ ቅጂ, የዕለት ተዕለት LVM ቅጂ ያለ ዌብሆኮች
- የካቲት 1, 18:00 UTC: GitLab.com ከ6 ሰዓት ዕድሜ ካለው በእጅ ከተወሰደ ቅጽበታዊ ገጽ እይታ ተመለሰ; የቀጥታ ሰነድ, የቀጥታ ስርጭት, ከጥፋት ነጻ የሆነ ከሞት በኋላ ምርመራ ከጥገና ዝርዝር ጋር
የተተረጎመ ግልባጭ
ከዋናው የእንግሊዝኛ ትረካ የተተረጎመ። የሚገኙ ኦዲዮ እና መግለጫ ጽሑፎች በYouTube ቁጥጥር ስር ናቸው።
0:00 በጂትላብ ያለ አንድ መሐንዲስ rm -rfን በተሳሳተ ዳታቤዝ ሰርቨር ላይ ያካሂዳል፣ እና ሶስት መቶ ጊጋባይት የጂትላብ ዶት ኮም በአንድ ወይም በሁለት ሰከንድ ውስጥ ይጠፋሉ፣ አንድ የአስተናጋጅ ስም ለማንበብ የሚፈጀውን ያህል ጊዜ። ጃንዋሪ 31, 2017, ከምሽቱ 11:27 UTC. ጂትላብ የፕሮዳክሽን ዳታን በድንገት እንደሰረዘ በትዊተር ላይ ይለጥፋል፣ የአደጋ ማስታወሻዎቹን ለበይነመረብ ይከፍታል፣ እና መልሶ ማግኘቱን በዩቲዩብ ያስተላልፋል፣ በመድረኩ ላይ ሁለተኛው የቀጥታ ስርጭት። በሚቀጥለው ቀን፣ በጽሑፍ: ከአምስት የመጠባበቂያ ዘዴዎች ውስጥ፣
0:25 አንዳቸውም በአስተማማኝ ሁኔታ አይሰሩም። እንዴት እንደሚፈጠር፣ ለምን ሊሆን እንደሚችል፣ እና ተጠያቂው ማነው። ይህ The Daily Diff, ከሞት በኋላ ምርመራ። ከምሽቱ 5:20: አንድ መሐንዲስ የፕሮዳክሽን ቅጽበታዊ ገጽ እይታ ይወስዳል በመድረክ ላይ የጭነት ማከፋፈያ ለመፈተሽ። ከምሽቱ 7 ሰዓት: አይፈለጌ መልዕክት ዳታቤዙን ይመታል፣ በተጨማሪም የጂትላብ ሰራተኛን በሃይል የሚሰርዝ ስራ አንድ ትሮል ለጥቃት ሪፖርት አድርጓል። ከምሽቱ 11 ሰዓት: ቅጂው በጣም ከመዘግየቱ የተነሳ ዋናው አስቀድሞ አስወግዶታል
0:48 የሚፈልገውን ሎግ; ብቸኛው መፍትሄ ቅጂውን ማጥፋት እና ዋናውን መቅዳት ነው። እንደገና። pg_basebackup ያለ ምንም ውፅዓት ይንጠለጠላል። በእርግጥም በዝምታ ዋናውን እየጠበቀ ነው; ማንም የሚያውቅ የለም፣ እና የሩንቡክ አይናገርም። መሐንዲሱ፣ በአስራ አንድ ሰዓት ለመውጣት የፈለገው፣ ባዶው የውሂብ ማውጫ ችግሩ ነው ብሎ ያስባል እና ያስወግደዋል። በdb1 ላይ። ዋናው። ከአንድ ወይም ሁለት ሰከንድ በኋላ ያስተውላል; ከሦስት መቶ ጊጋባይት ውስጥ፣
1:11 4.5 ይቀራል። የመጠባበቂያ ቅጂዎቹ። አንድ: pg_dump ወደ S3, በየቀኑ። ባልዲው ባዶ ነው። የክሮን ስራ የሚካሄደው ዳታቤዝ በሌለው የመተግበሪያ ሰርቨር ላይ ነው፣ ስለዚህ ፓኬጁ ይመርጣል PostgreSQL 9.2 ሁለትዮሽ ለ 9.6 ዳታቤዝ፣ አይሰራም፣ እና ኢሜይሎችን ይልካል የውድቀቱን፣ ይህም ለጎደለው DMARC ምክንያት ተመልሷል። ሁለት: የአዙሬ ዲስክ ቅጽበቶች፣ ለፋይል ሰርቨሮች የነቁ፣ ለዳታቤዝ ግን አይደለም።
1:32 ሶስት: ቅጂው፣ ከአንድ ሰዓት በፊት ሆን ተብሎ የተደመሰሰ። አራት: የዕለት ተዕለት ቅጽበታዊ ገጽ እይታ፣ 24 ሰዓት ያረጀ፣ እያንዳንዱ ዌብሆክ በ መድረክ ማመሳሰል የተወገደ። አምስት: ከ 5:20 የተወሰደው በእጅ የተሰራ ቅጽበታዊ ገጽ እይታ፣ ከማይገናኝ ሙከራ የተነሳ። ያኛው ያሸንፋል። መልሶ ማግኛ ማለት የመድረኩን ዲስክ ወደ ፕሮዳክሽን በአዙሬ ርካሽ ማከማቻ በስልሳ ሜጋቢት በሰከንድ መቅዳት ነው: አስራ ስምንት ሰዓታት። GitLab ዶት ኮም የካቲት 1 ቀን ከምሽቱ ስድስት ሰዓት ላይ ተመልሷል UTC, ስድስት ሰዓት የቆየ ዳታ።
1:58 git blame: ሁለት የአስተናጋጅ ስሞች በአንድ ቁምፊ ልዩነት፣ እና አምስት የመጠባበቂያ ስርዓቶች ማንም ተመልሶ አያውቅም። መሐንዲሱ አይደለም። በዋና ስራ አስፈፃሚው የተፈረመው ከሞት በኋላ ምርመራ፣ ማንነቱን ይደብቃል፣ የፕሮዳክሽን ጥያቄውን ቀይ ቀለም ይሰጠዋል፣ እና ለዳታ ዘላቂነት ባለቤት ይሰጣል፣ ምክንያቱም እስከ አሁን ድረስ አልነበረውም። የጥፋት ስፋት: አስራ ስምንት ሰዓታት ጠፍቶ፣ ስድስት ሰዓት ዳታ ጠፍቶ፣ በግምት አምስት ሺህ ፕሮጀክቶች፣ አምስት ሺህ አስተያየቶች፣
2:18 ሰባት መቶ አዲስ ተጠቃሚዎች፣ እና አምስት ሺህ ሰዎች የሂደት አሞሌ እየተመለከቱ። Hacker News የቀጥታ ሰነዱን 1,162 ነጥብ ይሰጠዋል እና አንዱን መስመር ይመልስላቸዋል: ከአምስት የመጠባበቂያ ቅጂዎች ውስጥ፣ አንድም የለም። ፍርድ፣ ከሞት በኋላ ምርመራ: SHIP IT, በምላሹ ላይ። አደጋውን በይፋ ያካሂዳሉ፣ ሂደቱን ይወቅሳሉ፣ እና የጥገና ዝርዝሩን ያትማሉ ከችግር ቁጥሮች ጋር። የሰኞ እርምጃ: የመጠባበቂያ ቅጂን መልሶ ማግኘት። ከዚህ በፊት ካላስመለስከው፣ የለህም።
2:42 አሁንም ማውራት የማይፈቀድልህን አደጋ ላክልኝ፣ በአስተያየቶቹ ውስጥ፣ ወይም በdaily diff dot dev። እና የዛሬው ልዩነት ይኸው ነው። እኔ ከAxrisi ነኝ። ኃላፊነት በተሞላበት መንገድ ያዋህዱ።
ምንጮች
- GitLab, "Postmortem of database outage of January 31" (Feb 10, 2017)about.gitlab.com
- GitLab, "GitLab.com database incident" (Feb 1, 2017)about.gitlab.com
- @gitlabstatus, "We accidentally deleted production data…"twitter.com
- @gitlabstatus, emergency maintenance noticetwitter.com
- Hacker News, "GitLab Database Incident – Live Report" (1,162 points, 598 comments)news.ycombinator.com
- Hacker News, the postmortem thread (377 points)news.ycombinator.com



