nodejitsu/node-http-proxy — pull request #293 by jkorycki-skype (2012-07-30 21:38:10+00:00)
Title: Memory leak fix in forwarding of websockets

Http-proxy has a big memory leak when forwarding websockets. Test case: socket.io client establishes websocket to a socket.io server, via http-proxy. The client holds the connection for some time (e.g. 10 sec), closes the connection, establishes another one, holds it open for a while, closes, etc. in a loop. Use several hundred clients to observe a consistent memory growth, hundreds of MB in a few minutes. Garbage collection does not reclaim the lost memory.

The fix is in node-http-proxy/http-poxy.js by registering on 'close' handlers of incoming and outgoing socket, in addition to already present on 'end' handlers. The test case described above stopped leaking memory completely after applying this fix.

Repro test case can be made available upon request.