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.