我在etsy的statsD方面遇到了一些麻烦,并且看到我对javascript没有真正的经验,我想我应该问一个问题,也许有人之前曾经遇到过此错误,因为可悲的是,这次google并没有那么有用。

几天前,当我决定重新启动保持statsD正常运行的节点进程时,麻烦就开始了,而重新启动之后,它就无法启动。它给了我以下输出:

2 Jul 03:02:08 - reading config file: /opt/statsd/statsd/psrkConfig.js
2 Jul 03:02:08 - server is up
2 Jul 03:02:08 - Loading backend: ./backends/graphite
events.js:72
        throw er; // Unhandled 'error' event
          ^
Error: bind Unknown system errno 92
    at errnoException (dgram.js:440:11)
    at dgram.js:207:28
    at dns.js:72:18
    at process._tickCallback (node.js:415:13)

首先,我认为我应该描述一下我的环境。我正在使用gentoo作为操作系统,我在系统上安装了net-libs / nodejs-0.10.10(实际上是0.10.8,但我在搜索问题解决方案时进行了升级),并且克隆了最新的etsy / statsD从git回购。我也尝试过statsD的npm版本,但行为相同。

我尝试使用strace跟踪程序并得到错误,但是我不知道如何继续前进。由于我的猜测而失败的系统调用是以下之一:
setsockopt(11, SOL_SOCKET, 0xf /* SO_??? */, [1], 4) = -1 ENOPROTOOPT (Protocol not available) <0.000009>

但是必须从statsD内部的某个地方调用它(使其更易于调试),而我找不到它。

我将不胜感激,因为我猜想错误来自于node.js库,我对此一无所知。谢谢。

最佳答案

与@ user1135类似,在最近的debian / testing版本中绑定(bind)UDP套接字时遇到麻烦。我们注释了udp.c中的#ifdef部分,并重新编译以解决此问题。

关于javascript - StatsD启动错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17419624/

10-10 15:21