> On April 21, 2017, 5:15 p.m., Darrel Schneider wrote: > > This fix does address one particular failure. > > Should you also make some other changes to prevent and/or detect when it > > happens in other contexts? > > One issue is the serialization of the TombstoneMessage. I think the toData > > code should be changed to detect that it was given a RegionVersionVector > > that has a mix of element types and fail with an exception thrown from > > toData. This is better than what currently happens which is we report > > corruption during fromData deserialization. > > > > The other thing not to lose track of, but that probably should be a > > seperate ticket is that VMRegionVersionVector which is strongly typed to > > only have InternalDistributedMember elements can instead have DiskStoreID > > elements. We should change the implementation to never allow a mix but to > > also not say it is always InternalDistributedMember unless we enforce that > > (like we did for DiskStoreID on the DiskRegionVersionVector class). It was > > also reported that VersionedObjectList had a similar issue as > > TombstoneMessage and that should be looked into.
The new review posted has checks in toData(). I will create a new ticket for VMRegionVersionVector changes. - anilkumar ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/58599/#review172678 ----------------------------------------------------------- On April 21, 2017, 1:03 a.m., anilkumar gingade wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/58599/ > ----------------------------------------------------------- > > (Updated April 21, 2017, 1:03 a.m.) > > > Review request for geode, Darrel Schneider, Eric Shu, and Lynn Gallinat. > > > Repository: geode > > > Description > ------- > > TombstoneMessage serialization code assumes the member info in RVV to be > either membership-id or disk-id and uses this info while de-serializing. > When there is a mix of persistent and non-persistent region in the cluster > (between nodes), the above assumption will not hold good; resulting in data > serialization exception. > > When there is a mix of persistent and non-persistent region, the version info > is always generated from the persistent member. While constructing the > tombstone message, even though there is no tombstone version generated on > non-persistent member, it was added into the tombstone message, resulting in > mixed version source, causing deserialization failure. > > > Diffs > ----- > > > geode-core/src/main/java/org/apache/geode/internal/cache/versions/RegionVersionVector.java > 2e01c00 > > geode-core/src/test/java/org/apache/geode/internal/cache/versions/TombstoneDUnitTest.java > PRE-CREATION > > > Diff: https://reviews.apache.org/r/58599/diff/1/ > > > Testing > ------- > > Manual testing. > Added new dunit test. Verified the failure without change. > precheckin in progress. > > > Thanks, > > anilkumar gingade > >