directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Selcuk Aya (JIRA)" <>
Subject [jira] [Commented] (DIRSERVER-1655) Possible incorrect insertion of modifications in the consumer log
Date Thu, 08 Sep 2011 11:23:09 GMT


Selcuk Aya commented on DIRSERVER-1655:

Have thought about this issue a little bit more after discussing it. The gist of it is that
we do not insert the updates to the consumer log in CSN order and this might cause updates
to be skipped when sending them to consumer. Inserting the modification to the consumer log
using the same thread is not enough to solve this problem because the CSN for a modification
seems to be gotten without any synchronization with regard to insertion into the consumer
log. So if two threads update two different entries at CSN 9 and CSN 10 for example, these
two modifications can be inserted into the consumer log in any order. 

I think, for now, the solution would be to guarantee an execution order like this using a
log lock:
 notify replicationeventlistener for the modification before the csn is gotten and modification
is done -> replicationeventlistener gets a lock for the log
get CSN
do the modification
 notify replicationeventlistener after modification ->replication event listener inserts
into the log and releases the log lock.

> Possible incorrect insertion of modifications in the consumer log
> -----------------------------------------------------------------
>                 Key: DIRSERVER-1655
>                 URL:
>             Project: Directory ApacheDS
>          Issue Type: Bug
>    Affects Versions: 2.0.0-M2
>            Reporter: Emmanuel Lecharny
>            Priority: Critical
>             Fix For: 2.0.0-M4
> The way we process modifications in the EventInterceptor, creating a new thread, make
it possible that the modifications may be inserted into a consumer log in the wrong order.
> A possoble solution could be to use the same thread to insert modifications in the log.

This message is automatically generated by JIRA.
For more information on JIRA, see:


View raw message