[email protected] wrote: > 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.
This explanation makes no sense, since meta_back_op_result is being called with LDAP_BACK_SENDRESULT, which is SENDOK|SENDERR. The bug is definitely a problem, I can reproduce it running test036 repeatedly on my laptop. Typically the test hangs within 5-10 iterations. > 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. > -- -- Howard Chu CTO, Symas Corp. http://www.symas.com Director, Highland Sun http://highlandsun.com/hyc/ Chief Architect, OpenLDAP http://www.openldap.org/project/
