Separate process is too costly. Well, it seems the way to go is to just 
ignore resource leaks (it should be small), and periodically restart the 
master process.

On Thursday, 17 April 2014 18:11:18 UTC+4, Alex Kocharin wrote:
>
>  
> ... and if it doesn't, you can run it in the separate process, and kill 
> the entire process in case of failure. This way OS will clean up all 
> resources automatically.
>  
>  
> 17.04.2014, 15:33, "Francesco Mari" <mari.fr...@gmail.com <javascript:>>:
>
> Maybe you can check if the client has a timeout parameter or other 
> fallback strategies. If it does, you should trust the client that it 
> performs the appropriate cleanup of the resources it uses.
> Il 17/apr/2014 12:50 "Alexey Petrushin" <alexey.p...@gmail.com<javascript:>> 
> ha scritto:
>
> I use wd.js (RESTful client to Selenium WebDriver) to connect to remote 
> server with running Selenium WebDriver controlling Chrome Browser. 
> It's used for web crawling and sometimes there are sites with bugs that 
> take too much memory or somehow other crush running Chrome Browser Process.
>  
> In such cases (when Selenium Node stop responding) - there are background 
> processes that will kill whole Selenium & Chrome processes and restart it.
>  
> The crawler itself don't know about all this stuff, it only knows list of 
> IP addresses with Selenium Nodes and uses it. And when it hangs - it can do 
> nothing about by himself, only wait until such hanging Selenium Node will 
> be discovered by other processes and rebooted.
>
>
> On Thursday, 17 April 2014 12:42:06 UTC+4, Francesco Mari wrote:
>
> I think that most of your answer depends on what 
> unsafeCallToSomeRemoteService does, and why the remote service is 
> unreliable. Can you provide more information about it? 
>
> 2014-04-17 10:30 GMT+02:00 Alexey Petrushin <alexey.p...@gmail.com>: 
> > Yes, I'm agree with your notes about the code and preventing callback 
> from 
> > being called twice. 
> > 
> > But what about memory and descriptors leaks, is there a way to terminate 
> > hanging callback and clear it? Or I can just safely ignore those issues 
> and 
> > node.js somehow will clear it internally? 
> > 
> > 
> > On Thursday, 17 April 2014 12:21:56 UTC+4, Francesco Mari wrote: 
> >> 
> >> Maybe you also want to prevent callback to execute twice if the timer 
> >> triggers and the remote service sends a response after the time limit. 
> >> 
> >> function safeCallToSomeRemoteService(callback) { 
> >>   var done = callback; 
> >> 
> >>   var timer = setTimeout(function() { 
> >>     var temp = done; 
> >>     done = function () {}; 
> >>     temp(new Error('Remote service timed out!')); 
> >>   }, 3000); 
> >> 
> >>   unsafeCallToSomeRemoteService(function(err, data){ 
> >>     clearTimeout(timer); 
> >>     done(err, data); 
> >>   }); 
> >> } 
> >> 
> >> 2014-04-17 2:06 GMT+02:00 Ryan Graham <r.m.g...@gmail.com>: 
> >> > 
> >> > On Wed, Apr 16, 2014 at 11:17 AM, Alexey Petrushin 
> >> > <alexey.p...@gmail.com> wrote: 
> >> >> 
> >> >> Is it possible to do something like this? 
> >> >> 
> >> >>     function safeCallToSomeRemoteService(callback){ 
> >> >>       var remoteServiceResponded = false 
> >> >>       unsafeCallToSomeRemoteService(function(err, data){ 
> >> >>         remoteServiceResponded = true 
> >> >>         callback(err, data) 
> >> >>       }) 
> >> >> 
> >> >>       setTimeout(function(){ 
> >> >>         if(!remoteServiceResponded){ 
> >> >>           somehow kill callback waiting for remote service 
> >> >>           callback(new Error("Remote service hanged!")) 
> >> >>         } 
> >> >>       }, 3000) 
> >> >>     } 
> >> >> 
> >> >> Or, if it's not possible, is it safe to just ignore such hanged 
> >> >> callbacks, 
> >> >> call callback on timeout and move on (while leaving hanging callback 
> >> >> active)? 
> >> > 
> >> > 
> >> > Ignoring whether there are better options available through the API 
> you 
> >> > are 
> >> > using, the generic timeout code would look something like this: 
> >> > 
> >> >     function safeCallToSomeRemoteService(callback) { 
> >> >       var timer = setTimeout(function() { 
> >> >         callback(new Error('Remote service timed out!')); 
> >> >       }, 3000); 
> >> > 
> >> >       unsafeCallToSomeRemoteService(function(err, data){ 
> >> >         clearTimeout(timer); 
> >> >         callback(err, data); 
> >> >       }); 
> >> >     } 
> >> > 
> >> > ~Ryan 
> >> > 
> >> > -- 
> >> > http://twitter.com/rmgraham 
> >> > 
> >> > -- 
> >> > -- 
> >> > 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 nod...@googlegroups.com 
> >> > To unsubscribe from this group, send email to 
> >> > nodejs+un...@googlegroups.com 
> >> > 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 nodejs+un...@googlegroups.com. 
> >> > 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 nod...@googlegroups.com 
> > To unsubscribe from this group, send email to 
> > nodejs+un...@googlegroups.com 
> > 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 nodejs+un...@googlegroups.com. 
> > 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 nod...@googlegroups.com <javascript:>
> To unsubscribe from this group, send email to
> nodejs+un...@googlegroups.com <javascript:>
> 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 nodejs+un...@googlegroups.com <javascript:>.
> 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 nod...@googlegroups.com <javascript:>
> To unsubscribe from this group, send email to
> nodejs+un...@googlegroups.com <javascript:>
> 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 nodejs+un...@googlegroups.com <javascript:>.
> 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 nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
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 nodejs+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to