Luke Kanies wrote:
> On Jul 24, 2009, at 7:02 AM, Mark Plaksin wrote:
> 
>> Luke Kanies <[email protected]> writes:
>>
>>> Hi all,
>>>
>>> I'm trying to figure out which signal should do what with ticket
>>> #2239, or if we should even keep the existing behaviour.
>>>
>>> If you send a signal to puppetd when it's in the middle of a
>>> transaction, what behaviour do you expect?
>> There's a similar question about puppetmasterd.  As-is it *appears*  
>> that
>> puppetmasterd will die in the middle of a transaction.  For example,  
>> if
>> our init script sends SIGTERM to a puppetmasterd running behind  
>> Mongrel
>> then in-flight transactions seem to die.  I say "seem" because I'm not
>> positive :)
>>
>> When we were using Mongrel our init script's 'restart' function  
>> stopped
>> and started our puppetmasterds one at a time.  In theory that meant  
>> that
>> no client would notice but in practice they always did.
>>
>> It's possible that mod_proxy was actually to blame but I figured I'd
>> throw this out to you experts :)
> 
> This is a harder problem, I think, because it means tracking whether  
> we're mid-connection, not accepting new connections when we get a  
> signal, and then exiting when our connection list is empty.
> 
> This all has to be thread-safe, too, just to make it more fun.
> 
> I don't know how other systems solve this problem, but if anyone does,  
> I'd love to hear about it.
> 

I suggest that TERM, INT, and KILL all kill with prejudice.  If someone needs a 
'graceful' shutdown, that USR1 be used for that.  You could get more complex, 
e.g.:

TERM, INT, KILL mean 'exit now'
USR1 means 'exit after current transaction' (the current behavior for INT and 
TERM)
USR2 means 'exit after current resource, and don't do any further work in the 
current transaction, even if it leaves state somewhat indeterminate' (this 
would 
be new behavior).

or some such.

Steven Jenkins
End Point Corporation



--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" 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/puppet-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to