鞭屍 記錄乙個低階失誤,未對函式返回值做判斷

2021-10-07 02:16:59 字數 570 閱讀 3273

某程式(k) pkill 後靠後台程式自動吊起,發現對接程式未能連線,報 connect refused。

使用 netstat -apn | grep k 檢視 k 監聽的埠,發現 k 監聽的埠並不是預期設計的埠。

檢視**,k 在收到 pkill 的訊號(sigterm 15)後,直接退出主迴圈,未對正在處理的連線做 close 操作。

k 在重啟後未對 socket bind 函式做返回值判斷

//偽**如:

intgetsock

(short port)

此函式未對 socket 返回值進行判斷,有時候系統可能分配不了 socket,最重要的是 bind 函式未進行返回值判斷,port 此時可能是被占用,這樣 bind 應該返回 -1。

pkill k 後,立刻 netstat -apn | grep port

可以看到此 port 的狀態是: time_wait,此時 bind 應該不成功,但因未對 bind 返回值判斷,return 的 s 實際監聽的埠非 port。導致對端程式連線報 connect refused。

記錄乙個神奇的失誤

在使用mybatis generator生成了xml檔案之後,查詢語句是這個樣的 select from hjt bill where id 我想著照著這個寫乙個多個鍵值查詢的select語句,於是寫成了這樣 select from bill where bill num and type 然後死活...

安裝無線路由時乙個超低階失誤

昨天在安裝乙個無線路由時,出了個超低階失誤,說下,望引以為戒 線路 鐵通,環境 台機1臺,筆記本1臺。把無線路由接到台機,連好網線,在桌面網路上的芳鄰點右鍵,發現有兩個撥號連線,乙個預設,點開後,記下使用者名稱,詢問密碼是多少,也記下,開啟無線配置頁,填入使用者名稱密碼,發現不能正常工作,不能開啟網...

乙個奇怪BUG的記錄(未根本解決)

乙個奇怪bug的記錄 未根本解決 md 基本邏輯 將資料夾下面的所有檔案路徑名,提取到乙個configfile檔案中,然後按行讀取處理。問題 對於bash資料集沒有問題,但是對於redis資料集 檔案比bash少 出現segmentfault,使用gdb定位到是記憶體釋放時候的錯誤 損壞了記憶體管理...