You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by "Ole Ersoy (JIRA)" <ji...@apache.org> on 2007/06/01 17:33:17 UTC

[jira] Commented: (DIRSERVER-950) Server Left in Unstable State

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

Ole Ersoy commented on DIRSERVER-950:
-------------------------------------

I wanted to see whether I can just fix this via JNDI, rather than reinstalling each time.  So I wrote the following test to see what would happen when I try to list children of ou=objectClass, cn=ecore, ou=schema.  The result of running the test is pasted below the test.  It's still circumstantial, so I'm just adding in case it's helpful.  If we think this is to much "Symptom" information please let me know. 

package org.apache.tuscany.das.ldap.learning.test;

import javax.naming.Binding;
import javax.naming.Context;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
import javax.naming.directory.DirContext;

public class ServerStateTesting 
extends JNDIConnectionTemplate
{
    public void testConnect() throws NamingException
    {
        providerPath = "ou=objectClasses, cn=ecore, ou=schema";  //This is what I'm connecting to

        DirContext ecoreObjectClassesContext = connect();
        NamingEnumeration enm = ecoreObjectClassesContext.listBindings("");
        
        while (enm.hasMore()) {
          Binding b = (Binding) enm.next();
          if (b.getObject() instanceof Context) {
            Context child = (Context) b.getObject();
//            System.out.println(child.getNameInNamespace());
          }
        } 
    }
    
}
/*
javax.naming.InvalidNameException: : [LDAP: error code 34 - Invalid root DN given : ou=objectClasses, (0x6F 0x75 0x3D 0x6F 0x62 0x6A 0x65 0x63 0x74 0x43 0x6C 0x61 0x73 0x73 0x65 0x73 0x2C ) is invalid]; remaining name ''
at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2943)
at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2758)
....

> Server Left in Unstable State
> -----------------------------
>
>                 Key: DIRSERVER-950
>                 URL: https://issues.apache.org/jira/browse/DIRSERVER-950
>             Project: Directory ApacheDS
>          Issue Type: Bug
>    Affects Versions: 1.5.0
>         Environment: FC6
>            Reporter: Ole Ersoy
>            Priority: Minor
>
> I can only give observational data
> for this, since it appears to be a one time thing.
> It's a little like the sequence of what happened depends
> on threads, and thread A completes first 9999/10000 times,
> but in this case thread B completed first...
> I ran the test:
> EObjectClassCreator
> It creates an ObjectClass and the 
> AttributeTypes needed by the ObjectClass.
> I've ran it several times successfully already,
> but on the last run it left the server in 
> a state that does not let me delete
> an entry shown in LS.
> I have a single entry (That should have been cleaned by the test)
> ou=objectClasses, cn=ecore, ou=schema
> This has no children.
> If I refresh in LS it is still there.
> I check to make sure the apacheds daemon is still running.
> If I try to delete I get this:
> Error while deleting entry
> [LDAP: error code 80 - failed on search operation: OID for name 'metatopsdo' was not found within the OID registry]
>   [LDAP: error code 80 - failed on search operation: OID for name 'metatopsdo' was not found within the OID registry]
> metatopsdo is an objectClass that was created in order to create 
> the ObjectClass entry that the test creates.
> Once the test has run the ObjectClass entry
> created is deleted,
> then the metatopsdo ObjectClass.
> This is strange because the entry
> ou=objectClasses, cn=ecore, ou=schema
> is empty, at least as shown is LS.
> So the question is under what circumstances does
> is LS not able to delete an empty entry like this.
> I'm now going to disconnect and reconnect
> with LS to see if it has an effect.
> OK - I did that and
> when drill down past the entry
> ou=objectClasses, cn=ecore, ou=schema
> I get this:
> Error while reading entry
> [LDAP: error code 80 - failed on search operation: OID for name 'metatopsdo' was not found within the OID registry]
>   [LDAP: error code 80 - failed on search operation: OID for name 'metatopsdo' was not found within the OID registry]
> So the ObjectClass entry the test created
> must be there, but LS can't see it because
> the metatopsdo ObjectClass is deleted,
> at least it seems.
> But ApacheDS should disallow deletion
> of metatopsdo when it is being used by another 
> ObjectClass entry right?
> I think the only thing I can do now is to
> reinstall the server...since the entry
> is "Stuck"...
> But first let me try restarting it 
> just in case...
> yum still stuck.
> Just in case the teardown for this test looks like this:
>         EObjectClassDestroyer.
>         destroy( 
>             ecoreAttributeTypesContext, 
>             ecoreObjectClassesContext, 
>             eClass, 
>             oidPrefix );
>         MetaTopSDOObjectClassDestroyer.
>         destroy(
>             ecoreAttributeTypesContext, 
>             ecoreObjectClassesContext, 
>             oidPrefix );        
>         
>         EcoreTypeSystemDestroyer.
>         destroy(
>             ecoreSyntaxesContext, 
>             oidPrefix);
>         
>         super.tearDown();
> So it's really strange that it got stuck like this...

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.