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