directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alex Karasulu" <akaras...@apache.org>
Subject Re: [jira] Commented: (DIRSERVER-916) SubtreeSpecificationParser and LDAP filter
Date Sun, 01 Jul 2007 15:52:59 GMT
thought so but we need to have someone confirm it
alex

On 7/1/07, Ersin Er (JIRA) <jira@apache.org> wrote:
>
>
>     [
> https://issues.apache.org/jira/browse/DIRSERVER-916?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12509336]
>
> Ersin Er commented on DIRSERVER-916:
> ------------------------------------
>
> Haven't we fixed this ?
>
> > 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.
>
>

Mime
View raw message