[ http://issues.apache.org/jira/browse/DIRSERVER-216?page=all ] Emmanuel Lecharny closed DIRSERVER-216: ---------------------------------------
We don't use anymore the antlr grammar to parse DNs > Race condition in DNParser > -------------------------- > > Key: DIRSERVER-216 > URL: http://issues.apache.org/jira/browse/DIRSERVER-216 > Project: Directory ApacheDS > Type: Bug > Components: ldap > Versions: pre-1.0 > Reporter: Emmanuel Lecharny > Priority: Blocker > Fix For: pre-1.0 > > I got an exception while parsing a DN under heavy load. It seems that > theDNParser is not thread-safe > Here are the traces (some logs have been added) : > 2354> --AuthenticationService -- [ERROR] Authentication failed : > null > 4912> --SimpleAuthenticator -- [ERROR] Error : first argument > was not a distinguished name : ou=groups,ou=system/Parser failure on name: > ou=groups,ou=system > Antlr exception trace: > line 1:1: unexpected token: ou > at > org.apache.ldap.common.name.antlrNameParser.attributeTypeAndValue(antlrNameParser.java:181) > 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:187) > at org.apache.ldap.common.name.DnParser.parse(DnParser.java:228) > at > org.apache.ldap.common.schema.DnComparator.compare(DnComparator.java:100) > at > org.apache.ldap.server.schema.SerializableComparator.compare(SerializableComparator.java:95) > at jdbm.btree.BPage.compare(BPage.java:841) > at jdbm.btree.BPage.findChildren(BPage.java:682) > at jdbm.btree.BPage.find(BPage.java:269) > at jdbm.btree.BTree.find(BTree.java:407) > at > org.apache.ldap.server.partition.impl.btree.jdbm.JdbmTable.getRaw(JdbmTable.java:1108) > at > org.apache.ldap.server.partition.impl.btree.jdbm.JdbmTable.get(JdbmTable.java:288) > at > org.apache.ldap.server.partition.impl.btree.jdbm.JdbmIndex.forwardLookup(JdbmIndex.java:208) > at > org.apache.ldap.server.partition.impl.btree.jdbm.JdbmDirectoryPartition.getEntryId(JdbmDirectoryPartition.java:512) > at > org.apache.ldap.server.partition.impl.btree.BTreeDirectoryPartition.lookup(BTreeDirectoryPartition.java:264) > at > org.apache.ldap.server.partition.impl.btree.BTreeDirectoryPartition.lookup(BTreeDirectoryPartition.java:275) > at > org.apache.ldap.server.partition.DefaultDirectoryPartitionNexus.lookup(DefaultDirectoryPartitionNexus.java:710) > at > org.apache.ldap.server.authn.SimpleAuthenticator.authenticate(SimpleAuthenticator.java:103) > at > org.apache.ldap.server.authn.AuthenticationService.authenticate(AuthenticationService.java:372) > at > org.apache.ldap.server.authn.AuthenticationService.hasEntry(AuthenticationService.java:216) > at > org.apache.ldap.server.interceptor.InterceptorChain$2.hasEntry(InterceptorChain.java:1232) > at > org.apache.ldap.server.normalization.NormalizationService.hasEntry(NormalizationService.java:175) > at > org.apache.ldap.server.interceptor.InterceptorChain.hasEntry(InterceptorChain.java:809) > at > org.apache.ldap.server.partition.DirectoryPartitionNexusProxy.hasEntry(DirectoryPartitionNexusProxy.java:449) > at > org.apache.ldap.server.partition.DirectoryPartitionNexusProxy.hasEntry(DirectoryPartitionNexusProxy.java:438) > at > org.apache.ldap.server.jndi.ServerContext.<init>(ServerContext.java:139) > at > org.apache.ldap.server.jndi.ServerDirContext.<init>(ServerDirContext.java:78) > at > org.apache.ldap.server.jndi.ServerLdapContext.<init>(ServerLdapContext.java:58) > at > org.apache.ldap.server.DefaultDirectoryService.getJndiContext(DefaultDirectoryService.java:173) > at > org.apache.ldap.server.jndi.AbstractContextFactory.getInitialContext(AbstractContextFactory.java:121) > 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:96) -- 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
