2011-10-20 78 views
1

我有一個寫入數據存儲的應用程序,因此我試圖將一個HTTP請求發送到數據存儲(hbase + stargate)。 ETIMEDOUT異常,這會殺死進程。無法捕捉的異常NodeJS

我在每個存在或至少看似存在的套接字連接上都有.on('錯誤'),包括請求和響應。我甚至採取了一個極端的一步,做出改變的源代碼,這是應該在第三帖子「忽略」這些錯誤:

http://comments.gmane.org/gmane.comp.lang.javascript.nodejs/25283

我甚至有一個

process.on('uncaughtException', function(){}) 

所有這仍然無濟於事,我的進程不斷死亡。可能失去ZMQ流隊列中建立的所有內容。

最奇怪的部分是4臺服務器集羣中的一臺服務器表現得很好。

+0

它發生在某處,回溯根本沒有幫助。我只是在我的代碼中看到的所有請求/響應/套接字處理程序上發生錯誤事件,希望能夠在某處捕獲它。 – Bryan

+0

Gotcha。我沒有任何線索。 – jcolebrand

+0

您是否嘗試過節點0.6? HTTP客戶端代碼已經基本上重寫爲0.6。 –

回答

0

我對依賴HTTP請求的數據存儲產生了類似問題。

你如何發送「HTTP請求」?有圖書館嗎?您是否嘗試過在HTTP請求上設置超時限制以避免ETIMEDOUT異常?雖然這並沒有解決主要問題,但它會讓您有能力通過拋出自己的受控異常來趕超超時。