[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
RE: entries exist in ldap (as glue entries), but are missing from the tree (v2.4.16)
Thanks Howard. How do I send the manageDSAit control using the C functions?
This looks like it is a workaround to the underlying problem, where some nodes that are created as regular (non-glue) nodes become glue nodes. According to the ldap administration guide (http://www.openldap.org/doc/admin24/referrals.html#The%20ManageDsaIT%20Control) it should not be used when managing regular entries, which these are supposed to be.
Why do I get these "glue" items anyway?
-----Original Message-----
From: Howard Chu [mailto:hyc@symas.com]
Sent: Thursday, July 30, 2009 1:18 PM
To: Robert Hanson
Cc: openldap-technical@openldap.org
Subject: Re: entries exist in ldap (as glue entries), but are missing from the tree (v2.4.16)
Robert Hanson wrote:
> What I need is to have the "glue" items returned as part of the search.
> It looks to me like I can get nodes that are "glue" nodes to be part
> of the results by commenting out these lines:
>
> in src\servers\slapd\back-bdb\search.c, lilnes 908-91
>
> if ( !manageDSAit && is_entry_glue( e )) {
>
> goto loop_continue;
>
> }
>
> If I comment out these lines, then I get the results I'm looking for.
If you send the manageDSAit control, you'll also get the results. Mucking with
the code is not a good idea.
> Are there any other implications to the "glue" nodes? It looks like I'm
> able to edit and delete these nodes as well. But there is code in
> delete.c, modify.c, modrdn.c that worry about glue nodes.
>
> Another option would be to redefine the is_entry_glue macro to always
> return false. Is that a better approach?
No.
> ------------------------------------------------------------------------
>
> *From:* Robert Hanson
> *Sent:* Thursday, July 30, 2009 11:08 AM
> *To:* 'openldap-technical@openldap.org'
> *Subject:* entries exist in ldap (as glue entries), but are missing from
> the tree (v2.4.16)
>
> Is this bug ITS#4626?
Not likely since that was fixed 2-3 years ago...
> Or is there a workaround?
>
> ====
>
> Using a build of 2.4.16 on RedHat linux; in a multi-master environment
> with 2 nodes. On both nodes, I have a tree that has a node "ou=Company,
> o=MyCompanyName". Under that are several nodes that are "glue" nodes.
> Following those is a actual data node.
>
> Slapd 2.4.16, built from source, running on redhat linux)
>
> I have seen this occur several times on various test systems with
> similar configurations.
>
> The data in these nodes is inserted, in the proper order, (parent then
> children) using ldap client calls (ldap_add_s). Later, when I go to look
> at the output of slapcat, I see that some nodes are replaced with "glue"
> nodes.
>
> Questions:
>
> 1) Why are these glue nodes created? Is there a known bug that will
> cause existing nodes to be deleted without the children being deleted?
No.
> Is this an issue in replication? (where syncrepl needs to create a node
> where the parent does not exist). Is that why the glue nodes are created
> later?
Possibly.
> 2) How can I change the "glue" to some other class? Can that be done
> programmatically?
If those entries belong there, syncrepl will automatically replace them with
their correct values when those entries next get replicated. So performing a
modify on one of the entries on the master should cause it to replicate across.
>
> 3)
>
> ========
>
> This is a dump of slapcat (with unnecessary nodes removed)
>
> dn: o=MyCompanyName
>
> objectClass: organization
>
> o: MyCompanyName
>
> structuralObjectClass: organization
>
> entryUUID: feb5b352-2eb7-102d-8c1f-f1b463e2c47e
>
> creatorsName: cn=MyDivision,ou=People,o=MyCompanyName
>
> createTimestamp: 20081015034921Z
>
> entryCSN: 20081015034921.418938Z#000000#000#000000
>
> modifiersName: cn=MyDivision,ou=People,o=MyCompanyName
>
> modifyTimestamp: 20081015034921Z
>
> contextCSN: 20090728202448.877262Z#000000#001#000000
>
> contextCSN: 20090728202123.336320Z#000000#002#000000
>
> dn: ou=Company,o=MyCompanyName
>
> ou: Company
>
> description: 3.0.0
>
> objectClass: organizationalUnit
>
> structuralObjectClass: organizationalUnit
>
> entryUUID: feb7a41e-2eb7-102d-8c28-f1b463e2c47e
>
> creatorsName: cn=MyDivision,ou=People,o=MyCompanyName
>
> createTimestamp: 20081015034921Z
>
> entryCSN: 20081015034921.432024Z#000000#000#000000
>
> modifiersName: cn=MyDivision,ou=People,o=MyCompanyName
>
> modifyTimestamp: 20081015034921Z
>
> dn: lcc=Call Center 1,ou=Company,o=MyCompanyName
>
> entryUUID: 0136f8e0-0ff7-102e-8da5-59a5102cad9a
>
> creatorsName: cn=Client,ou=People,o=MyCompanyName
>
> createTimestamp: 20090728191715Z
>
> objectClass: top
>
> objectClass: glue
>
> structuralObjectClass: glue
>
> entryCSN: 20090728202123.336320Z#000000#002#000000
>
> modifiersName: cn=MyDivision,ou=People,o=MyCompanyName
>
> modifyTimestamp: 20090728202123Z
>
> dn: ou=Servers,lcc=Call Center 1,ou=Company,o=MyCompanyName
>
> entryUUID: 014e7632-0ff7-102e-8db3-59a5102cad9a
>
> creatorsName: cn=Client,ou=People,o=MyCompanyName
>
> createTimestamp: 20090728191715Z
>
> objectClass: top
>
> objectClass: glue
>
> structuralObjectClass: glue
>
> entryCSN: 20090728202123.336320Z#000000#002#000000
>
> modifiersName: cn=MyDivision,ou=People,o=MyCompanyName
>
> modifyTimestamp: 20090728202123Z
>
> dn: ou=Application Data,lcc=Call Center 1,ou=Company,o=MyCompanyName
>
> entryUUID: e5a152de-0fff-102e-923c-cf0948a0ceb1
>
> creatorsName: cn=MyDivision,ou=People,o=MyCompanyName
>
> createTimestamp: 20090728202054Z
>
> objectClass: top
>
> objectClass: glue
>
> structuralObjectClass: glue
>
> entryCSN: 20090728202123.336320Z#000000#002#000000
>
> modifiersName: cn=MyDivision,ou=People,o=MyCompanyName
>
> modifyTimestamp: 20090728202123Z
>
> dn: appName=Configurations,ou=Application Data,lcc=Call Center
> 1,ou=Company,o=
>
> MyCompanyName
>
> entryUUID: e5a299f0-0fff-102e-923d-cf0948a0ceb1
>
> creatorsName: cn=MyDivision,ou=People,o=MyCompanyName
>
> createTimestamp: 20090728202054Z
>
> structuralObjectClass: applicationUnit
>
> appName: Configurations
>
> objectClass: applicationUnit
>
> entryCSN: 20090728202143.649526Z#000000#001#000000
>
> modifiersName: cn=Client,ou=People,o=MyCompanyName
>
> modifyTimestamp: 20090728202143Z
>
--
-- Howard Chu
CTO, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc/
Chief Architect, OpenLDAP http://www.openldap.org/project/