I'm having some troubles with statsD from etsy, and seeing that i'm not really experienced with javascript I thought I should ask a question maybe somebody has encountered this error before, because sadly this time google hasn't been that helpful.
The troubles have started a couple of days ago when I decided to restart the node process that was keeping statsD up, when after the restart it just wouldn't start. It gives me the following output:
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)
First of all I think I should have described a little my environment. I'm using gentoo as an OS, I have net-libs/nodejs-0.10.10 installed on the system(was actually 0.10.8 but I upgraded in my search for the problem resolution) and I have cloned the latest etsy/statsD repo from git. I have also tried with the npm version of statsD but got the same behaviour.
I tried following the program with strace and got to the error, but I have no idea how to procede forward. The syscall that fails from what I'm guessing is the following one:
setsockopt(11, SOL_SOCKET, 0xf /* SO_??? */, [1], 4) = -1 ENOPROTOOPT (Protocol not available) <0.000009>
but it has to be called from somewhere inside statsD (making it easier to debug), and I could not find it.
I would appreciate any kind of little help or pointers, because I'm guessing the error comes form the node.js libraries and I'm pretty clueless about them. Thank you.
similar to @user1135, had trouble with binding to UDP sockets on a recent build of debian/testing. we commented out the #ifdef sections in udp.c and recompiled to fix the problem.
I had a similar problem recently, also on Gentoo Linux. It so happened I had the 3.9 linux headers installed but was still running an older kernel. This caused SO_REUSEPORT to be defined when building node.js (specifically uv). Going back to the proper header version or doing #undef SO_REUSEPORT inside of deps/uv/src/unix/udp.c should fix it. Also upgrading to a 3.9+ kernel would do it.