Re: [Smartfrog-support] Termination due to slow start-up.

Steve Loughran <[email protected]> Thu, 14 Feb 2008 16:47:00 +0000
Newsgroups gmane.comp.java.smartfrog.user
Message-ID <[email protected]>
Ismael Juma wrote:
> Hi Julio,
> 
> Thank you for the reply.
> 
> On Wed, 2008-02-13 at 10:23 +0000, Guijarro, Julio wrote:
>> Hi Ismael,
>>
>> sfPing starts once the component is deployed and therefore it will
>> check if the component is alive during sfDeploy and sfStart as well.
>> This means that the components should not block on the sfDeploy and
>> sfStart methods.
> 
> I see.
> 
>> The general rule is that any long operation (ex. starting a DB)
>> started inside those methods should be processed in a separate thread
>> to avoid liveness failures.
> 
> Makes sense.
> 
>> To test if this is your case you can make liveness 0 (liveness =
>> disabled)
>>
>>   org.smartfrog.sfcore.processcompound.sfLivenessDelay=0
>>
>> and see if your example now works.
> 
> It does indeed work.
> 
>> If this solves your problem please file a bug against the Jetty
>> component and we will fix it for next release.
> 
> Done[1].

This could be due to a threading problem (I'm not starting one), or it 
could be down to a thread being started, but the underlying components 
taking longer to go live than expected. For example, the jetty servlet 
code expects that if there is
some jetty class, then it had better be running:

     public void ping() throws SmartFrogLivenessException, RemoteException {
         if (holder == null || !holder.isStarted()) {
             throw new SmartFrogLivenessException("Servlet " +
                     name +
                     " is not running under" + getAbsolutePath());
         }
     }



which component is causing the trouble?

2. what do people think we should do here? Not do any liveness checks 
and rely on web page livenesspage tests? Tests you'd have to delay with 
a Sleep{ } component so they don't fail early either.

3. There is a slowstart component in the workflow, though I see that it 
is not declared in any .sf file, and hence won't have any tests/docs 
either. It explicitly delays passing down liveness tests until after a 
prespecified delay

start extends SlowStart {
   delay 5000;
   action JettyServer;
}


-- 
-----------------------
Hewlett-Packard Limited
Registered Office: Cain Road, Bracknell, Berks RG12 1HN
Registered No: 690597 England

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/