List Info

Thread: Re: (ITS#5064) Issues with openldap 2.2 (Error 34 Invalid DN syntax )




Re: (ITS#5064) Issues with openldap 2.2 (Error 34 Invalid DN syntax )
country flaguser name
United States
2007-07-27 09:12:16
pbrinettecc.in2p3.fr wrote:

> Openldap is used as information provider in a GRID
middleware project
> (http://www.eu-egee.org/).
This information provider is known as BDII.
> 
> The information about grid nodes are published via
openldap.
> 
> Until now, the platform supported by the middleware is
Scientific Linux 3 (a
> RHEL 3 clone like CentOS). The openldap version
provided with this system is
> openldap 2.0.27.
> 
> We updated our systems with Scientific Linux 4.4 (RHEL
4.4) for new hardware
> support. The openldap version provided is now 2.2.13.
> 
> When I put the new service in production, I find some
issues with some
> attributes that disappears from the directory.
> 
> In our openldap schema, we have an attribute declared
like this:
> 
> attributetype ( 1.3.6.1.4.1.8005.100.2.2.7.1
>     NAME        'GlueVOViewLocalID'
>     DESC        'Local ID for this VO view'
>     EQUALITY    caseIgnoreIA5Match
>     SUBSTR      caseIgnoreIA5SubstringsMatch
>     SYNTAX      1.3.6.1.4.1.1466.115.121.1.26
>     SINGLE-VALUE)
> 
> 
> This attribute may containt string like these: 
> 
> GlueVOViewLocalID=dteam
>
GlueVOViewLocalID=/VO=swetest/GROUP=/swetest/ROLE=swadmin,
> 
> It seem that theses both sample strings are IA5
compliant.
> 
> When I ask the openldap server with this request, I’ve
got different results
> regarding the openldap version : 
> 
> ------------ Openldap 2.0.27 -----------------------
> 
> ldapsearch -x  -P3 -H
ldap://cclcgtopbdii01.in2p3.fr:2170 -b
>
"GlueVOViewLocalID=/VO=swetest/GROUP=/swetest/ROLE=swad
min,GlueCEUniqueID=grid001.fc.up.pt:2119/jobmanager-lcgsge-s
wetest,mds-vo-name=UPorto,mds-vo-name=local,o=grid"
> version: 2
> 
> #
> # filter: (objectclass=*)
> # requesting: ALL
> #
> 
> # /VO=swetest/GROUP=/swetest/ROLE=swadmin,
grid001.fc.up.pt:2119/jobmanager-l
>  cgsge-swetest, UPorto, local, grid
> dn:
GlueVOViewLocalID=/VO=swetest/GROUP=/swetest/ROLE=swadmin,Gl
ueCEUniqueID=g
> 
rid001.fc.up.pt:2119/jobmanager-lcgsge-swetest,mds-vo-name=U
Porto,mds-vo-name
>  =local,o=grid
> objectClass: GlueCETop
> objectClass: GlueVOView
> objectClass: GlueCEInfo
> objectClass: GlueCEState
> objectClass: GlueCEAccessControlBase
> objectClass: GlueCEPolicy
> objectClass: GlueKey
> objectClass: GlueSchemaVersion
> GlueVOViewLocalID:
/VO=swetest/GROUP=/swetest/ROLE=swadmin
> GlueCEAccessControlBaseRule:
VOMS:/VO=swetest/GROUP=/swetest/ROLE=swadmin
> GlueCEAccessControlBaseRule: DENY:dteam
> GlueCEAccessControlBaseRule: DENY:ops
> GlueCEAccessControlBaseRule: DENY:swetest
> GlueCEAccessControlBaseRule:
DENY:/VO=dteam/GROUP=/dteam/ROLE=lcgadmin
> GlueCEAccessControlBaseRule:
DENY:/VO=dteam/GROUP=/dteam/ROLE=production
> GlueCEAccessControlBaseRule:
DENY:/VO=ops/GROUP=/ops/ROLE=lcgadmin
> GlueCEStateRunningJobs: 0
> GlueCEStateWaitingJobs: 0
> GlueCEStateTotalJobs: 0
> GlueCEStateFreeJobSlots: 22
> GlueCEStateEstimatedResponseTime: 0
> GlueCEStateWorstResponseTime: 0
> GlueCEInfoDefaultSE: hades.up.pt
> GlueCEInfoApplicationDir: /vosoft/swetestsoft
> GlueCEInfoDataDir: unset
> GlueChunkKey:
GlueCEUniqueID=grid001.fc.up.pt:2119/jobmanager-lcgsge-swete
st
> GlueSchemaVersionMajor: 1
> GlueSchemaVersionMinor: 2
> 
> # search result
> search: 2
> result: 0 Success
> 
> # numResponses: 2
> # numEntries: 1
> 
>  
> 
> --------------------- openldap 2.2.13
------------------------
> 
> ldapsearch -P3 -x -H
ldap://cclcgtopbdii02.in2p3.fr:2170 -b
>
"GlueVOViewLocalID=/VO=swetest/GROUP=/swetest/ROLE=swad
min,GlueCEUniqueID=grid001.fc.up.pt:2119/jobmanager-lcgsge-s
wetest,mds-vo-name=UPorto,mds-vo-name=local,o=grid"
> version: 2
> 
> #
> # filter: (objectclass=*)
> # requesting: ALL
> #
> 
> # search result
> search: 2
> result: 34 Invalid DN syntax
> text: invalid DN
> 
> # numResponses: 1
> 
> --------------------------------------------------- 
> 
> 
> 
> Each time a dn contain an attribute of the following
form :
>  "attribute=a_string=another_string,..."
(eg:
> "/VO=swetest/GROUP=/swetest/ROLE=swadmin")
openldap 2.2 produce an error "could
> not parse entry" 
> 
> In fact, each time the attribute value contain more
that one equal ("=")
> character, openldap failed to handle the string, even
though this character is 
> included in the IA5 table.
> 
> Best regards.
> 
> 

1) both 2.0 and 2.2 are ancient.  OpenLDAP 2.3 is mature,
and 2.4 is 
about to exit beta stage.  Unless the problem is related to
a real 
software bug, and it persists either in HEAD/2.4 or in 2.3
code, this 
ITS will be closed.

2) were GlueCEUniqueID and mds-vo-name declared anywhere? 
There seems 
to be nothing wrong with your DN per se; in fact, dntest
yields

$ dntest 
'GlueVOViewLocalID=/VO=swetest/GROUP=/swetest/ROLE=swadmin,G
lueCEUniqueID=grid001.fc.up.pt:2119/jobmanager-lcgsge-swetes
t,mds-vo-name=UPorto,mds-vo-name=local,o=grid'

         ldap_rdn2str() = 
"GlueVOViewLocalID=/VO3Dswetest/GROUP3D/swetest/ROLE

3Dswadmin"
         ldap_rdn2str() = 
"GlueCEUniqueID=grid001.fc.up.pt:2119/jobmanager-lcgsge

-swetest"
         ldap_rdn2str() = "mds-vo-name=UPorto"
         ldap_rdn2str() = "mds-vo-name=local"
         ldap_rdn2str() = "o=grid"

ldap_dn2str(ldap_str2dn("GlueVOViewLocalID=/VO=swetest/
GROUP=/swetest/ROLE=swadm
in,GlueCEUniqueID=grid001.fc.up.pt:2119/jobmanager-lcgsge-sw
etest,mds-vo-name=UP
orto,mds-vo-name=local,o=grid"))
         = 
"GlueVOViewLocalID=/VO3Dswetest/GROUP3D/swetest/ROLE
3Dswadmin,GlueC
EUniqueID=grid001.fc.up.pt:2119/jobmanager-lcgsge-swetest,md
s-vo-name=UPorto,mds
-vo-name=local,o=grid"

ldap_dn2domain("GlueVOViewLocalID=/VO=swetest/GROUP=/sw
etest/ROLE=swadmin,GlueCE
UniqueID=grid001.fc.up.pt:2119/jobmanager-lcgsge-swetest,mds
-vo-name=UPorto,mds-
vo-name=local,o=grid")
         = ""

ldap_dn2ufn("GlueVOViewLocalID=/VO=swetest/GROUP=/swete
st/ROLE=swadmin,GlueCEUni
queID=grid001.fc.up.pt:2119/jobmanager-lcgsge-swetest,mds-vo
-name=UPorto,mds-vo-
name=local,o=grid")
         =
"/VO3Dswetest/GROUP3D/swetest/ROLE3Dswadmin, 
grid001.fc.up.pt:2119/
jobmanager-lcgsge-swetest, UPorto, local, grid"

ldap_dn2dcedn("GlueVOViewLocalID=/VO=swetest/GROUP=/swe
test/ROLE=swadmin,GlueCEU
niqueID=grid001.fc.up.pt:2119/jobmanager-lcgsge-swetest,mds-
vo-name=UPorto,mds-v
o-name=local,o=grid")
         = 
"/o=grid/mds-vo-name=local/mds-vo-name=UPorto/GlueCEUni
queID=grid001.f
c.up.pt:2119/jobmanager-lcgsge-swetest/GlueVOViewLocalID=/
VO=swetest/GROUP=
/swetest/ROLE=swadmin"

ldap_dcedn2dn("/o=grid/mds-vo-name=local/mds-vo-name=UP
orto/GlueCEUniqueID=grid0
01.fc.up.pt:2119/jobmanager-lcgsge-swetest/GlueVOViewLocalI
D=/VO=swetest/GRO
UP=/swetest/ROLE=swadmin")
         = 
"GlueVOViewLocalID=/VO3Dswetest/GROUP3D/swetest/ROLE
3Dswadmin,GlueC
EUniqueID=grid001.fc.up.pt:2119/jobmanager-lcgsge-swetest,md
s-vo-name=UPorto,mds
-vo-name=local,o=grid"

ldap_dn2ad_canonical("GlueVOViewLocalID=/VO=swetest/GRO
UP=/swetest/ROLE=swadmin,
GlueCEUniqueID=grid001.fc.up.pt:2119/jobmanager-lcgsge-swete
st,mds-vo-name=UPort
o,mds-vo-name=local,o=grid")
         = 
"grid/local/UPorto/grid001.fc.up.pt:2119/jobmanager-lc
gsge-swetest//
VO=swetest/GROUP=/swetest/ROLE=swadmin/"

ldap_explode_dn("GlueVOViewLocalID=/VO3Dswetest/GROUP
3D/swetest/ROLE3Dswadmin
,GlueCEUniqueID=grid001.fc.up.pt:2119/jobmanager-lcgsge-swet
est,mds-vo-name=UPor
to,mds-vo-name=local,o=grid"):
        
"GlueVOViewLocalID=/VO3Dswetest/GROUP3D/swetest/ROLE
3Dswadmin"
 
ldap_explode_rdn("GlueVOViewLocalID=/VO3Dswetest/GROUP
3D/swetest/ROLE
3Dswadmin")
 
'GlueVOViewLocalID=/VO3Dswetest/GROUP3D/swetest/ROLE3Dswa
dmin
'
 
ldap_explode_rdn("GlueVOViewLocalID=/VO3Dswetest/GROUP
3D/swetest/ROLE
3Dswadmin") (no types)
                        
"/VO3Dswetest/GROUP3D/swetest/ROLE3Dswadmin"
        
"GlueCEUniqueID=grid001.fc.up.pt:2119/jobmanager-lcgsge
-swetest"
 
ldap_explode_rdn("GlueCEUniqueID=grid001.fc.up.pt:2119/
jobmanager-lcgsge
-swetest")
 
'GlueCEUniqueID=grid001.fc.up.pt:2119/jobmanager-lcgsge-swet
est'
 
ldap_explode_rdn("GlueCEUniqueID=grid001.fc.up.pt:2119/
jobmanager-lcgsge
-swetest") (no types)
                        
"grid001.fc.up.pt:2119/jobmanager-lcgsge-swetest"
         "mds-vo-name=UPorto"
         ldap_explode_rdn("mds-vo-name=UPorto")
                 'mds-vo-name=UPorto'
         ldap_explode_rdn("mds-vo-name=UPorto")
(no types)
                         "UPorto"
         "mds-vo-name=local"
         ldap_explode_rdn("mds-vo-name=local")
                 'mds-vo-name=local'
         ldap_explode_rdn("mds-vo-name=local") (no
types)
                         "local"
         "o=grid"
         ldap_explode_rdn("o=grid")
                 'o=grid'
         ldap_explode_rdn("o=grid") (no types)
                         "grid"

ldap_explode_dn("GlueVOViewLocalID=/VO3Dswetest/GROUP
3D/swetest/ROLE3Dswadmin
,GlueCEUniqueID=grid001.fc.up.pt:2119/jobmanager-lcgsge-swet
est,mds-vo-name=UPor
to,mds-vo-name=local,o=grid") (no types):
        
"/VO3Dswetest/GROUP3D/swetest/ROLE3Dswadmin"
        
"grid001.fc.up.pt:2119/jobmanager-lcgsge-swetest"
         "UPorto"
         "local"
         "grid"

"GlueVOViewLocalID=/VO3Dswetest/GROUP3D/swetest/ROLE
3Dswadmin,GlueCEUniqueID=
grid001.fc.up.pt:2119/jobmanager-lcgsge-swetest,mds-vo-name=
UPorto,mds-vo-name=l
ocal,o=grid"
          == 
"GlueVOViewLocalID=/VO3Dswetest/GROUP3D/swetest/ROLE
3Dswadmin,Glu
eCEUniqueID=grid001.fc.up.pt:2119/jobmanager-lcgsge-swetest,
mds-vo-name=UPorto,m
ds-vo-name=local,o=grid" ? yes



But apparently some attribute declarations are missing; in
fact, slapdn 
(after declaring GlueVOViewLocalID as indicated above)
yields

slapdn -f testrun/slapd.1.conf 
'GlueVOViewLocalID=/VO=swetest/GROUP=/swetest/ROLE=swadmin,G
lueCEUniqueID=grid001.fc.up.pt:2119/jobmanager-lcgsge-swetes
t,mds-vo-name=UPorto,mds-vo-name=local,o=grid' 

DN: 
<GlueVOViewLocalID=/VO=swetest/GROUP=/swetest/ROLE=swadmi
n,GlueCEUniqueID=grid001.fc.up.pt:2119/jobmanager-lcgsge-swe
test,mds-vo-name=UPorto,mds-vo-name=local,o=grid> 
check failed 21 (Invalid syntax)

where the failure refers exactly to the fact that
GlueCEUniqueID was not 
declared.

p.

PS: don't look for those tools in ancient software; they've
been 
introduced only in recent times (dntest: October 2001;
slapdn: March 2004).



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
Email:   pierangelo.masaratisys-net.it
---------------------------------------




[1]

about | contact  Other archives ( Real Estate discussion Medical topics )