Server response is a stream. You maybe have better look by listening the
finish event


2014-03-09 3:28 GMT+01:00 Hseu-Ming Chen <[email protected]>:

> Hi Pedro,
> Thank you for your input.
>
>
> > You are probably triggering response.end() more than once.
>
> Yes, that would be my guess as well.   However, in the code snippet below:
>
>
>    var proxy = new httpProxy.HttpProxy({target: {host: ..., port: ...}});
>    ...
>    proxy.proxyRequest(req,res);
>
> i simply proxy the HTTP request on via  "proxy.proxyRequest(req,res);" so
> i don't explicitly invoke "response.end()".   That's where i'm stuck.  In
> general, what is a surefire way to track down similar problems
> deterministically?
>
> A little background info here: my Node.js server is a reverse proxy (with
> the http-proxy module) as stated earlier and has been running fine for more
> than one year.  The recent crashes happened when someone carried out some
> [stress|load] test against my server.  The server crashed in the middle of
> the load test.
>
> What i also noticed is when my Node.js server crashed, the response from
> the target server is 405 (not sure that's true in all crashes since the
> crash happened so rarely).   Since the crash rarely happens (only in the
> load test), i can't conveniently resort to [Node.js | Google V8] debuggers.
>
> Thanks.
>
>
> On Sat, Mar 8, 2014 at 6:01 PM, Pedro Narciso García Revington <
> [email protected]> wrote:
>
>> You are probably triggering response.end() more than once.
>> http://nodejs.org/api/http.html#http_class_http_serverresponse
>>
>> El sábado, 8 de marzo de 2014 04:16:29 UTC+1, ming escribió:
>>
>>> Hi,
>>> i've been running a reverse proxy (with the http-proxy module) on
>>> Node.js 0.10.24 for a while after i migrated from 0.8.22.    To my
>>> surprise, i again ran into the annoying
>>>    Error: Can't render headers after they are sent to the client.
>>> so my Node.js server crashed (complete stack trace below in <1>):
>>>
>>> According to ChangeLog of 0.9.3 at
>>>    http://nodejs.org/changelog.html
>>> there is the following:
>>>    http: add response.headersSent property (Pavel Lang)
>>>
>>> Should this error be squashed after 0.9.3 release with the headersSent
>>> check?   What am i missing?
>>>
>>> <1>
>>> ---------------------------------------------------------------
>>>   Error: Can't render headers after they are sent to the client.
>>>     at ServerResponse.OutgoingMessage._renderHeaders (http.js:733:11)
>>>     at ServerResponse.writeHead (http.js:1150:20)
>>>     at ClientRequest.proxyError (/.../node_modules/http-proxy/
>>> lib/node-http-proxy/http-proxy.js:213:9)
>>>     at ClientRequest.g (events.js:180:16)
>>>     at ClientRequest.EventEmitter.emit (events.js:95:17)
>>>     at Socket.socketErrorListener (http.js:1547:9)
>>>     at Socket.EventEmitter.emit (events.js:95:17)
>>>     at net.js:441:14
>>>     at process._tickDomainCallback (node.js:459:13)
>>> ---------------------------------------------------------------
>>>
>>> The pertinent code snippet is as follows:
>>> ---------------------------------------------------------------
>>>   var proxyDomain = domain.create();
>>>   proxyDomain.on('error', ...);
>>>   proxyDomain.on('proxyError', ...);
>>>
>>>   spdy.createServer
>>>   (
>>>     ...
>>>     proxyDomain.run
>>>     (
>>>       function()
>>>       {
>>>         var proxy = new httpProxy.HttpProxy({target: {host: ..., port:
>>> ...}});
>>>         ...
>>>         proxy.proxyRequest(req,res);
>>>       }
>>>     );
>>>   );
>>> ---------------------------------------------------------------
>>>
>>>
>>> Anything blatantly wrong?
>>>
>>> Thanks for reading.
>>>
>>>
>>>  --
>> --
>> 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 a topic in the
>> Google Groups "nodejs" group.
>> To unsubscribe from this topic, visit
>> https://groups.google.com/d/topic/nodejs/FWcUXFAKqiY/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to
>> [email protected].
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>  --
> --
> 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 a topic in the
> Google Groups "nodejs" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/nodejs/FWcUXFAKqiY/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 
-- 
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/d/optout.

Reply via email to