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.