Masaki Yamakawa created GEODE-4375:
--------------------------------------
Summary: Mismatch deserialization of TxCommitMessage
Key: GEODE-4375
URL: https://issues.apache.org/jira/browse/GEODE-4375
Project: Geode
Issue Type: Bug
Components: serialization, transactions
Reporter: Masaki Yamakawa
Fix For: 1.4.0
I am migrating from GemFire 7.x to Geode. After migration, An exception is now
thrown in transaction commit. I would like to fix this problem.
There are the following three patterns as a communication of a transaction. In
this last pattern, a deserialization exception is thrown.
* CacheServer (transaction) -> CacheServer
* Client (transaction) -> CacheServer
* CacheServer via Pool (transaction) -> CacheServer
In toData of TxCommitMessage.RegionCommit.FarSideEntryOp it is decided whether
or not to serialize ShadowKey depending on whether ClientVersion exists or not.
In the case of the last pattern, it is serialized because ClientVersion exists.
In fromData case, it decides whether or not to deserialize by whether it is a
Loner or not. In the case of the last pattern, it is not Loner. As a result, a
deserialization exception is thrown.
Therefore, instead of judging by the internal status of each process, I'd like
to send a flag as to whether ShadowKey exists or not.
Note: The disadvantage is that bytes are increased slightly.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)