/ Zope / Apsis / Pound Mailing List / Archive / 2004 / 2004-12 / reconfiguration without restart

[ << ] [ >> ]

[ Max connections, dos detection like ... ] [ holidays / Robert Segall <roseg(at)apsis.ch> ]

reconfiguration without restart
Dennis Allison <allison(at)sumeru.stanford.EDU>
2004-12-20 22:20:50 [ FULL ]
Robert,
It would be nice if we could change the configuration without stopping
Pound.  Any chance this could become a feature?
	-d

Re: reconfiguration without restart
Michal <michalg(at)gmail.com>
2004-12-20 22:50:30 [ FULL ]
On Mon, 20 Dec 2004 13:20:50 -0800 (PST), Dennis Allison
<allison(at)sumeru.stanford.edu> wrote:[...]

The only time I can see this being a concern is when you don't want to
interrupt existing connections -- for example, if you are serving
large files which take a long time to transfer. In that case, maybe
periodically inspecting netstat's output could reveal a window of
opportunity during which to restart pound (which should be very fast
anyways, provided your pound.cfg file is without errors :) ).

Anyway, I think a "natural" way to do this is to have the running
process receive a signal (HUP?) and re-read its configuration. But,
that might break the security model since pound may run as a user
without the privileges to reading the pound.cfg file. Perhaps this
could be implemented but just log an error if the effective uid/gid
cannot re-read the cfg file.

-Michal

Re: reconfiguration without restart
Dennis Allison <allison(at)sumeru.stanford.EDU>
2004-12-20 23:33:49 [ FULL ]
We are growing and need to change the Pound configuration (e.g. adding
domains) on a daily basis. We have active users 24x7 and would prefer not
to distrupt their activity by having Pound go away.  Currently we wait for
a moment of opportunity and then restart pound, but finding a lull is
difficult, particularly when there are many users.   This request was
prompted by a problem we had this morning when one of our development
folks restarted Pound during a lull that was not a lull and ruffled some
content developers feathers.


On Mon, 20 Dec 2004, Michal wrote:
[...]

Re: reconfiguration without restart
Robert Segall <roseg(at)apsis.ch>
2004-12-21 19:27:09 [ FULL ]
On Monday 20 December 2004 23.33, Dennis Allison wrote:[...]

The idea is nice, but it raises a few questions:

- what happens if Pound runs setuid and/or chroot and has no access to the 
config file?

- signals and threads are a nasty mix: you never really know which thread will 
get the signal - and how it happens is architecture dependent. We need some 
other mechanism for a refresh (one of the service threads checking on config 
file modification time? How to deal with file locking issues?)

- if the new config file misses or changes the definition for some 
UrlGroup/BackEnd what should be done with the existing sessions (keep 
existing sessions until they expire, but create new sessions based on new 
config? Perhaps fail existing sessions?)

I would appreciate additional suggestions and ideas.[...]

Re: reconfiguration without restart
Michal <michalg(at)gmail.com>
2004-12-21 19:40:49 [ FULL ]
On Tue, 21 Dec 2004 19:27:09 +0100, Robert Segall <roseg(at)apsis.ch>
wrote:
[...]

Most likely the answer is "no" for reasons I have not yet thought
about, but can Pound listen on a seperate TCP port that responds to
HTTP requests by furnishing an administrative web interface to
configure its state? Naturally, a firewall would be needed to block
access to said administrative port #, and possibly a hardcoded rule in
Pound to allow only 127.0.0.1 access.

-Michal

Re: reconfiguration without restart
Robert Segall <roseg(at)apsis.ch>
2004-12-22 20:53:39 [ FULL ]
On Tuesday 21 December 2004 19.40, Michal wrote:[...]

Not really TCP - that is hardly secure. More likely Unix socket or SysV-style 
shared memory (though probably the first due to portability issues). This 
still doesn't solve the rootjail problem - how do you open the config file 
and the socket if you can't access them? What about file locking?

At a more basic level - is it worth doing? Creating such a protocol means 
additional complexity (you have to have a listener, a protocol parser, and an 
additional program to talk to it, or some code to generate HTTP in Pound 
itself).[...]

MailBoxer