HAVE_YIELDING_SELECT was taken out at 1.267->1.268.
It seems that we have to have one again.
- Jong
------------------------
Jong Hyuk Choi
IBM Thomas J. Watson Research Center - Enterprise Linux Group
P. O. Box 218, Yorktown Heights, NY 10598
email: jongchoi@us.ibm.com
(phone) 914-945-3979 (fax) 914-945-4425 TL: 862-3979
"Kurt D. Zeilenga" <Kurt@OpenLDAP.org> Sent by: owner-openldap-devel@OpenLDAP.org
Some select(2) calls don't yield to other threads when blocked,
causing the whole server to block waiting for select(2) to return.
The code use to only use the poll when HAVE_YIELDING_SELECT was
not set. I'm not sure why we now poll all the time. That's not
needed.
Kurt
At 11:01 AM 6/6/2003, Howard Chu wrote:
>This bit in daemon.c about polling (select with a timeval of 0 sec/ 0 usec)
>when there
>are active threads doesn't make a whole lot of sense to me. The behavior was
>in the
>original code and I preserved it when I wrote the idletimeout patch. What is
>it
>intended to accomplish?
>
> -- Howard Chu
> Chief Architect, Symas Corp. Director, Highland Sun
> http://www.symas.com http://highlandsun.com/hyc
> Symas: Premier OpenSource Development and Support
>
>-----Original Message-----
>From: owner-openldap-software@OpenLDAP.org
>[mailto:owner-openldap-software@OpenLDAP.org]On Behalf Of Alexander
>Lunyov
>Sent: Friday, June 06, 2003 8:44 AM
>To: openldap-software@OpenLDAP.org
>Subject: daemon: select timeout - yielding
>
>
>Hello openldap-software,
>
> FreeBSD 4.8R
> Cyrus-IMAPD-2.1.13 (from ports)
> Cyrus-SASL-2.1.13 (from ports with ldapdb.c patch)
> auxprop plugin ldapdb.c patch from Edward Rudd (it was 05.06.2003)
>
> Can somebody explain to me why slapd when i'm trying to authenticate
> with DIGEST-MD5 (Cyrus-SASL-2.1.13) hangs? For example, after
> command "cyradm --user cyradm localhost" and after i enter password,
> or after command "ldapsearch -U someuser" BUT BEFORE i enter the
> password (in ldapsearch case it even not asking for password),
> in logs i see that slapd starts authentication and then -
> "select timeout" and logs are growing very-very fast.
>
> ldap part of IMAP config:
>
>sasl_pwcheck_method: auxprop
>sasl_ldapdb_uri: ldap://127.0.0.1
>sasl_ldapdb_id: admin
>sasl_ldapdb_pw: password
>sasl_ldapdb_mech: DIGEST-MD5
>
> Auth via sasldb2 is working, everything is fine.
>
> Log:
>
>Jun 6 19:22:24 icarus slapd[87577]: daemon: activity on 1 descriptors
>Jun 6 19:22:24 icarus slapd[87577]: daemon: new connection on 9
>Jun 6 19:22:24 icarus slapd[87577]: conn=1 fd=9 ACCEPT from
>IP=127.0.0.1:2587 (IP=0.0.0.0:389)
>Jun 6 19:22:24 icarus slapd[87577]: daemon: added 9r
>Jun 6 19:22:24 icarus slapd[87577]: daemon: activity on:
>Jun 6 19:22:24 icarus slapd[87577]:
>Jun 6 19:22:24 icarus slapd[87577]: daemon: select: listen=8
>active_threads=0 tvp=NULL
>Jun 6 19:22:24 icarus slapd[87577]: daemon: activity on 1 descriptors
>Jun 6 19:22:24 icarus slapd[87577]: daemon: activity on:
>Jun 6 19:22:24 icarus slapd[87577]: 9r
>Jun 6 19:22:24 icarus slapd[87577]:
>Jun 6 19:22:24 icarus slapd[87577]: daemon: read activity on 9
>Jun 6 19:22:24 icarus slapd[87577]: connection_get(9)
>Jun 6 19:22:24 icarus slapd[87577]: connection_get(9): got connid=1
>Jun 6 19:22:24 icarus slapd[87577]: connection_read(9): checking for input
>on id=1
>Jun 6 19:22:24 icarus slapd[87577]: ber_get_next on fd 9 failed errno=35
>(Resource temporarily unavailable)
>Jun 6 19:22:24 icarus slapd[87577]: do_bind
>Jun 6 19:22:24 icarus slapd[87577]: >>> dnPrettyNormal: <>
>Jun 6 19:22:24 icarus slapd[87577]: <<< dnPrettyNormal: <>, <>
>Jun 6 19:22:24 icarus slapd[87577]: do_sasl_bind: dn () mech DIGEST-MD5
>Jun 6 19:22:24 icarus slapd[87577]: conn=1 op=0 BIND dn="" method=163
>Jun 6 19:22:24 icarus slapd[87577]: ==> sasl_bind: dn="" mech=DIGEST-MD5
>datalen=0
>Jun 6 19:22:24 icarus slapd[87577]: SASL [conn=1] Debug: DIGEST-MD5 server
>step 1
>Jun 6 19:22:24 icarus slapd[87577]: daemon: select: listen=8
>active_threads=1 tvp=idle
>Jun 6 19:22:24 icarus slapd[87577]: daemon: select timeout - yielding
>Jun 6 19:22:24 icarus slapd[87577]: daemon: select: listen=8
>active_threads=1 tvp=idle
>.
>.
>.
>Jun 6 19:25:55 icarus slapd[87577]: daemon: select timeout - yielding
>Jun 6 19:25:55 icarus slapd[87577]: daemon: select: listen=8
>active_threads=1 tvp=idle
>Jun 6 19:25:55 icarus slapd[87577]: daemon: select timeout - yielding
>Jun 6 19:25:55 icarus slapd[87577]: daemon: select: listen=8
>active_threads=1 tvp=idle
>Jun 6 19:25:55 icarus slapd[87577]: daemon: select timeout - yielding
>Jun 6 19:25:55 icarus slapd[87577]: daemon: select: listen=8
>active_threads=1 tvp=idle
>Jun 6 19:25:55 icarus slapd[87577]: daemon: select timeout - yielding
>Jun 6 19:25:55 icarus slapd[87577]: daemon: select: listen=8
>active_threads=1 tvp=idle
>Jun 6 19:25:55 icarus slapd[87577]: daemon: select timeout - yielding
>Jun 6 19:25:55 icarus slapd[87577]: daemon: select: listen=8
>active_threads=1 tvp=idle
>
>
>
>p.s.: or maybe i should ask it in cyrus-sasl@ ?
>
>--
>Best regards,
>Alexander mailto:lan_mailing@startatom.ru