[Date Prev][Date Next] [Chronological] [Thread] [Top]

RE: (ITS#7591) back-meta modify operation not sending result to client



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@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@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