On Oct 06, 2009 at 11:52, Andrei Pelinescu-Onciul <andrei(a)iptel.org> wrote:
On Oct 06, 2009 at 11:03, Henning Westerholt
<henning.westerholt(a)1und1.de> wrote:
> Hi all,
>
> i get now a segfault in cfg_update[_local] for kamailio modules during my
> tests. It doesn't matter if the server start successfully, it even crashs when
> the server stops the start during some cfg file problems.
>
> I remember that Miklos changes in the last week something in the cfg
> framework, perhaps its related to this?
Should be fixed now (at least the config changes are still seen on exit
by all the processes and mi_fifo does not crash).
It's my patch so I'm responsible :-)
It is related to it. The 0 pointer crash is intentional and it
should signal that someone uses cfg_update() on a process not registered
for config framework use.
Unfortunately my patch added a cfg_update() on process exit (to make
sure they have the latest update values of the debug, memlog and memdebug)
and I failed to account for kamailio modules that fork processes.
So I'll either disable the 0-crash (which has the disadvantage that in
the future one might try to use the cfg. framework without proper
intialization and it would seem to work at least for some of the vars =>
difficult debugging), remove the cfg_update() on exit (no memlog, debug
update in some cases) or come up with something else.
Another alternative would be to update all the k modules, but I want to
avoid it since they don't use the cfg framework yet and it would
introduce a lot of extra testing before a release.
In the end, I just added a special update call, that is used only on
process exit, before dumping memory debugging info.
Andrei