Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4976320

A destroySubcontext call is deadlocked on itself

XMLWordPrintable

      A customer creates a InitialLdapContext instance to eliminate contexts but is
      seeing this operation hang indefinitely after calling
      InitialLdapContext.destroySubcontext.

      The thread dump shows the calling thread "main" where destroySubcontext was made is waiting for a lock from a Connection.readReply call. "Thread-37" is the
      only thread running and assuming it is blocking this operation performing a socketRead. After using jdb we notice that "Thread-37" was created when the
      call ctx = new InitialLdapContext(env, null) was done. So it seems the
      InitialLdapContext instance is tripping over itself.

      The customer sees this hang randomly on various Windows systems. The hang
      occurs more frequently using 1.3.1. It is better with 1.4.2_02 but the hang still happens.

      Attached is the file LDAPRepository.java where the operation begins.
      A call to deleteTheObject(String cfgname) will create the InitialLdapContext
      instance from a method call ctx = ldapOps.getLDAPConnection(jndiEnv) (method
      source include).

      The method deleteTheObject(ldapOps, jndiEnv, ctx, subctx, cfgname)
      is then called to traverse the config object recursively that eventually makes the call to ldapOps.destroyLDAPSubcontext(...) in the file ClusterProfileFailProofOperations.java to delete the subcontext
      ctx.destroySubcontext(dn);.

            jhangalsunw Jayalaxmi Hangal (Inactive)
            atongschsunw Albert Tong-schmidt (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: