Running a bdb backend and sync replication, I was getting a core dump on the consumer whenever there was a modify or delete on the producer (though NOT on add). I traced it to the lack of a "searchbase" entry in the consumer's slapd.conf - adding searchbase="" seems to have fixed the problem. (Happened with db 2.2.52.4)
Looks like line 611 of backend.c (in 2.3.21) is the culprit:
if ( strcmp( be->be_nsuffix[j].bv_val,
&dn->bv_val[dnlen-len] ) == 0 )
Can anyone reproduce this? Seems like the kind of thing the config parser should check for - core dumps are so unfriendly.