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

Re: ITS#7239: testbed

masarati@aero.polimi.it wrote:
>> This is a cryptographically signed message in MIME format.
>> --------------ms020801020604080509050502
>> Content-Type: text/plain; charset=ISO-8859-15
>> Content-Transfer-Encoding: quoted-printable
>> masarati@aero.polimi.it wrote:
>>> =20
>>> The attachment is unreadable; can you ftp it somewhere?  Thanks, p.
>> http://www.stroeder.com/temp/openldap-testbed-its7239.tar.bz2
> Thanks.  The explanation is always simple, after one finds it.  The DN of
> accesslog entries is generated using the reqStart AVA.  When logops all
> and internal operations take place, multiple entries are generated with
> the same reqStart AVA.  So an internal search which is logged because of
> some overlay eats up the DN of the modrdn, and be_add() called by
> slapo-accesslog(5) fails because the entry already exists.
> Although logging internal entries could be of some use, I see two solutions:
> - modify the value of reqStart (e.g. instead of using o_tincr for the
> fractional part of the timestamp, we could use an incremental counter
> initialized with o_tincr and incremented at each logging within the same
> operation.  The counter could be stored somewhere in the operation
> structure (e.g. in o_extra)
> - prevent logging of internal ops; again, this could be achieved by
> setting a dedicated o_internal_op field in the Operation structure.
> Since this modification could be intrusive, I'd like to gather some
> comments before proceeding with a fix.

Hm, we've run into this similar problem before with syncprov and introduced 
op->o_dont_replicate. As a general rule, accesslog is meant to log user 
operations, not internal operations. Currently accesslog checks 
(op->o_dont_replicate && op->orm_no_opattrs) to skip logging of write ops. I 
guess we need a more general flag instead.

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