我正在PM2管理的nodejs集羣上隨機重新啓動。我在錯誤日誌上得到的唯一症狀是以下模式 - 對dns.js的ENOTFOUND。如何調試神祕ENOTFOUND?
Error: getaddrinfo ENOTFOUND walkinto.inhttp walkinto.inhttp:80 at errnoException (dns.js:28:10) at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:76:26)
問題顯然是畸形的服務器名稱 - walkinto.inhttp是不正確的,它應該是walkinto.in。挑戰在於,這不是代碼中硬編碼的主機名。在這個相當龐大的代碼庫中有很多地方可以進行名稱解析並且具有動態性。
我花了相當多的時間來查明根本原因,但到目前爲止沒有運氣。我需要幫助來從dns.js打印更多日誌信息;可能是一個「可能」的調用堆棧將有助於前進。
Q1:如何在nodejs核心模塊上啓用更詳細的日誌記錄?
Q2:什麼可能導致ENOTFOUND發生nodejs重啓?如何避免重新啓動 - 此路徑不可取。
Q3:有沒有其他更聰明的方法來解決這個問題?
您能否包含導致此錯誤的代碼?請參閱:https://stackoverflow.com/help/mcve – Svenskunganka
不,我不知道這個錯誤的來源。我試圖添加錯誤處理程序和日誌到所有可疑的代碼 - http.get,http.post request()... – WalkInto