Hi,
At the end, meta_back_op_result() will map inside the error returned by ldap_modify_ext to
LDAP_OTHER, since we don't call it with LDAP_BACK_SENDERR, nothing is sent. Since the
error is not LDAP_UNAVAILABLE there will be no retries. I think this happens too in add
and delete.
BR
-----Original Message-----
From: Pierangelo Masarati [mailto:pierangelo.masarati@polimi.it]
Sent: lunes, 20 de mayo de 2013 21:41
To: Jorge Perez Burgos
Cc: openldap-its(a)openldap.org
Subject: Re: (ITS#7591) back-meta modify operation not sending result to client
On 05/15/2013 08:57 AM, jorge.perez.burgos(a)ericsson.com wrote:
kludge fix for the problem
--- servers/slapd/back-meta/modify.c 2012-07-31 18:39:26.000000000 +0200
+++ servers/slapd/back-meta/modify.c 2013-05-14 12:45:39.273333000 +0200
@@ -176,6 +176,7 @@
}
modv[ i ] = 0;
+ rs->sr_type = -1;
retry:;
ctrls = op->o_ctrls;
rc = meta_back_controls_add( op, rs, mc, candidate, &ctrls ); @@
-198,6 +200,10 @@
}
cleanup:;
+ if (rs->sr_type != REP_RESULT) {
+ send_ldap_error(op, rs, LDAP_OTHER, "connection problem trying to reach the other
node");
+ }
+
(void)mi->mi_ldap_extra->controls_free( op, rs, &ctrls );
if ( mdn.bv_val != op->o_req_dn.bv_val ) {
Thanks for the feedback; I am under the impression that a result should have been returned
by meta_back_op_result(). Before applying the suggested fix, I would like to understand
whether that function was called and in case why it did not send a result.
p.
--
Pierangelo Masarati
Associate Professor
Dipartimento di Ingegneria Aerospaziale
Politecnico di Milano