2011-10-20 80 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异常?虽然这并没有解决主要问题,但它会让您有能力通过抛出自己的受控异常来赶超超时。