[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openldap-devel
Subject:    Re: commit: ldap/servers/slapd/back-bdb proto-bdb.h search.c
From:       Howard Chu <hyc () symas ! com>
Date:       2004-06-22 22:57:43
Message-ID: 40D8B967.4060706 () symas ! com
[Download RAW message or body]

jongchoi@OpenLDAP.org wrote:

> Update of /repo/OpenLDAP/pkg/ldap/servers/slapd/back-bdb
> 
> Modified Files:
> 	proto-bdb.h  1.102 -> 1.103
> 	search.c  1.197 -> 1.198
> 
> Log Message:
> patch for ITS#3173
> - passing transaction ptr to psearch

There are other issues in this code now as well. "sop" is a shared 
resource, many operations may be generating psearch results 
simultaneously. It was intended to be read-only, but there are now 
several places in search.c that cause fields in sop to be modified. sop 
now either needs to be locked, or a local copy needs to be made. 
(Probably the latter is best.)

Also, all of the slap_build_XXX_ctrl functions need to use an explicit 
op->o_tmpmemctx, (i.e., the tmpmemctx from the currently running 
operation) not the tmpmemctx in sop. Again, since sop is shared and the 
sl_mem functions assume that only one thread has access to the 
tmpmemctx, this will get corrupted.

I suspect that the "locker" needs to come from the op->o_private as 
well, when present; otherwise certain entrycache DB locks could deadlock.
-- 
   -- Howard Chu
   Chief Architect, Symas Corp.       Director, Highland Sun
   http://www.symas.com               http://highlandsun.com/hyc
   Symas: Premier OpenSource Development and Support
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic