[PATCH] Kannel bearerbox graceful restart support (via SIGHUP or HTTP admin command)

Stipe Tolj <[email protected]>
Newsgroups gmane.comp.mobile.kannel.devel
Organization Kannel Software Foundation (KSF)
Message-ID <[email protected]>
Hi list,

ok, this has been long awaited I guess: graceful restarting of Kannel 
bearerbox.

At the moment we can shutdown a specific SMSC and restart it again. But 
we can't effectively move SMSC config parts in and out while keeping the 
bearerbox running for those SMSC connections that should be unchanged 
and supposed to keep running.

This patchset allows this, by making use of a "checksum" for each 'group 
= smsc' context. So we can "detect" if there are groups that haven't 
changed, and hence will be kept running. Other groups are 
counter-compared based on their 'smsc-id' value.

I.e. if the "newly" read-in config has a smsc-id = A and this smsc-id = 
A also exists in the "running" config, AND they do not match, hence the 
checksum doesn't match, then we assume there is a "change" for smsc-id = 
A. This results in the running smsc group to be shutdown and destroyed 
and the new smsc group to be started.

Similar if there is a smsc-id = B in the running configuration, but is 
not present anymore in the new one, then we shutdown and destroy it. For 
the opposite side, smsc-id = C is in the new config, but not in the 
running config, we add it to the running config.

I have tested this fairly, and it works pretty nice. BTW, it fixes even 
a couple of memory leaks that we haven't "detected" yet, due that we are 
not re-init'ing the corresponding data structure. There is STILL a 
memory leak in the cfg_read() when a config is broken and tried to be 
gracefully restarted. I need to work on this.

Please test, I would love to see this going into SVN trunk ASAP. You can 
find the patchset at URL:

http://www.kannel.org/~tolj/patchsets/graceful/gateway-graceful-restart.diff

After finalizing the current open patches, I would like to endorse 
Kannel 1.5.1 devel, giving it a 2-3 month time to settle for bug fixes 
and then push the release button for Kannel 1.6.0 stable.

Comments always welcome.
Stipe

-- 
-------------------------------------------------------------------
Kölner Landstrasse 419
40589 DÃŒsseldorf, NRW, Germany

tolj.org system architecture      Kannel Software Foundation (KSF)
http://www.tolj.org/              http://www.kannel.org/

mailto:st_{at}_tolj.org           mailto:stolj_{at}_kannel.org
-------------------------------------------------------------------
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.