eDirectory 8.7.1 and 8.7.3, first NLDAP, then all services quit responding to client requests.

  • 3450200
  • 10-Jan-2007
  • 06-Jun-2012

Environment

Novell eDirectory 8.7.1 for NetWare 6.5
Novell eDirectory 8.7.3 for All Platforms
Novell NetWare 6.5
Novell NetWare 6 Support Pack 3
EDIR8711.EXE
NLDAP.NLM

Situation

eDirectory 8.7.1 , first NLDAP, then all services quit responding to client requests.
After loading the _IP screen on the Console one can see that the server is running out of small ecb's.
DSTrace with the +LDAP flag enabled shows the following error:

"Reached maximum thread pool size of 1024 threads"

"Monitor 0x8fd initiating close for connection 0x946601c0"

Resolution

This has been resovled in a new NLDAP in 8.7.3 FP1 (8.7.3.1).

Additional Information

Coredump Summary: Over a 1000 NLDAP worker threads can be seen all in a sleep state with a flag of Finalize Connection - an invalid flag.

Normal process:

- On a SSL bind we spawn a worker thread.
- When we get a SSL unbind there is then a NTLS unload. (NTLS = OpenSSL)
- These threads go into a sleep state with a flag of Kill
- Then a LDAP monitor thread goes over these threads looking at their state.
- Those threads with a Kill flag are cleared.

The problem is these threads are sleeping but with an invalid flag caused by a timing issue between the SSL unbind and the NTLS unload. The monitor thread sees the Finalize Connection flag and does not clear the thread. The thread itself will sleep forever waiting for the monitor to clear it.

Current thinking is that the ecb's could be consumed during the process where we are attempting to queue additional incoming requests while we wait for the threads to free up.



Formerly known as TID# 10089686
Formerly known as TID# NOVL94599