[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: why not support refresh config file?

When to release OpenLDAP 2.3(release version,not beta)?
if you are not sure about the exact time,you can telll me approximate time.
----- Original Message ----- 
From: "Howard Chu" <hyc@symas.com>
To: "???" <luozhijian@huawei.com>
Cc: <openldap-software@OpenLDAP.org>
Sent: Wednesday, March 23, 2005 6:21 PM
Subject: Re: why not support refresh config file?

> ??? wrote:
> > When I change loglevel in slapd.conf,I exec "kill -HUP slapd's 
> > pid",then slapd exit.
> That is what the HUP signal is used for in slapd. It can optionally be 
> configured to wait for active connections to complete before 
> terminating. By the way, in general, it is a bad idea to send a signal 
> to a process if you haven't read the documentation that tells you what 
> signals are supported and what their effects are.
> > Did openldap support refresh config file?
> Apparently not. Although you can certainly gain this effect if you use a 
> parent manager process that automatically respawns slapd if it exits due 
> to a SIGHUP.
> > I watch the code and found that openldap don't support it.
> > I think it is easy to support it:
> > when slapd receive HUP sig,it call function "read_config" to reread 
> > config,am I right?
> That is the function that loads the configuration at startup time, yes, 
> but it is far more complicated to refresh than just rereading the config 
> file. If any configuration items have been removed since the last time 
> the config file was read, all the associated data structures must be 
> located and safely deleted from memory. This is nearly impossible in 
> many cases. If we simply destroy all data structures and recreate them 
> all, that is still a lot of work and it is easier just to terminate the 
> process and start a new one. If you do not wish to terminate the 
> process, because there are active connections, it's an even worse 
> problem because those connections may be actively using the config data 
> that you are destroying and recreating. So in short, refreshing the 
> entire config file without just restarting the server is a really bad 
> idea, and next to impossible to do correctly.
> Eventually OpenLDAP 2.3 will be available with full LDAP access to the 
> slapd configuration, in which case you can just issue an LDAPmodify 
> request to change little things like loglevel and such. That will 
> eliminate any need for a "refresh" feature.
> -- 
>   -- Howard Chu
>   Chief Architect, Symas Corp.       Director, Highland Sun
>   http://www.symas.com               http://highlandsun.com/hyc
>   Symas: Premier OpenSource Development and Support