[ http://issues.apache.org/jira/browse/DIREVE-274?page=all ] Stefan Zoerner closed DIREVE-274: ---------------------------------
The two misbehaviors do not occur anymore in a current 0.9.4 snapshot build. It is allowed to create an entry as described in the issue text, and the server does not have the startup problems anymore afterwards. Therefore I close the issue. > Adding a group with invalid member DN corrupts the server > --------------------------------------------------------- > > Key: DIREVE-274 > URL: http://issues.apache.org/jira/browse/DIREVE-274 > Project: Directory Server > Type: Bug > Reporter: Stefan Zoerner > Assignee: Alex Karasulu > Priority: Blocker > Fix For: 0.9.3 > Attachments: addGroup.ldif > > If you add an entry like this to the server > dn: cn=myGroup,dc=apache,dc=org > cn: myGroup > objectclass: top > objectclass: groupOfUniqueNames > uniqueMember: satisfaction=guaranteed > e.g. with this command > $ ldapadd -D uid=admin,ou=system -w ***** -h magritte -p 10389 -f > addEntry.ldif > the clients gets an error: > ldap_add: Loop detected > ldap_add: additional info: failed to add entry cn=myGroup,dc=apache,dc=org: > javax.naming.NamingException: OID for name 'satisfaction' was not found > within the OID registry > stack trace omitted > I am not sure whether this is correct behavior, other servers let me do that > (i.e. add a DN value with unknown attribute names). But this is another story. > Problem 1: Actually, the entry is created: > $ ldapsearch -h magritte -p 10389 -b dc=apache,dc=org -s one "(objectClass=*)" > cn=myGroup,dc=apache,dc=org > cn=myGroup > objectclass=groupOfUniqueNames > objectclass=top > uniqueMember=satisfaction=guaranteed > $ > Therefore, the error above does not tell the truth ("failed to add entry"). > It is even possible to delete this entry without any errors. And is is highly > recommended to do this, because > Problem 2: (this is the major problem) > After stopping the server, you can't restart it because of this illegal > entry. Here is the stacktrace. > Exception in thread "main" javax.naming.NamingException: OID for name > 'satisfaction' was not found within the OID registry > at > org.apache.ldap.server.schema.GlobalOidRegistry.getOid(GlobalOidRegistry.java:188) > at > org.apache.ldap.server.schema.GlobalAttributeTypeRegistry.lookup(GlobalAttributeTypeRegistry.java:124) > at > org.apache.ldap.server.schema.ConcreteNameComponentNormalizer.lookup(ConcreteNameComponentNormalizer.java:85) > at > org.apache.ldap.server.schema.ConcreteNameComponentNormalizer.normalizeByName(ConcreteNameComponentNormalizer.java:59) > at > org.apache.ldap.common.name.antlrValueParser.value(antlrValueParser.java:128) > at > org.apache.ldap.common.name.antlrNameParser.attributeTypeAndValue(antlrNameParser.java:189) > at > org.apache.ldap.common.name.antlrNameParser.nameComponent(antlrNameParser.java:120) > at > org.apache.ldap.common.name.antlrNameParser.name(antlrNameParser.java:69) > at org.apache.ldap.common.name.DnParser.parse(DnParser.java:178) > at org.apache.ldap.common.name.DnParser.parse(DnParser.java:219) > at > org.apache.ldap.server.authz.GroupCache.addMembers(GroupCache.java:177) > at > org.apache.ldap.server.authz.GroupCache.initialize(GroupCache.java:111) > at org.apache.ldap.server.authz.GroupCache.<init>(GroupCache.java:79) > at > org.apache.ldap.server.authz.AuthorizationService.init(AuthorizationService.java:95) > at > org.apache.ldap.server.interceptor.InterceptorChain.register0(InterceptorChain.java:400) > at > org.apache.ldap.server.interceptor.InterceptorChain.register(InterceptorChain.java:359) > at > org.apache.ldap.server.interceptor.InterceptorChain.init(InterceptorChain.java:231) > at > org.apache.ldap.server.DefaultDirectoryService.initialize(DefaultDirectoryService.java:672) > at > org.apache.ldap.server.DefaultDirectoryService.startup(DefaultDirectoryService.java:204) > at > org.apache.ldap.server.jndi.AbstractContextFactory.getInitialContext(AbstractContextFactory.java:102) > at > javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667) > at > javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247) > at javax.naming.InitialContext.init(InitialContext.java:223) > at javax.naming.InitialContext.<init>(InitialContext.java:197) > at > javax.naming.directory.InitialDirContext.<init>(InitialDirContext.java:82) > at org.apache.ldap.server.ServerMain.main(ServerMain.java:76) -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
