This sounds exactly like https://github.com/joyent/node/issues/5504. We're very close to a fix, and it'd be good to go weigh in there so that we can track it more easily than on a mailing list. Short answer: it's an odd kernel behavior where it tells us EOF rather than the actual error code, and Node handles it improperly.
But before you head over there, just to make sure that it's the same issue, please run this file, and then paste the results into the issue comments: https://raw.github.com/isaacs/node/GH-5504/test/simple/test-net-GH-5504.js You can either drop that in `test/simple/` in the node source code, or just comment out the `var common = require('../common')`. Also, what is the output of `uname -a` on the affected systems? Thanks! On Tue, Jun 4, 2013 at 10:54 PM, Vitaly Puzrin <[email protected]> wrote: > Tryed 0.10.10 on fontello.com. Symptoms are the same: > > - works several minutes > - starts use CPU 50-100% and leak memory > - when reach 1.5gb RES - crashes > > lsof -a -p <pid> doesn't show anything special (the same descriptors count) > > After roll back to 0.8, everything works without problems. > > Modules are the same. The only difference, i know, is that module > `log2js-node` uses readable-stream for 0.8, and native streams for 0.10 > > Does anyone have idea, what to do? I'm fine with 0.8, but it will reash end > of life sometime... > > среда, 5 июня 2013 г., 3:47:43 UTC+4 пользователь Vitaly Puzrin написал: >> >> Thanks for info. I had this problem in production, and had to roll back to >> 0.8. >> >> Symptoms were very similar - process works some time, and then starts >> eating 100% of CPU. The only difference was in node-log2js module, they >> started to use streams for writing files. Process has 50К files limit >> >> Will check, if 10.7+ helps. >> >> вторник, 28 мая 2013 г., 16:07:26 UTC+4 пользователь Bert Belder написал: >>> >>> On Tuesday, May 28, 2013 8:17:09 AM UTC+2, Qasim Zaidi wrote: >>>> >>>> Ever since we switched to 0.10.x in production, we are seeing instances >>>> where the server gets into a loop and CPU usage shoots to 100%. Here is >>>> what >>>> I have been able to understand so far about this situation. >>>> >>>> - After some time, we run out of descriptors, i.e. the nofile limit is >>>> reached. This triggers the 100% CPU loop, and node becomes unresponsive. >>> >>> >>> What node version is this? This was supposedly fixed in libuv-v0.10.6. To >>> benefit from the fix you need to use node-v0.10.7 or later. >>> >>>> Something (maybe traffic spike) triggers a socket leak in the process, >>>> and we start with getting a lot of descriptors in close_wait state. This >>>> is >>>> very similar to what is reported at >>>> https://github.com/einaros/ws/issues/180 >>>> (Connections stay in CLOSE_WAIT with Node 0.10.x). >>> >>> >>> Do the CLOSE_WAIT connections show up before or after node hits 100% CPU >>> usage? A socket in CLOSE_WAIT state means that the connection was completely >>> wound down, but the file descriptor hasn't been closed. If a small fraction >>> of sockets is in CLOSE_WAIT state there's nothing to worry about, node just >>> hasn't gotten around to closing the file descriptor yet. It is also >>> "expected" when the 100%-cpu issue kicks in since node basically hangs and >>> won't be closing any FDs at all. >>> >>> - Bert > > -- > -- > Job Board: http://jobs.nodejs.org/ > Posting guidelines: > https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines > You received this message because you are subscribed to the Google > Groups "nodejs" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/nodejs?hl=en?hl=en > > --- > You received this message because you are subscribed to the Google Groups > "nodejs" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/groups/opt_out. > > -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
