Deadlock occurred between two threads when using Netscape LDAP classes

"Zvieli, Asaf" <[email protected]> Mon, 14 Mar 2011 15:30:40 +0000
Newsgroups gmane.comp.mozilla.devel.directory
Message-ID <0F65CCA2D66EF140BF02F2B1135BD8D35DA2393D4E@GVW1114EXC.americas.hpqcorp.net>
Hi,

I am running my application on JBoss and using ldapjdk.jar to authenticate with LDAP server.
After a while I am getting a deadlock and my application is crush due to out of memory exception.
In the thread dump I took I see the following error which repeat 660 times:
Found one Java-level deadlock:
=============================
"LDAPConnThread honts0006:3268":
  waiting to lock monitor 0x680da90c (object 0x27f82bf8, a netscape.ldap.LDAPConnection),
  which is held by "http-0.0.0.0-8080-64"
"http-0.0.0.0-8080-64":
  waiting to lock monitor 0x680da4cc (object 0x27f80368, a netscape.ldap.LDAPConnThread),
  which is held by "LDAPConnThread honts0006:3268"

Java stack information for the threads listed above:
===================================================
"LDAPConnThread honts0006:3268":
          at netscape.ldap.LDAPConnection.deregisterConnection(Unknown Source)
          - waiting to lock <0x27f82bf8> (a netscape.ldap.LDAPConnection)
          at netscape.ldap.LDAPConnThread.cleanUp(Unknown Source)
          at netscape.ldap.LDAPConnThread.networkError(Unknown Source)
          - locked <0x27f80368> (a netscape.ldap.LDAPConnThread)
          at netscape.ldap.LDAPConnThread.run(Unknown Source)
"http-0.0.0.0-8080-64":
          at netscape.ldap.LDAPConnThread.getClientCount(Unknown Source)
          - waiting to lock <0x27f80368> (a netscape.ldap.LDAPConnThread)
          at netscape.ldap.LDAPConnection.disconnect(Unknown Source)
          - locked <0x27f82bf8> (a netscape.ldap.LDAPConnection)
          at com.mercury.td.ldap.CLdapCommandFactory$CLdapMacroCommand.execute(CLdapCommandFactory.java:1036)
          - locked <0x27f83a20> (a com.mercury.td.ldap.CLdapCommandFactory$CLdapMacroCommand)
          at com.mercury.td.saserver.api.logics.CTdUserLogic.importUserFromLdap(CTdUserLogic.java:1786)
          at com.mercury.td.saserver.api.logics.CTdUserLogic.importUserFromLdap(CTdUserLogic.java:1476)

I did look for this case in the net and found that ORACLE did report on such a bug in their WebLogic resolve problems but without specific details(see: http://download.oracle.com/docs/cd/E13222_01/wls/docs61/notes/bugfixes2.html , security section, CR125520).


1.    Is this a known issue?

2.    If it is a known issue, Where can I see the documentation about it?

3.       If it is a known issue and you already fixed it, in which ldapjdk.jar version should I use to have the fix in it?

Asaf Zvieli
HP Software, Quality Center RnD.
972.3.5397017 office | 972.3.5331617 fax | [email protected]<mailto:[email protected]>
19 Shabazi Street | 56100 | Yahud | Israel