今天,我出生產事故了
今天,我出生產事故了。使用者無法登入應用,公司蒙受損失。
前幾天,應運營部門需求,我在管理系統中添加了修改某個資料的功能。我在本地測試後,確認沒有問題,發起jira給運維人員釋出更新。確認功能已經部署到正式環境,我向提需求的運營人員交了差。運營人員開始使用新功能,修改目標資料。
今天,同組的小夥伴突然發現生產庫某關鍵資料沒有了,會導致使用者無法登入。小夥伴立即報告領導,領導緊急召開會議,確認程式碼是我提交的,讓我立即撤下該功能。同時,運維人員立即嘗試資料恢復,報告問題的小夥伴則尋找相關記錄,嘗試手動恢復資料。
一個小時後,小夥伴成功恢復了資料,運維也找到了備份資料。而我這裡卻沒辦法找到問題發生的原因。本地完全無法復現問題,code review也沒有找到問題。查詢操作記錄後,我才發現系統並未記錄請求中body的資料,僅有請求的URL。而據運營人員回憶,他並未修改這些缺失了的欄位。
由於現在資料已經恢復,我無法確定所謂缺失,是資料為null還是空字串。就程式碼而言,我為表單欄位設定了初始值。若該欄位在資料庫原本有值,那開啟表單時就會展示出來,不修改直接提交不可能會丟失該資料。若該欄位在資料庫原本為null,那在表單中未操作的話其值就是null,操作了未填寫值的話,那就是空字串。無論如何也不應該是資料丟失的。
目前還在繼續找原因。至於處罰,聽天由命。