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:[email protected]] 
Sent: lunes, 20 de mayo de 2013 21:41
To: Jorge Perez Burgos
Cc: [email protected]
Subject: Re: (ITS#7591) back-meta modify operation not sending result to client

On 05/15/2013 08:57 AM, [email protected] 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



Reply via email to