NodeJSで手作りのHTTP Proxyを作っているのですが、1秒あたりのリクエスト数が多いとnet.jsがnull接続の終端を読み込んで無限ループに陥ってしまいます。(40 req/s 前後でランダムに起こります)。
問題をスローする単純な HTTP プロキシを作成するバグの原因となったコードを分離しました。
コード: https://gist.github.com/Ifnot/5336823
コマンド「NODE_DEBUG=net node main.js」を使用してnet.jsをデバッグモードにすると、すべての接続が閉じられているように見えても、プログラムはこれを無期限に出力します:
デバッグ: https://gist.github.com/Ifnot/5274181
注:ループが始まると、次のエラーが表示されます:
(node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.
Trace
at Socket.EventEmitter.addListener (events.js:160:15)
at Socket.Readable.on (_stream_readable.js:653:33)
at Socket.EventEmitter.once (events.js:179:8)
at TCP.onread (net.js:527:26)
私は何か間違っていますか?誰が何が起こるか知っていますか?この問題が発生する理由
(ノード v0.10.4 を使用しています。以前のバージョン v0.9.x で問題が見られました)