[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: test039-glue-ldap-concurrency time...
Pierangelo Masarati wrote:
It almost seems like select() isn't noticing there is data ready to be
read.
Are you using select() or poll()? would moving to the other interface
possibly cure the issue?
slapd was using select() since I'd accidentally committed an #undef that
disabled epoll(). Looks like libldap is using poll() though.
It strikes me that part of the delay may be a kernel issue; I still see this
netstat -n
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 1 ::1:* ::1:9016 SYN_SENT
tcp 0 1 ::1:* ::1:9016 SYN_SENT
tcp 0 0 ::1:9013 ::1:52590
ESTABLISHED
tcp 0 0 ::1:9013 ::1:34631
ESTABLISHED
tcp 0 0 ::1:9013 ::1:34642
ESTABLISHED
for long periods of time, and it ought to fail immediately with
Connection Refused since there is no listener for port 9016. I'll try
this again with libldap using select and see if the same thing happens.
There's another issue with slapd still, occasionally I saw SYN_SENT
state for port 9011 which should not show up either; since there is a
slapd listening on 9011 it should go to ESTABLISHED state immediately.
(Or at least, faster than humanly observable.) I've recompiled with
SLAPD_LISTEN_BACKLOG down to 8 and this doesn't seem to occur any more,
but everything is inconclusive since the behavior varies from run to run.
--
-- Howard Chu
Chief Architect, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc
OpenLDAP Core Team http://www.openldap.org/project/