SLAMD Distributed
Load Generation Engine
Version 2.0.0-alpha1

LDAP SDK for Java Patch

As part of our use of SLAMD to heavily stress LDAP directory servers, we have uncovered a bug in the LDAP SDK for Java that can cause a connection to hang under heavy load. We have traced this problem to a race condition in the code that allocates message IDs for operations, and have devised a change to fix this problem. As such, SLAMD is provided with a custom version of the LDAP SDK for Java that includes this fix, and in accordance with the Netscape Public License under which that software is distributed, the full details of the change that has been made is included in the thirdparty/ldapjdk/ldapjdk_patch directory under the SLAMD server installation. However, for convenience the code diff associated with this change is provided below:

$ cvs diff -c LDAPConnThread.java Index: LDAPConnThread.java =================================================================== RCS /m/src/ns/ldap/java/netscape/ldap/LDAPConnThread.java,v retrieving revision 1.1.2.21 diff -c -r1.1.2.21 LDAPConnThread.java *** LDAPConnThread.java 2001/05/25 23:26:45 1.1.2.21 --- LDAPConnThread.java 2003/10/20 15:20:29 *************** *** 60,66 **** /** * Internal variables */ ! transient private static int m_highMsgId; transient private InputStream m_serverInput; transient private OutputStream m_serverOutput; transient private Hashtable m_requests; --- 60,66 ---- /** * Internal variables */ ! transient private int m_highMsgId; transient private InputStream m_serverInput; transient private OutputStream m_serverOutput; transient private Hashtable m_requests;