Full_Name: Howard Chu Version: 2.3/2.4/HEAD OS: URL: ftp://ftp.openldap.org/incoming/ Submission from: (NULL) (76.91.220.157) Submitted by: hyc
Currently we provide SlapReply flag REP_ENTRY_MUSTRELEASE which tells slap_send_search_entry() to release the current entry before writing to the network. syncprov uses it, but not much else does.
If a client issues a search request that produces a large result set, and the client doesn't read the results quickly enough, eventually the socket buffers on client and server will fill up, and the slapd thread writing to the connection will block. If it blocks while writing an entry that is still readlocked, then attempts to modify that entry will hang. Subsequent attempts to read that entry will also hang after a write has hung.
back-bdb/hdb should set the REP_ENTRY_MUSTRELEASE flag when calling slap_send_search_entry() to prevent this situation.