[ 
https://issues.apache.org/jira/browse/DIRSERVER-1377?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12721289#action_12721289
 ] 

Emmanuel Lecharny commented on DIRSERVER-1377:
----------------------------------------------

Ok, it seems that the problem comes from the way we manage AVLTree and store 
them in the JDBM backend : serialization and deserialization are done *before* 
the data are stored or retreived from JDBM. JDBM stores and return a reference 
to an Object, and in this case, it will be a byte[]. Obvioulsy, this reference 
can be modified while we are deserializing it if another thread is modifying it.

We just have to declare the de/serializer to be JDBM de/serializer, the way we 
did for ServerEntry, and attach those de/serializer to the JDBMTable.



> Potential concurrency issue when adding/modifying/deleting entries at a high 
> rate
> ---------------------------------------------------------------------------------
>
>                 Key: DIRSERVER-1377
>                 URL: https://issues.apache.org/jira/browse/DIRSERVER-1377
>             Project: Directory ApacheDS
>          Issue Type: Bug
>    Affects Versions: 1.5.4
>            Reporter: Emmanuel Lecharny
>            Priority: Blocker
>             Fix For: 1.5.5
>
>
> When adding/deleting entries with many clients (a client add and delete an 
> entry many times), we may have some concurrency problem, as the index are 
> updated without concurrent acces protection.
> Synchronizing the classes where we update the index might help.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to