Uploaded image for project: 'Geode'
  1. Geode
  2. GEODE-4375

Mismatch deserialization of TxCommitMessage

    XMLWordPrintableJSON

Details

    Description

      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.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              masaki.yamakawa Masaki Yamakawa
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 1h 20m
                  1h 20m