From: Howard Chu Date: Tue, 16 Sep 2003 03:57:24 +0000 (+0000) Subject: ITS#2649 don't defer Abandon requests X-Git-Tag: OPENLDAP_REL_ENG_2_1_23~25 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8f68a6cc314ff6b607af72fd57bdcee117ed9f6e;p=thirdparty%2Fopenldap.git ITS#2649 don't defer Abandon requests --- diff --git a/CHANGES b/CHANGES index d6dbaf16df..96fc5500a6 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,7 @@ OpenLDAP 2.1 Change Log OpenLDAP 2.1.23 Engineering Fixed ldappasswd -y handling bug (ITS#2696) + Fixed slapd deferring Abandon (ITS#2649) Added replica uri keyword (ITS#2594) Added replica-pidfile, replica-argsfile keywords Fixed portability issue in ldapsasl (ITS#2691) diff --git a/servers/slapd/connection.c b/servers/slapd/connection.c index b4ff8af87b..d91d42da1a 100644 --- a/servers/slapd/connection.c +++ b/servers/slapd/connection.c @@ -1475,12 +1475,14 @@ connection_input( * use up all the available threads, and don't execute if we're * currently blocked on output. And don't execute if there are * already pending ops, let them go first. + * + * But always allow Abandon through; it won't cost much. */ - if ( conn->c_conn_state == SLAP_C_BINDING + if ( tag != LDAP_REQ_ABANDON && (conn->c_conn_state == SLAP_C_BINDING || conn->c_conn_state == SLAP_C_CLOSING || conn->c_n_ops_executing >= connection_pool_max/2 || conn->c_n_ops_pending - || conn->c_writewaiter) + || conn->c_writewaiter)) { int max = conn->c_dn.bv_len ? slap_conn_max_pending_auth : slap_conn_max_pending;