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

Re: slapo-nops, empty operations and slapo-accesslog



Emmanuel Dreyfus wrote:
Hello

If all the modifications are removed by slapo-nops, I end up with
op->orm_modlist == NULL. slapo-nops will attempt to cancel the
operation, with this code:
         if ((m = op->orm_modlist) == NULL) {
                 op->o_bd->bd_info = (BackendInfo *)(on->on_info);
                 send_ldap_error(op, rs, LDAP_SUCCESS, "");
                 return(rs->sr_err);
         }

But if slapo-accesslog is also configured, slapd will exit with an
assertion:
assertion "a->a_vals[0].bv_val != NULL" failed: file "schema_check.c",
line 89, function "entry_schema_check"

You need to make sure that your overlays are configured such that your nops executes before accesslog, to prevent accesslog from attempting to log anything.


Also, in your cancel code, you need to set op->o_callback to NULL before calling send_ldap_error, to make sure that no other overlays run. Then set it back to whatever it was, before returning.

--
  -- Howard Chu
  CTO, Symas Corp.           http://www.symas.com
  Director, Highland Sun     http://highlandsun.com/hyc/
  Chief Architect, OpenLDAP  http://www.openldap.org/project/