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

Reply via email to