Howard Chu wrote:
Michael Ströder wrote:
> What does it mean when slapd aborts with this assertion?
>
> ------------------------------------ snip ------------------------------------
> slapd: attr.c:481: attr_merge: Assertion `( nvals == ((void *)0)&&
> (*a)->a_nvals == (*a)->a_vals ) || ( nvals != ((void *)0)&& ( (
(*a)->a_vals
> == ((void *)0)&& (*a)->a_nvals == ((void *)0) ) || ( (*a)->a_nvals !=
> (*a)->a_vals ) ) )' failed.
> Aborted
> ------------------------------------ snip ------------------------------------
>
> In the source code there is a FIXME remark. Does that remark mean the
> assertion is still not as strict as required or that the assertion might be
> too strict?
Maybe Ando remembers why he wrote FIXME there. Looking at the git log, the
original commit was actually wrong. Ando fixed it later, perhaps he just
forgot to remove the "FIXME" afterward.
We saw this assertion in a production server during processing a modify of an
entry. My co-worker said he could reproduce it. Does it mean the BDB files
were corrupt?
Ciao, Michael.