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

Re: (ITS#7182) back-ldap monitoring improvements

Hash: SHA1

On 04/04/2012 03:26 PM, hyc@symas.com wrote:
> See ITS#7225.
> Even after the SEGV is patched, the pcache slapd fails to start in test020
> because the monitor calls are unable to register their entries. Something is
> wrong in your initialization code.

When the ldap database is opened before the monitor, all registration is
deferred and fake OK status is returned. Then, while the subsystems are
initializing, the new subsystems (that have to derive their DN from
something) do not yet have access to the DN of the database monitor
entry (even though it may already exist). Only after all subsystems have
been opened does the deferred database registration proceed, but by then
there is no way to notify anyone that the DN has been published. Thus we
are left with a chicken-and-egg problem.

One way out of this I currently see is providing a register_database
callback that is called immediately when no deferring takes place or
immediately after the entry in limbo_queue has been processed. This way
once the DN information is ready, the subsystem registration can start

There is an alternative, adding a defferable monitor_subsys registration
(and alimbo entry type) that, if monitor is not opened, takes place in
the second phase (roughly at the same time as above).

There are aspects in which either one is cleaner, whereas the other one
can backfire/clutter the API and vice versa for others. I have not
decided yet.

> Also, you're using monitor_entry_stub() directly in the back-ldap code. It is
> forbidden for modules to directly reference each other's symbols. If you need
> this function, add it to monitor_extra_t first and call it through there.

Thank you, I will. And sorry for breaking master with this ITS.

- --
Ondrej Kuznik
Version: GnuPG v1.4.12 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/


This e-mail and any attachment is for authorised use by the intended recipient(s) only. It may contain proprietary material, confidential information and/or be subject to legal privilege. It should not be copied, disclosed to, retained or used by, any other party. If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender. Thank you for understanding.