[ 
https://issues.apache.org/jira/browse/DIRSERVER-1733?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13402406#comment-13402406
 ] 

Hendy Irawan commented on DIRSERVER-1733:
-----------------------------------------

I tried making the affected entry as simple as possible.

The bug only occurs with this particular entry. I've got hundreds more entries 
in that collection and I can delete them just fine. Only this one is stuck.
I also cannot rename to parent entry (ou=users,dc=berbatik,dc=com)

This is the entry now. Seems innocent, although I'm not sure why userPassword 
is still there, because I've removed the "simpleSecurityObject" objectClass.

dn: uid=a_good_listener,ou=users,dc=berbatik,dc=com
objectClass: organization
objectClass: top
objectClass: uidObject
o: oooooo
uid: a_good_listener
userPassword:: e1NTSEF9NVA4cXdjNVRJL1ZIeTU1MkFidUNDbkozb1dpNW93bXpPelB6VlE9P
 Q==


It seems to be something to do with userPassword.

uid=a_good_listener,ou=users,dc=berbatik,dc=com

When I try to delete the userPassword attribute :

#!RESULT ERROR
#!CONNECTION ldap://localhost:10389
#!DATE 2012-06-28T00:52:53.153
#!ERROR [LDAP: error code 80 - OTHER: failed for MessageType : MODIFY_REQUEST 
Message ID : 51     Modify Request         Object : 
'uid=a_good_listener,ou=users,dc=berbatik,dc=com'             Modification[0]   
              Operation :  delete                 Modification     
userPassword: (null) 
org.apache.directory.shared.ldap.model.message.ModifyRequestImpl@dcfad555: null]
dn: uid=a_good_listener,ou=users,dc=berbatik,dc=com
changetype: modify
delete: userPassword
-

Added the simpleSecurityObject back, then trying to delete both the 
simpleSecurityObject and the userPassword attribute at once, not successful :

Error while executing LDIF
 - [LDAP: error code 80 - OTHER: failed for MessageType : MODIFY_REQUES
  javax.naming.NamingException: [LDAP: error code 80 - OTHER: failed for 
MessageType : MODIFY_REQUEST
Message ID : 61
    Modify Request
        Object : 'uid=a_good_listener,ou=users,dc=berbatik,dc=com'
            Modification[0]
                Operation :  delete
                Modification
    userPassword: (null)
            Modification[1]
                Operation :  delete
                Modification
    objectClass: simpleSecurityObject
org.apache.directory.shared.ldap.model.message.ModifyRequestImpl@d34e03: null]; 
remaining name 'uid=a_good_listener,ou=users,dc=berbatik,dc=com'
        at com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3111)
        at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:3013)
        at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2820)
        at com.sun.jndi.ldap.LdapCtx.c_modifyAttributes(LdapCtx.java:1458)
        at 
com.sun.jndi.toolkit.ctx.ComponentDirContext.p_modifyAttributes(ComponentDirContext.java:255)
        at 
com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.modifyAttributes(PartialCompositeDirContext.java:172)
        at 
org.apache.directory.studio.connection.core.io.jndi.JNDIConnectionWrapper$2.run(JNDIConnectionWrapper.java:454)
        at 
org.apache.directory.studio.connection.core.io.jndi.JNDIConnectionWrapper.runAndMonitor(JNDIConnectionWrapper.java:1272)
        at 
org.apache.directory.studio.connection.core.io.jndi.JNDIConnectionWrapper.checkConnectionAndRunAndMonitor(JNDIConnectionWrapper.java:1203)
        at 
org.apache.directory.studio.connection.core.io.jndi.JNDIConnectionWrapper.modifyEntry(JNDIConnectionWrapper.java:502)
        at 
org.apache.directory.studio.ldapbrowser.core.jobs.ImportLdifJob.importLdifRecord(ImportLdifJob.java:507)
        at 
org.apache.directory.studio.ldapbrowser.core.jobs.ImportLdifJob.importLdif(ImportLdifJob.java:267)
        at 
org.apache.directory.studio.ldapbrowser.core.jobs.ExecuteLdifRunnable.run(ExecuteLdifRunnable.java:143)
        at 
org.apache.directory.studio.ldapbrowser.core.jobs.UpdateEntryRunnable.run(UpdateEntryRunnable.java:58)
        at 
org.apache.directory.studio.connection.ui.RunnableContextRunner$1.run(RunnableContextRunner.java:113)
        at 
