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

Reply via email to