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

Re: (ITS#7062) writes from lost connections not increasing contextCSN



ebackes@symas.com wrote:
> Full_Name: Emily Backes
> Version: 2.4.26
> OS: any
> URL:
> Submission from: (NULL) (75.244.124.114)
>
>
> If a client connects and writes, e.g. ADDs entries, then disconnects
> before seeing the result, the writes are stored in the database but do
> not increment contextCSN.

This is an obvious consequence of the fact that checks for abandoned ops are 
performed before any response callbacks are invoked. The main op might have 
completed but no overlay code will run, so syncprov never gets a chance to 
update itself. (See result.c send_ldap_response())

The fix is less obvious. Probably we should only bypass the callbacks if 
rs->sr_err == SLAPD_ABANDON, meaning that the operation itself was actually 
aborted.

-- 
   -- Howard Chu
   CTO, Symas Corp.           http://www.symas.com
   Director, Highland Sun     http://highlandsun.com/hyc/
   Chief Architect, OpenLDAP  http://www.openldap.org/project/