[
https://issues.apache.org/jira/browse/GEODE-4375?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
ASF GitHub Bot updated GEODE-4375:
----------------------------------
Labels: pull-request-available (was: )
> 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
> Priority: Major
> Labels: pull-request-available
> 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)