directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Emmanuel Lecharny (JIRA)" <>
Subject [jira] [Commented] (DIRSERVER-2049) Queries interrupted with delete/add operations
Date Sat, 07 Feb 2015 07:44:34 GMT


Emmanuel Lecharny commented on DIRSERVER-2049:


The pb here is that the search request uses an index which get modified while being used.
We have tried to protect such request from concurrent modification by adding locks, but it's
a very heavy weight 'solution' (so heavy that it's not really a solution). Actually, what
we do is that we build a set of candidates (which is just a list of UUIDs) and we iterate
over it to check if this list is valid or not. Constructing this list is fast, and we can
do it using a lock too, but this lock will be hold for a shortest period of time. Then, we
have to check that each entry we pull from the server exists.

Seems like we are missing a step here, and we need to check either the lock or the way we
fetch the entry.

OTOH, those are just workarounds, and we are expecting to get rid of the lock and the check
with the new Backend (Mavibot) which is a MVCC btree : you will always have access to the
data, whatever changes occurs after the search is started - even if those data are not anymore
up to date -

> Queries interrupted with delete/add operations
> ----------------------------------------------
>                 Key: DIRSERVER-2049
>                 URL:
>             Project: Directory ApacheDS
>          Issue Type: Bug
>    Affects Versions: 2.0.0-M19
>         Environment: RHEL6 / Java jdk1.7.0_55
>            Reporter: David Foust
> We were testing ApacheDS again here in our organization since DIRSERVER-1992 was resolved.
I'm finding that with 10000 people entries, if I perform the following in order my query fails:
> 1. Query all objectClass=person
> 2. (while query is still running) - Delete any single person
> 3. (while query is still running) - Recreate same entry
> 4. Query will stop, error reports:
> 02:50:37 PM: List failed
> Root error: [LDAP: error code 80 - OTHER: failed for MessageType : SEARCH_REQUEST
> Message ID : 5
> The delete and add operation performs as expected. The query works as expected if the
del/add operation doesn't happen before it is finished.

This message was sent by Atlassian JIRA

View raw message