Howard Chu wrote:
> ando(a)sys-net.it wrote:
>> ando(a)OpenLDAP.org wrote:
>>
>>> Log Message:
>>> open database using the real structure (partial fix to ITS#5724)
>>
>> We need a virtual database to inherit controls from the real database.
>> Sharing the array of known controls could be a solution, but it wouldn't
>> allow the virtual database to have specific controls, e.g. registered by
>> an overlay. A solution would be to let the real database know it's
>> related to virtual ones, so that modifications to the real database via
>> back-config can be propagated to the virtual ones. This, of course,
>> poses the problem that if a virtual database is deleted, any reference
>> to it must be removed from the list of related databases. I wonder if
>> all of this is worth the effort of exposing real controls by the virtual
>> database.
>
> Since a single relay database may be configured to multiplex to many
> other databases, and they may not all support the same set of controls,
> this seems to be an exercise in futility. I guess it may be OK to just
> advertise a union of all the real database controls, and perform an
> extra restriction check before handing off processing.
Sharing the pointer to the supported controls would allow to use the
actual set. Something along the line
struct BackendDB {
char be_ctrlsbuf[SLAP_MAX_CIDS + 1];
char *be_ctrls;
};
All backends would have be_ctrls = be_ctrlsbuf, but back-relay would set
it to NULL, and temporarily set it to the relayed database's be_ctrlsbuf
for the duration of an operation. Modules wouldn't be able to register
new controls because the pointer is null otherwise.
p.
Ing. Pierangelo Masarati
OpenLDAP Core Team
SysNet s.r.l.
via Dossi, 8 - 27100 Pavia - ITALIA
http://www.sys-net.it
-----------------------------------
Office: +39 02 23998309
Mobile: +39 333 4963172
Fax: +39 0382 476497
Email: ando(a)sys-net.it
-----------------------------------
ando(a)sys-net.it wrote:
> ando(a)OpenLDAP.org wrote:
>
>> Log Message:
>> open database using the real structure (partial fix to ITS#5724)
>
> We need a virtual database to inherit controls from the real database.
> Sharing the array of known controls could be a solution, but it wouldn't
> allow the virtual database to have specific controls, e.g. registered by
> an overlay. A solution would be to let the real database know it's
> related to virtual ones, so that modifications to the real database via
> back-config can be propagated to the virtual ones. This, of course,
> poses the problem that if a virtual database is deleted, any reference
> to it must be removed from the list of related databases. I wonder if
> all of this is worth the effort of exposing real controls by the virtual
> database.
Since a single relay database may be configured to multiplex to many other
databases, and they may not all support the same set of controls, this seems
to be an exercise in futility. I guess it may be OK to just advertise a union
of all the real database controls, and perform an extra restriction check
before handing off processing.
--
-- Howard Chu
CTO, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc/
Chief Architect, OpenLDAP http://www.openldap.org/project/
Full_Name: Rein Tollevik
Version: CVS head
OS: linux, solaris
URL:
Submission from: (NULL) (84.215.36.97)
Submitted by: rein
The first fix to ITS#5454 in revision 1.392 appear to be wrong under curtain
situations, runqueue manipulation must be done after a paused syncrepl
connection is rescheduled. Ref:
http://www.openldap.org/lists/openldap-devel/200810/msg00014.html
It looks as if switching from trylock to lock at the start of do_syncrepl()
should be the only fix for ITS#5454, and that the optimization this revision
introduces should be reverted. I'll commit that shortly.
Rein Tollevik
Basefarm AS
ando(a)OpenLDAP.org wrote:
> Log Message:
> open database using the real structure (partial fix to ITS#5724)
We need a virtual database to inherit controls from the real database.
Sharing the array of known controls could be a solution, but it wouldn't
allow the virtual database to have specific controls, e.g. registered by
an overlay. A solution would be to let the real database know it's
related to virtual ones, so that modifications to the real database via
back-config can be propagated to the virtual ones. This, of course,
poses the problem that if a virtual database is deleted, any reference
to it must be removed from the list of related databases. I wonder if
all of this is worth the effort of exposing real controls by the virtual
database.
p.
Ing. Pierangelo Masarati
OpenLDAP Core Team
SysNet s.r.l.
via Dossi, 8 - 27100 Pavia - ITALIA
http://www.sys-net.it
-----------------------------------
Office: +39 02 23998309
Mobile: +39 333 4963172
Fax: +39 0382 476497
Email: ando(a)sys-net.it
-----------------------------------
I have a fix for this issue when the relay database is configured
*after* the relayed one. I'll commit it in a moment. However, this fix
does not cure your case, where the virtual database needs to appear
*before* the real one, and also does not cure similar issues related,
for example, to run-time configuring modules that register controls on a
real database (e.g. an overlay), which would not be echoed by the
virtual database.
p.
Ing. Pierangelo Masarati
OpenLDAP Core Team
SysNet s.r.l.
via Dossi, 8 - 27100 Pavia - ITALIA
http://www.sys-net.it
-----------------------------------
Office: +39 02 23998309
Mobile: +39 333 4963172
Fax: +39 0382 476497
Email: ando(a)sys-net.it
-----------------------------------
Full_Name: Rein Tollevik
Version: CVS head
OS: Linux 2.6
URL:
Submission from: (NULL) (84.215.36.97)
Submitted by: rein
connection_client_setup() enables the connection for events twice, causing race
conditions that can create deadlock situations. Ref:
http://www.openldap.org/lists/openldap-devel/200810/msg00014.html
A fix that removes the unnecessary call to slapd_set_read() will be committed
soon.
Rein Tollevik
Basefarm AS