php程式死迴圈導致502報錯

2021-08-09 15:42:58 字數 715 閱讀 2145

請求訪問返回502錯誤提示,嘗試去除可疑**段,發現程式正常,可疑**段如下圖箭頭指向:

當時腦熱的以為是本地php5.5.18版本過低,不支援陣列語法(實際php 5.4 開始支援的),於是公升級為php7.0.5版本,然而發現依舊502。

最後仔細觀察nginx錯誤提示,nginx慢日誌如下圖所示,發現到指定**行執行失敗了,才開始考慮可能是可疑**行之後的**出現問題。

找到指定行,如下圖**塊所示。通過日誌跟蹤除錯發現,當刪除可疑行**時,$adminiparr陣列為空,可以順利結束while迴圈,當陣列不為空時,由於$bin變數不發生變化,導致程式陷入死迴圈。

php-fpm由於長時間未返回處理結果給nginx,導致nginx響應超時,導致nginx最終返回502錯誤。nginx錯誤提示如下:

修改死迴圈**,使$bin變數自動增加,即可正常結束迴圈。

Deiphi編譯優化導致的死迴圈

請看下面這段 procedure tform1.button1click sender tobject varstrcolor string i,r,g,b,p integer strlist tstringlist begin strcolor medt.text strlist tstringl...

HashMap之鍊錶導致死迴圈

描述 hashmap採用拉鍊法 陣列鍊錶 解決hash衝突,因為是鍊錶結構,那麼就很容易形成閉合的鏈路。在單執行緒情況下,只有乙個執行緒對hashmap的資料結構進行操作,是不可能產生閉合的迴路的。那就只有在多執行緒併發的情況下才會出現這種情況,那就是在put操作的時候,如果size nitialc...

使用oracle,程式退出死迴圈

在程式中使用sqldriverconnect連線oracle資料庫 沒有關閉sql控制代碼就退出程式了。結果在debug模式下出現死迴圈,還是在exitprocess函式裡,以前沒有碰到開啟後不關閉程式會無法退出,也沒見過exitprocess不能退出來的。猜想是不是oracle的dll沒做好退出這...