[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
ldap_result returns LDAP_TIMEOUT even after getting search response
- To: openldap-technical@openldap.org
- Subject: ldap_result returns LDAP_TIMEOUT even after getting search response
- From: Shankar Anand R <shankaranand@gmail.com>
- Date: Mon, 6 Dec 2010 18:41:40 +0530
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:date:message-id :subject:from:to:content-type; bh=XMLYKO8iN9NVrNjxLx4m4rgrYrWBzA2SanrcuwqUNwU=; b=jcGR3rkATTzAKk4trex8G4mV2eY5nJGFgK2rurPCdU8/eKEcN1rl+36cYamJlcThfw VciYnkASmf0Ab8bszEqQB1lX3VouqxwDNXjVqwsnzP+2+mA7icw5MRBPsnVlXkG/WO61 1EnNer4W2t3/YCw5t1S7hvkkw5lKrp6hSw4Q4=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=axu9TYydQetnUuFulLpIz7UoMHK2TcfbMX8tANcTv9ANTiBiEal26B+pE5H/WmGWEv U09/QbqRyjRM44chZqBEX/7NpzaIe42ZxVIS0H+yUHdiczj+pO61nyUwM4MiapaAgTgi lAzgnYp57gMsLhITbtj9rV/An0+2r+RCJl3t0=
Hi,
I am seeing very slow responses while using ldap_search_ext() and ldap_result(). I have explained my application below. Kindly let me know if you see any problems/clues.
I have written a simple application which reads a file and does LDAP search for all entities in the file. I am doing a simple bind with the LDAP server.
I have 2 threads and 2 queues namely, LDAP Search queue and LDAP result queue.
- Thread 1 reads all the entities from LDAP Search queue, sends out LDAP search requests for those entities and puts them into LDAP result queue.
- Thread 2 reads all the entities from LDAP Result queue and checks for search results for those entities.
These 2 threads do these tasks every 1 second.
Since I don't want to overload the LDAP server I have programmed a
constraint of a maximum of 20 outstanding LDAP searches that haven't got
a result yet.
Successful ldap_result() seems to be taking a long time. I keep getting LDAP_TIMEOUT errors. But i do get the result eventually without any retransmissions. But after a long time.
When I capture the LDAP packets, the results seems to coming in pretty quick. But still ldap_result returns a LDAP_TIMEOUT error. Why should ldap_result() return a timeout in this case?
Note that I am using LDAP_MSG_ONE in ldap_result. And I am using a timeout of 0 - I want to poll for the result and not actually block.
I have turned OFF LDAP_OPT_REFERRALS on client side. (But still not able to figure out how to prevent Active Directory 2008 from sending out referrals).
My test file contains 25 entities and I want to query the LDAP server for these 25 entities.
This is a simplified form of my log:
At 0 seconds:
LDAP Search thread:
25 more LDAP searches pending. 0 LDAP Search waiting for results
Sent out 20 LDAP Search Requests.
Trigger to start LDAP Result thread after 1 second.
5 more LDAP searches pending. Wait for 1 second before sending these out.
At 1 seconds:
LDAP Result thread:
20 LDAP Search results pending.
Got 1 LDAP results.
19 LDAP Search results still pending. Try again after 1 second.
LDAP Search Thread:
5 more LDAP Searches pending. 19 LDAP Search waiting for results.
Sent out 1 LDAP Search Requests.
4 more LDAP searches pending. Wait for 1 second before sending these out.
At 2 seconds:
LDAP Result thread:
20 LDAP Search results pending.
Got 5 LDAP results.
15 LDAP Search results still pending. Try again after 1 second.
LDAP Search Thread:
4 more LDAP Searches pending. 15 LDAP Search waiting for results.
Sent out 4 LDAP Search Requests.
0 LDAP Search pending. Stopping LDAP Search thread.
At 3 seconds:
LDAP Result thread:
19 LDAP Search results pending.
Got 4 LDAP results.
15 LDAP Search results still pending. Try again after 1 second.
At 4 seconds:
LDAP Result thread:
15 LDAP Search results pending.
Got 4 LDAP results.
11 LDAP Search results still pending. Try again after 1 second.
At 5 seconds:
LDAP Result thread:
11 LDAP Search results pending.
Got 3 LDAP results.
8 LDAP Search results still pending. Try again after 1 second.
At 6 seconds:
LDAP Result thread:
8 LDAP Search results pending.
Got 2 LDAP results.
6 LDAP Search results still pending. Try again after 1 second.
At 7 seconds:
LDAP Result thread:
6 LDAP Search results pending.
Got 1 LDAP results.
5 LDAP Search results still pending. Try again after 1 second.
At 8 seconds:
LDAP Result thread:
5 LDAP Search results pending.
Got 2 LDAP results.
3 LDAP Search results still pending. Try again after 1 second.
At 8 seconds:
LDAP Result thread:
3 LDAP Search results pending.
Got 1 LDAP results.
2 LDAP Search results still pending. Try again after 1 second.
At 9 seconds:
LDAP Result thread:
2 LDAP Search results pending.
Got 0 LDAP results.
2 LDAP Search results still pending. Try again after 1 second.
At 10 seconds:
LDAP Result thread:
2 LDAP Search results pending.
Got 1 LDAP results.
1 LDAP Search results still pending. Try again after 1 second.
At 11 seconds:
LDAP Result thread:
1 LDAP Search results pending.
Got 0 LDAP results.
1 LDAP Search results still pending. Try again after 1 second.
At 12 seconds:
LDAP Result thread:
1 LDAP Search results pending.
Got 1 LDAP results.
0 LDAP Search Results pending. Stopping LDAP Result thread.
Any help/clues is much appreciated.
Regards,
Shankar