[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: (ITS#6103) canceled operations do not respond
- To: openldap-its@OpenLDAP.org
- Subject: Re: (ITS#6103) canceled operations do not respond
- From: hyc@symas.com
- Date: Mon, 11 May 2009 02:31:43 GMT
- Auto-submitted: auto-generated (OpenLDAP-ITS)
Hallvard B Furuseth wrote:
> Howard Chu writes:
>> The tooLate reply is correct; back-null doesn't ever check for
>> cancel/abandon therefore the operation is *not* successfully
>> canceled. Likewise, back-bdb/hdb only checks in Delete if there is a
>> transaction retry.
>
> No difference if I use back-ldif, which does check for abandon.
>
>> The lack of reply from the original op - that's a simple oversight.
>> send_ldap_ber() checks for op->o_abandon and returns silently if it's set. I
>> guess we need to also check for o_cancel to let it proceed.
>
> The operation does not reach send_ldap_ber(). To verify, I temporarily
> inserted assert(!op->o_abandon) just before send_ldap_ber()'s o_abandon
> test. send_ldap_response() notices both o_abandon and SLAPD_ABANDON,
> and skips to the cleanup code in either case.
>
> Also, backend operations that do return SLAPD_ABANDON - at least Search
> in backglue and BDB - may do so without calling send_ldap_response() at
> all. Pierangelo made partial fixes in ITS#4645. See also ITS#6059,
> which I may have misunderstood somewhat. (Sorry, Rein.)
>
> Maybe o_abandon should only mean that:
> - (a) the backend has been asked to abandon the operation,
> - (b) slapd must check and react to o_cancel,
> - (c) if not o_cancel, send_ldap_ber() need not send.
>
The test case with delete / back-ldif now works in HEAD. backglue and back-bdb
should be OK now as well.
--
-- Howard Chu
CTO, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc/
Chief Architect, OpenLDAP http://www.openldap.org/project/