[Góc engineering] Câu chuyện về đợt "cúp điện" lâu nhất lịch sử
đã đăng vào 4:49 p.m. 9 Tháng 12, 2021

Thông báo lỗi 502 Bad Gateway đã trở thành một mảnh ghép thân thương của trang web LQDOJ trong lòng người dùng nhờ lịch bảo trì dày đặc và đầy bất ngờ của nhà cung cấp máy chủ ảo. Các bạn có thể bắt gặp lỗi 502 khi đang tham gia contest, khi chat chit, viết blog và thậm chí là khi ... chỉ vừa mới đăng nhập xong. Dù mật độ lỗi xảy ra khá thường xuyên nhưng team dev web cũng luôn xử lý chúng rất nhanh gọn để không làm gián đoạn trải nghiệm của mọi người. Tuy nhiên, may mắn đã không mỉm cười với chúng mình vào sự cố ngày thứ bảy vừa rồi (04/12) nữa. Diễn biến của "tuần cuối năm u ám" này (được chính thức đặt tên để kỷ niệm một bài học nhớ đời) có thể được tóm tắt như sau:

  • Vào tầm 16h ngày thứ bảy, thầy Small thông báo cho toàn thể các admin về việc LQDOJ lại bị lỗi 502 sau khi bảo trì máy chủ và việc restart các service không có tác dụng.
  • 17h cùng ngày, server được reboot và tình hình vẫn không tươi sáng hơn. CaiWinDao thử khởi động development server bằng lệnh kinh điển python manage.py runserver và nhận được thông báo lỗi khô khốc: "Table 'dmoj.django_migrations' doesn't exist in engine". Đọc lướt thấy keyword migrations đã biết ngay lành ít dữ nhiều, CaiWinDao đã xác định rằng web không thể có cơ may sống lại trước khi cuom1999 thức giấc.
  • 20h (ở Mỹ đang là buổi sáng), cuom1999 sau bài thể dục buổi sáng đã gấp rút chạy lệnh sao lưu dữ liệu ... ./backup.sh, tuy nhiên, một thông báo lỗi nghiệt ngã đã chờ sẵn: mysqldump: Got error: 1932: "Table 'dmoj.auth_group' doesn't exist in engine" when using LOCK TABLES. Định mệnh đã rõ: Database đã bị crash, MariaDB chính thức đình công. cuom1999 tạm gác việc debug để lên trường dự thi Putnam.
  • Sau hơn một ngày tra cứu, một giải pháp khả thi xuất hiện là sử dụng mysqlfrm để restore database từ các mảnh .idb.frm. Nghe có vẻ đơn giản nhưng việc thực thi đã gặp rất nhiều rào cản nên người dùng vẫn phải chờ đợi mỏn mỏi 🙁
  • Vào thứ hai tuần sau, team hạ tầng server bắt đầu tiến hành tạo một bản sao của web từ mã nguồn trên Github và dữ liệu cào được vào ngày 4/12. cuom1999 đã tham gia hỗ trợ hiệu chỉnh các table trong database để bản sao này có thể chạy trơn tru.
  • Trưa ngày hôm nay, thứ năm (09/12), LQDOJ đã chính thức "hồi sinh" dù vẫn còn tồn tại một số lỗi nhỏ trong đồng bộ dữ liệu. Toàn thể ban quản trị đều thở phào nhẹ nhõm!

Chúng mình thấu hiểu sâu sắc rằng LQDOJ đóng một vai trò không nhỏ trong quá trình học tập và tự rèn luyện của các bạn. Chúng mình cũng xin chân thành cáo lỗi về sự cố vừa qua. Kể từ ngày hôm nay, server sẽ chính thức thực hiện việc sao lưu (backup) vào mỗi ngày để việc khắc phục các sự cố (nếu xảy ra trong tương lai) được nhanh nhất có thể. Xin cảm ơn sự đồng hành và ủng hộ của tất cả thầy cô và các bạn học sinh!


Bình luận


  • 3
    Solra123    9:05 p.m. 14 Tháng 12, 2021

    Legendary Admin. Chúc mừng các ad!


    • 3
      thich_viet_editor    4:07 p.m. 11 Tháng 12, 2021

      admin ơi, hiện tại nick chính của em là N7hoatt vẫn đang bị lỗi không đăng nhập được, các anh có thể giúp em không

      2 phản hồi

      • 19
        Toilaaibanbietko7A4    10:11 a.m. 11 Tháng 12, 2021

        Thật sự chúng ta cần dành cho dàn admin của chúng ta một chục tràn pháo tay và những lời cảm ơn nồng nhiệt nhất vì những nỗ lực của họ nhằm khôi phục web dành cho việc luyện coding của chúng ta cho tương lai sau này. ^^

        P/S: Sao nghe câu chuyện này thấy giống một cuộc chiến giành giật lại sự sống thế nhờ 😃 Ai thấy đúng nhớ upvote, thấy sai nhớ reply lại số 0 chứ đừng downvote tui nhé 😃

        1 phản hồi

        • 4
          khoa2008    8:32 p.m. 10 Tháng 12, 2021

          Một câu chuyện thật thú zị 🙂

          Ngồi đợi mòn mỏi suốt mấy ngày mới đc code lại


          • 4
            tkquanbuianh    2:39 p.m. 10 Tháng 12, 2021 đã chỉnh sửa

            Hôm bữa em làm xong bài mà đợi cả tuần mòn mỏi mới được


            • 0
              khanhhunghack    9:48 a.m. 10 Tháng 12, 2021

              hơn 1 tuần cúp điện không làm code giờ quên sạch luôn rồi 🥴😵😵🥴


              • 7
                mimibetty    8:26 a.m. 10 Tháng 12, 2021

                một câu chuyện cảm động. Thật sự ngưỡng mộ sự nỗ lực cố gắng của dàn admin đẹp trai

                1 phản hồi

                • 6
                  n2anndk    7:58 p.m. 9 Tháng 12, 2021

                  may quá hồi sinh r 🙂


                  • 5
                    datnvt    7:44 p.m. 9 Tháng 12, 2021

                    team BQT quá căng o.o


                    • 5
                      Lê_Gia_Khánh    6:41 p.m. 9 Tháng 12, 2021

                      xịn

                      • 3 bình luận nữa