我在使用 etsy 的 statsD 时遇到了一些麻烦,并且看到我对 javascript 并没有真正的经验,我想我应该问一个问题,也许有人以前遇到过这个错误,因为遗憾的是这次谷歌并没有那么有帮助。
几天前,当我决定重新启动保持 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 库,而我对它们一无所知。谢谢你。