Return-Path: Delivered-To: apmail-directory-dev-archive@www.apache.org Received: (qmail 58656 invoked from network); 17 Aug 2007 07:41:01 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 17 Aug 2007 07:41:01 -0000 Received: (qmail 47300 invoked by uid 500); 17 Aug 2007 07:40:55 -0000 Delivered-To: apmail-directory-dev-archive@directory.apache.org Received: (qmail 47260 invoked by uid 500); 17 Aug 2007 07:40:55 -0000 Mailing-List: contact dev-help@directory.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "Apache Directory Developers List" Delivered-To: mailing list dev@directory.apache.org Received: (qmail 47236 invoked by uid 99); 17 Aug 2007 07:40:55 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 17 Aug 2007 00:40:55 -0700 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO brutus.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 17 Aug 2007 07:41:17 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 20D6071418F for ; Fri, 17 Aug 2007 00:40:33 -0700 (PDT) Message-ID: <6386665.1187336433129.JavaMail.jira@brutus> Date: Fri, 17 Aug 2007 00:40:33 -0700 (PDT) From: "Emmanuel Lecharny (JIRA)" To: dev@directory.apache.org Subject: [jira] Commented: (DIRSERVER-916) SubtreeSpecificationParser and LDAP filter In-Reply-To: <14538819.1177453875504.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/DIRSERVER-916?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12520483 ] Emmanuel Lecharny commented on DIRSERVER-916: --------------------------------------------- Hi guys, I just checked this JIRA, re-read the full thread, and came to the conclusion that if the DIRSERVER-987 is closed, may be it's time to close the current issues? Can you give us a status ? Many thanks ! > SubtreeSpecificationParser and LDAP filter > ------------------------------------------ > > Key: DIRSERVER-916 > URL: https://issues.apache.org/jira/browse/DIRSERVER-916 > Project: Directory ApacheDS > Issue Type: Bug > Reporter: Stefan Seelmann > Fix For: 1.5.1 > > > I got a curious error. While playing with the new LS subtreespecification editor and writing a subtreespecification with an LDAP filter the SubtreeSpecificationParser *sometimes* gets killed. > It seems like the parser is stateful. If I first write some subtreespecifications w/o an LDAP filter the parser seems to be stable. But when adding it just after starting the server the parser dies with an "Read end dead". > It was able to reproduce it with the following steps, using the trunk: > 1.) Create an entry with the following subtreespecification > ------------------------------------------------------------------- > dn: cn=subentry,dc=example,dc=com > objectClass: accessControlSubentry > objectClass: subentry > objectClass: top > cn: subentry > prescriptiveaci: { identificationTag "dummy", precedence 1, authenticationLe > vel none, itemOrUserFirst userFirst: { userClasses { }, userPermissions { > } } } > subtreespecification: { specificationFilter (cn=test) } > ------------------------------------------------------------------- > 2.) Shutdown the server > 3.) Startup the server > 4.) Overwrite the subtreespecification value with a refinement > ------------------------------------------------------------------- > dn: cn=subentry,dc=example,dc=com > changetype: modify > replace: subtreespecification > subtreespecification: { specificationFilter item:top } > - > ------------------------------------------------------------------- > 4.) Overwrite the subtreespecification value with a filter > ------------------------------------------------------------------- > dn: cn=subentry,dc=example,dc=com > changetype: modify > replace: subtreespecification > subtreespecification: { specificationFilter (cn=test) } > - > ------------------------------------------------------------------- > The client receives the following error message: > ------------------------------------------------------------------- > ldap_modify: Invalid syntax (21) > additional info: failed to modify entry cn=subentry,dc=example,dc=com: failed to parse the new subtreeSpecification > ------------------------------------------------------------------- > The server throws the following exception: > ------------------------------------------------------------------- > [22:46:49] ERROR [org.apache.directory.server.core.subtree.SubentryService] - failed to parse the new subtreeSpecification > java.text.ParseException: Parser failure on subtree specification: > { specificationFilter (cn=test) } > Antlr exception trace: > filterParser failed. Read end dead > at org.apache.directory.shared.ldap.subtree.SubtreeSpecificationParser.parse(SubtreeSpecificationParser.java:133) > at org.apache.directory.server.core.subtree.SubentryService.modify(SubentryService.java:1045) > at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.modify(InterceptorChain.java:1162) > at org.apache.directory.server.core.schema.SchemaService.modify(SchemaService.java:1517) > at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.modify(InterceptorChain.java:1162) > at org.apache.directory.server.core.operational.OperationalAttributeService.modify(OperationalAttributeService.java:177) > at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.modify(InterceptorChain.java:1162) > at org.apache.directory.server.core.exception.ExceptionService.modify(ExceptionService.java:291) > at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.modify(InterceptorChain.java:1162) > at org.apache.directory.server.core.authz.DefaultAuthorizationService.modify(DefaultAuthorizationService.java:241) > at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.modify(InterceptorChain.java:1162) > at org.apache.directory.server.core.authz.AuthorizationService.modify(AuthorizationService.java:510) > at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.modify(InterceptorChain.java:1162) > at org.apache.directory.server.core.referral.ReferralService.modify(ReferralService.java:746) > at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.modify(InterceptorChain.java:1162) > at org.apache.directory.server.core.authn.AuthenticationService.modify(AuthenticationService.java:351) > at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.modify(InterceptorChain.java:1162) > at org.apache.directory.server.core.normalization.NormalizationService.modify(NormalizationService.java:132) > at org.apache.directory.server.core.interceptor.InterceptorChain.modify(InterceptorChain.java:761) > at org.apache.directory.server.core.partition.PartitionNexusProxy.modify(PartitionNexusProxy.java:362) > at org.apache.directory.server.core.partition.PartitionNexusProxy.modify(PartitionNexusProxy.java:349) > at org.apache.directory.server.core.jndi.ServerDirContext.modifyAttributes(ServerDirContext.java:233) > at javax.naming.directory.InitialDirContext.modifyAttributes(InitialDirContext.java:153) > at org.apache.directory.server.ldap.support.ModifyHandler.messageReceived(ModifyHandler.java:80) > at org.apache.mina.handler.demux.DemuxingIoHandler.messageReceived(DemuxingIoHandler.java:144) > at org.apache.directory.server.ldap.LdapProtocolProvider$LdapProtocolHandler.messageReceived(LdapProtocolProvider.java:427) > at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived(AbstractIoFilterChain.java:703) > at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:362) > at org.apache.mina.common.support.AbstractIoFilterChain.access$1200(AbstractIoFilterChain.java:54) > at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:800) > at org.apache.mina.filter.LoggingFilter.messageReceived(LoggingFilter.java:97) > at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:362) > at org.apache.mina.common.support.AbstractIoFilterChain.access$1200(AbstractIoFilterChain.java:54) > at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:800) > at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimpleProtocolDecoderOutput.java:60) > at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:190) > at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:362) > at org.apache.mina.common.support.AbstractIoFilterChain.access$1200(AbstractIoFilterChain.java:54) > at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:800) > at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:243) > at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:305) > at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665) > at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690) > at java.lang.Thread.run(Thread.java:595) > ------------------------------------------------------------------- > Now when trying to modify the subtreespecification again, the client gets the follwoing message, but no server logs: > ------------------------------------------------------------------- > ldap_modify: Loop detected (54) > additional info: failed to modify entry cn=subentry,dc=example,dc=com: Unexpected exception > ------------------------------------------------------------------- > The same error occurs when trying to delete the entry -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.