gaussianrecurrence opened a new pull request #806:
URL: https://github.com/apache/geode-native/pull/806
- In scenarios where an PdxInstance is obtained and later used, it
might happen a coredump if the PdxTypeRegistry is cleaned up after the
PdxInstance is obtained. This happens on those scenarios where
redundancy is completly lost.
- This change refactors PdxInstance handling so in all cases, the PdxType
used is the one owned by the PdxInstance.
Whenever the PdxInstance is to be written, a check is executed to
ensure the cluster is aware of the PdxType and if not, register it.
- Removed PdxInstance serialization retries, as with the new approach
is not needed anymore.
- Removed UnknownPdxTypeException exception. Instead whenever a PdxType
is requested and not present, an IllegalStateException exception is
thrown, as it happens in the Java client.
- Now PdxInstance is not serialized whenever created. Instead, it's PDX
byte stream is generated on-demand. Note that the PdxInstance will be
serialized before being put into a server, as it was done before this
change.
- Fixed TcrMessage deserialization whenever a PdxType is requested by
its ID and no PdxType was found.
- Fixed incPdxInstanceCreations so it's incremented strictly whenver a
PdxInstance is created, and not whenever a PdxInstance is
deserialized.
- Fixed IT PdxTypeRegistry cleanupOnClusterRestart logic and renamed to
cleanupOnClusterRestartAndPut. This test was supposed to verify that
if a PdxInstance is created, and after that the cluster is restarted,
there is no coredump while writting it to a region. Instead it was
creating a PdxInstance before and after the cluster, but it has been
fixed to work as initially intended.
- Created a new IT PdxTypeRegistry cleanupOnClusterRestartAndFetchFields
to verify the issue described in the first bullet is not causing a
coredump.
- Removed old IT testThinClientPdxInstance TS as there is a equivalent new
IT TS named PdxInstanceTest.
- Fixed some ITs to work accordingly the the new code.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]