org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)

  [LDAP: error code 80 - OTHER: failed for MessageType : MODIFY_REQUEST
Message ID : 61
    Modify Request
        Object : 'uid=a_good_listener,ou=users,dc=berbatik,dc=com'
            Modification[0]
                Operation :  delete
                Modification
    userPassword: (null)
            Modification[1]
                Operation :  delete
                Modification
    objectClass: simpleSecurityObject
org.apache.directory.shared.ldap.model.message.ModifyRequestImpl@d34e03: null]

                
> Cannot delete leaf entry -- Operation not allowed on non-leaf (66) - 
> NOT_ALLOWED_ON_NON_LEAF: failed for MessageType : DEL_REQUEST
> ----------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DIRSERVER-1733
>                 URL: https://issues.apache.org/jira/browse/DIRSERVER-1733
>             Project: Directory ApacheDS
>          Issue Type: Bug
>          Components: ldap
>    Affects Versions: 2.0.0-M7
>         Environment: java version "1.6.0_31"
> Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
> Java HotSpot(TM) 64-Bit Server VM (build 20.6-b01, mixed mode)
> Linux annafi.dev 3.0.0-21-generic #35-Ubuntu SMP Fri May 25 17:57:41 UTC 2012 
> x86_64 x86_64 x86_64 GNU/Linux
>            Reporter: Hendy Irawan
>            Priority: Critical
>
> Right now, in my database it is impossible to delete an entry, although all 
> the children has been deleted (i.e. it's a leaf entry) :
> ceefour@annafi:~$ ldapdelete -H ldap://localhost:10389/ -D 
> uid=admin,ou=system -x -W uid=a_good_listener,ou=users,dc=berbatik,dc=com    
> Enter LDAP Password:                                                          
>                                                           
> ldap_delete: Operation not allowed on non-leaf (66)                           
>                                                           
>         additional info: NOT_ALLOWED_ON_NON_LEAF: failed for MessageType : 
> DEL_REQUEST                                                  
> Message ID : 2                                                                
>                                                           
>     Del request                                                               
>                                                           
>         Entry : 'uid=a_good_listener,ou=users,dc=berbatik,dc=com'             
>                                                           
> org.apache.directory.shared.ldap.model.message.DeleteRequestImpl@bec72d56: 
> ERR_700 [66] Cannot delete entry 
> uid=a_good_listener,ou=users,dc=berbatik,dc=com it has children! 
> In addition, it's also not possible to rename the entry, with a weird error 
> java.lang.String cannot be cast to java.lang.Long] :
>   javax.naming.NamingException: [LDAP: error code 1 - OPERATIONS_ERROR: 
> failed for MessageType : MODIFYDN_REQUEST
> Message ID : 2
>     ModifyDN Response
>         Entry : 'uid=a_good_listener,ou=users,dc=berbatik,dc=com'
>         New Rdn : 'uid=a_good_listenerx'
>         Delete old Rdn : true
> org.apache.directory.shared.ldap.model.message.ModifyDnRequestImpl@269d35c1: 
> java.lang.String cannot be cast to java.lang.Long]; remaining name 
> 'uid=a_good_listener,ou=users,dc=berbatik,dc=com'
>       at com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3107)
>       at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:3013)
>       at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2820)
>       at com.sun.jndi.ldap.LdapCtx.c_rename(LdapCtx.java:706)
>       at 
> com.sun.jndi.toolkit.ctx.ComponentContext.p_rename(ComponentContext.java:693)
>       at 
> com.sun.jndi.toolkit.ctx.PartialCompositeContext.rename(PartialCompositeContext.java:251)
>       at 
> org.apache.directory.studio.connection.core.io.jndi.JNDIConnectionWrapper$3.run(JNDIConnectionWrapper.java:563)
>       at 
> org.apache.directory.studio.connection.core.io.jndi.JNDIConnectionWrapper.runAndMonitor(JNDIConnectionWrapper.java:1272)
>       at 
> org.apache.directory.studio.connection.core.io.jndi.JNDIConnectionWrapper.checkConnectionAndRunAndMonitor(JNDIConnectionWrapper.java:1203)
>       at 
> org.apache.directory.studio.connection.core.io.jndi.JNDIConnectionWrapper.renameEntry(JNDIConnectionWrapper.java:608)
>       at 
> org.apache.directory.studio.ldapbrowser.core.jobs.RenameEntryJob.renameEntry(RenameEntryJob.java:288)
>       at 
> org.apache.directory.studio.ldapbrowser.core.jobs.RenameEntryJob.executeNotificationJob(RenameEntryJob.java:141)
>       at 
> org.apache.directory.studio.ldapbrowser.core.jobs.AbstractNotificationJob.executeAsyncJob(AbstractNotificationJob.java:43)
>       at 
> org.apache.directory.studio.ldapbrowser.core.jobs.AbstractEclipseJob.run(AbstractEclipseJob.java:101)
>       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
> If required, I can provide the partition data, but in private.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to