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

(ITS#7910) pcache and translucent stacking



Full_Name: Nikos Voutsinas
Version: 2.4.39
OS: Debian
URL: http://users.uoa.gr/~nvoutsin/OpenLdap_ITS/OpenLdap_2.4.39_Replication_Appliance.ova  http://users.uoa.gr/~nvoutsin/OpenLdap_ITS/OpenLdap_2.4.39_Replication_Scripts.zip 
Submission from: (NULL) (88.197.8.181)


The test case is about an openldap server that combines the back_ldap backend
with the translucent and the pcache overlay to replicate a remote openldap
server. 


In this scenario we assume that the local server contains a bare minimum
cn=config (default schemas, frontend, config databases). As it is shown below
when the pcache overlay config is loaded, openldap returns the error: "Object
class violation (65)"


[]> $ ldapadd -h localhost -p 2389 -D cn=config -x -wsecret
dn: cn=module{0},cn=config
changetype: modify
add: olcModuleLoad
olcModuleLoad: {0}back_mdb
olcModuleLoad: {1}translucent
olcModuleLoad: {2}back_ldap
olcModuleLoad: {3}pcache
-

dn: olcBackend={0}mdb,cn=config
objectClass: olcConfig
objectClass: olcBackendConfig
olcBackend: {0}mdb

dn: olcDatabase={1}mdb,cn=config
objectClass: olcConfig
objectClass: olcDatabaseConfig
objectClass: olcMdbConfig
olcDatabase: {1}mdb
olcDbDirectory: /var/lib/ldap/dc=foo,dc=com
olcRootDN: cn=admin,dc=foo,dc=com
olcRootPW: {SSHA}Odceu7udWoI3pnBG1KqEDVSV36v+HEtI
olcSuffix: dc=foo,dc=com
olcDbIndex: objectClass eq

dn: olcOverlay={0}translucent,olcDatabase={1}mdb,cn=config
objectClass: olcConfig
objectClass: olcOverlayConfig
objectClass: olcTranslucentConfig
olcOverlay: {0}translucent
olcTranslucentNoGlue: TRUE
olcTranslucentStrict: TRUE
olcTranslucentRemote: uid
olcTranslucentLocal: description

dn: olcDatabase={0}ldap,olcOverlay={0}translucent,olcDatabase={1}mdb,cn=config
objectClass: olcConfig
objectClass: olcDatabaseConfig
objectClass: olcLDAPConfig
objectClass: olcTranslucentDatabase
olcDatabase: {0}ldap
olcDbRebindAsUser: TRUE
olcDbURI: ldap://192.168.1.1:389
olcDbACLBind: bindmethod=simple binddn="cn=admin,dc=foo,dc=com"
credentials="secret"

dn: olcOverlay={0}pcache,olcDatabase={0}ldap,olcOverlay={0}translucent,olcDatabase={1}mdb,cn=config
objectClass: olcConfig
objectClass: olcOverlayConfig
objectClass: olcPcacheConfig
olcOverlay: {0}pcache
olcPcache: mdb 1000 1 50 100
olcPcacheAttrset: 0 + *
olcPcacheTemplate: (objectClass=) 0 3600
olcPcacheTemplate: (uid=) 0 3600

dn: olcDatabase={0}mdb,olcOverlay={0}pcache,olcDatabase={0}ldap,olcOverlay={0}translucent,olcDatabase={1}mdb,cn=config
objectClass: olcConfig
objectClass: olcDatabseConfig
objectClass: olcMdbConfig
objectClass: olcPcacheDatabase
objectClass: olcDatabaseConfig
olcDatabase: {0}mdb
olcDbDirectory: /var/lib/ldap/dc=foo,dc=com.pcache


modifying entry "cn=module{0},cn=config"

adding new entry "olcBackend={0}mdb,cn=config"

adding new entry "olcDatabase={1}mdb,cn=config"

adding new entry "olcOverlay={0}translucent,olcDatabase={1}mdb,cn=config"

adding new entry "olcDatabase={0}ldap,olcOverlay={0}translucent,olcDatabase={1}mdb,cn=config"

adding new entry "olcOverlay={0}pcache,olcDatabase={0}ldap,olcOverlay={0}translucent,olcDatabase={1}mdb,cn=config"
ldap_add: Object class violation (65)

[]> $

At the same time the debug output shows the following:

53d7a2f7 => access_allowed: add access granted by manage(=mwrscxd)
53d7a2f7 conn=1000 op=6: config_add_internal:
DN="olcOverlay={0}pcache,olcDatabase={0}ldap,olcOverlay={0}translucent,olcDatabase={1}mdb,cn=config"
no structural objectClass add function
53d7a2f7 send_ldap_result: conn=1000 op=6 p=3
53d7a2f7 send_ldap_result: err=65 matched="" text=""



Besides, one closed ITS (#7587) and two non answered questions in openldap
mailing list 

http://www.openldap.org/lists/openldap-software/200803/msg00004.html
http://www.openldap.org/lists/openldap-technical/201303/msg00240.html

I couldn't find any info regarding the stacking of translucent with pcache, or
anything saying that this does not work, thus I report this as a bug.