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

(ITS#7799) Crash in servers/slapd/backover.c / Solaris



Full_Name: Marty Lee
Version: 2.4.39
OS: Solaris 10 / 11
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (81.149.129.52)


With a global overlay set, slapd is crashing in servers/slapd/backover.c at line
703, with a SEGV.

Seems someone else has seen the same issue and put an asset in there:

(703) BackendDB *be = op->o_bd, db;
      slap_callback cb = {NULL, over_back_response, NULL, NULL}, **sc;
      int rc = SLAP_CB_CONTINUE;

      /* FIXME: used to happen for instance during abandon
       * when global overlays are used... */
      assert( op->o_bd != NULL );

However, the assert is after the first use of op->o_bd, so slapd has already
crashed!

The overlay I was using globally was
  overlay         memberof
  memberof-refint true

After reading the comment above the assert, I checked my config and I am indeed
using a global overlay. When I put it into each database block instead,
everything works ok. I guess there is a more fundamental issue with global
overlays and this assert isn't actually catching the error.

I can quickly replicate the problem, so if you need me to look at anything
specific, let me know.

Maybe I've missed something that says global overlays are bad; but if so, then
I'd expect slapd to complain about it in the messages....