I have been finding that under situations of high load (data always
queued coming in), my send callbacks are never firing (and, similarly,
the GC is never getting to clean up those buffers, so the process dies
out of memory even when it is otherwise working fine).  This seems to
happen on Linux versions of node (tried 0.6.18 and 0.7.9), but works
fine on Windows versions (tried 0.4.11 and 0.6.18).

I simplified this down to a fairly simple echo server which does
"work" on every byte (no-op for-loop), and a client which continues
sending data as quickly as its echoed.  From the client's perspective,
everything is fine, the server keeps responding, but the server just
continues to eat up memory until it crashes.

Here's a gist with the test server:
https://gist.github.com/2870997

Any ideas on how to fix this?  I'm just guessing, from this data, that
it's deep in the event-loopy kind of code and out of my league for
debugging node.

Side note: while testing this, I also found that on node 0.7.9, even
under non-extreme load, process memory usage grows linearly with
received data count, so it seems those Buffers are never getting
garbage collected anymore.  I'll file a bug with this as well, but if
you run the gist above on node 0.7.9 you'll be seeing that issue as
well.

  - Jimb Esser
    Cloud Party, Inc

-- 
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

Reply via email to