[ 
https://issues.apache.org/jira/browse/JCR-1078?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12522061
 ] 

Martijn Hendriks commented on JCR-1078:
---------------------------------------

I think that the following holds for a ChangeLog:

1) state \in addedStates => no deleted(state) events after the added(state) 
event.
2) state \in modifiedStated => no added(state) event and no deleted(state) 
event after the modified(state) event
3) state \in deletedStates => no added(state) event earlier

The serialization code should derive an ordering such that these properties 
hold.

> ChangeLog serialization causes cache inconsistencies
> ----------------------------------------------------
>
>                 Key: JCR-1078
>                 URL: https://issues.apache.org/jira/browse/JCR-1078
>             Project: Jackrabbit
>          Issue Type: Bug
>          Components: clustering
>    Affects Versions: 1.3
>         Environment: Clustered Jackrabbit 1.3
>            Reporter: Martijn Hendriks
>
> The ordering of actions is taken into account when a ChangeLog is built 
> through session manipulations (see, for instance,  
> ChangeLog.deleted(ItemState state)). When it is serialized in 
> ClusterNode.write(Record record, ChangeLog changeLog, EventStateCollection 
> esc), however, this implicit ordering might be changed. As a consequence,  
> the deserialization in ClusterNode.consume(Record record) might produce a 
> different ChangeLog with the effect that the local caches get out-of-sync 
> with the persistent state of the repository.
> The issue should be reproducable as follows:
> - Setup a clustered environment with two Jackrabbit instances, say A and B.
> - On instance A add a property "P" with value "x" to some node and save the 
> session.
> - On instance B read property "P" -> it will have value "x".
> - On instance A delete property P and then add it again with value "y" and 
> save the session.
> - On instance B read property "P" -> it will still have value "x" after the 
> cluster sync...

-- 
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