今天的事件特別離奇
只是加了一行log
卻導致整個程式壞死
再次刷新我對程式開發的理解

因為有個bug橫跨兩個專案
但不確定問題在哪邊
code看了老半天依然沒有頭緒
只好先埋個log
上線觀察一下

沒想到上版之後
整個後台系統大當機
合約名稱都顯示空白

雖然經驗告訴我這不科學
但還是先退個版
先讓系統正常

一問同事
才知道之前也發生過類似問題
但是退版重上就好了
仔細看一下commit紀錄
的確只有新增log
不知道為啥會壞

就像之前提到的
修復Bug的第一步驟
就是穩定重現Bug

所以我又重新加上log
重新上到stage驗證
結果還真的能夠重現問題
stage的後台
同樣發生合約名稱空白的問題

如果不是程式碼
那就是CI/CD有問題
但看紀錄,也沒什麼人改動過
build也成功
那為啥會遇到這個問題
而且還不只一次

再回頭想一下上版流程
難道是因為同時跑兩個專案的關係
看了一下專案的startup
果不期然
兇手就在這裡

A站台啟動時,會去打B站台的服務
取資料建立快取
但因為同時上版的關係
取不到B站台的資料
就導致沒有產品資料
呈現的結果就是一片空白

同樣的code再上一次
但是等待B站台啟動成功後
再部署A站台
果然就沒有再發生問題

不過目前沒有比較好的預防方式
也只能記錄在專案的Readme
防止下一個人踩到爆炸
然後還死不瞑目
不知問題是啥

下回預告
前一天測試OK的推播功能
過了一個晚上就壞了
如果沒人改動程式
那麼兇手會是誰?

下一回
推播異常Bug事件