問題描述及定位過程
週末收到現場問題:一臺設備能連上平臺但無法正常登陸。
我們每個設備都有一個自定義唯一編號,這個編號用於設備登陸平臺時校驗設備身份。
現在設備能與平臺建立socket連接,但無法登陸,應該就是這個編號驗證不通過。
平臺日誌顯示:設備登陸時報編號不存在異常。
但我複製這個編號,手動去平臺數據庫查又可以找到,奇了怪了。
我一通查看代碼,沒找到問題。
我盯着日誌看,突然發現一個異常:設備編號後面的日誌是換行顯示的。
正常日誌是一行的,這個設備日誌換行,說明設備編號後面有個換行符\n。
我和生成這個設備編號的同事溝通,最終找到問題原因:他的編輯器會自動加換行符。
總結
- 程序不夠健壯,對設備唯一編號這種關鍵信息沒做好格式校驗。
- 生成設備唯一編號應該用我們正式的工具,不能手動。
- 小問題往往出現在細節上。
參考
因爲這個問題,我特地學習了回車與換行的起源及區別。參考資料如下,