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

Re: (ITS#5113) pcache returns incomplete results

rhafer@suse.de wrote:

> Hm, current HEAD first calls add_query, which adds the CachedQuery to the 
> cache and after that calls cache_entries to add the entries of that Query to 
> the cache. That means that query_containment already know about the Query 
> before its result is completely cached.
> In RE23 it is just the other way arround (first cache_entries() then 
> add_query()).
> I see two possible solution:
> 1. Switch back to the old behaviour. But I guess the change was made for a 
> reason. I don't know that yet. Seems the change happend between r1.95 and 
> r1.96 of pcache.c (log message: "Fix concurrency issues").
> 2. Protect the cached query with an rw_lock. Writelock it while 
> cache_entries() is executing and readlock it during searches. This would give 
> us the behaviour that Ando suggested in the discussion of ITS#5112. (pcache 
> would not try to cache the same search request mulitple times, but block the 
> second request until the first one is cached and then answer it from the 
> cache)

+1 (if there's no drawback, of course)


Ing. Pierangelo Masarati
OpenLDAP Core Team

SysNet s.r.l.
via Dossi, 8 - 27100 Pavia - ITALIA
Office:  +39 02 23998309
Mobile:  +39 333 4963172
Email:   pierangelo.masarati@sys-net.it