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

Re: (ITS#7987) SIGSEGV in LMDB while adding ldap-entries



Previously noted (2) and (3) was caused by following patch.
It is a trial from Howard Chu for workout on ITS#7968 ;)

Under a heavy load of add/delete it may induce "DN index delete failed" 
in the mdb backend.

> Message-ID: <5440D299.60208@symas.com>
> Date: Fri, 17 Oct 2014 09:26:01 +0100
> From: Howard Chu <hyc@symas.com>
>
> Can you try this patch and followup again?
>
>> diff --git a/servers/slapd/overlays/syncprov.c 
>> b/servers/slapd/overlays/syncprov.c
>> index e15020e..b54c83f 100644
>> --- a/servers/slapd/overlays/syncprov.c
>> +++ b/servers/slapd/overlays/syncprov.c
>> @@ -1306,11 +1306,12 @@ syncprov_matchops( Operation *op, opcookie 
>> *opc, int saveit )
>>                         op2.o_hdr = &oh;
>>                         op2.o_extra = op->o_extra;
>>                         op2.o_callback = NULL;
>> -                       if (ss->s_flags & PS_FIX_FILTER) {
>> +                       if ((ss->s_flags & PS_FIX_FILTER)
>> +                               && op2.ors_filter->f_choice == 
>> LDAP_FILTER_AND) {
>>                                 /* Skip the AND/GE clause that we 
>> stuck on in front. We
>>                                    would lose deletes/mods that 
>> happen during the refresh
>>                                    phase otherwise (ITS#6555) */
>> -                               op2.ors_filter = 
>> ss->s_op->ors_filter->f_and->f_next;
>> +                               op2.ors_filter = 
>> op2.ors_filter->f_and->f_next;
>>                         }
>>                         ldap_pvt_thread_mutex_unlock( &ss->s_mutex );
>>                         rc = test_filter( &op2, e, op2.ors_filter );