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

Re: (ITS#4088) hdb deadlock between syncrepl/slapcat



Aaron Richton wrote:
>> Unfortunately BDB doesn't record process or thread IDs with locker IDs
>> so there's no quick way to find the culprit.
>>     
>
> Well, I was able to repro this:
>
> 0. pkill slapd
> 1. rm [dataDir]/*db*
> 2. slapd
> [...now syncrepl has a lot of work to do...]
> 3. while sleep 2;slapcat;done &
>
> I can think of no rationale why/how one of the slapcats would have
> experienced any sort of abnormal termination.
>
> Does LDAP_DEVEL/-d -1/etc. have sufficient information on lock ids to
> track this down? Alternately, I can throw a debugger watchpoint, if you
> think that might help.
>   

OK, never mind. Actually for back-hdb there may be two cursors open at 
once in slapcat, which does open the possibility for deadlock. That 
probably means that we have to use a read transaction here to wrap all 
of the steps, or find a way to eliminate the second cursor. I'll have to 
think about this for a while.

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