You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geode.apache.org by Darrel Schneider <ds...@pivotal.io> on 2015/09/30 00:47:18 UTC

Review Request 38866: PR put messages no longer deserialize old values early

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/38866/
-----------------------------------------------------------

Review request for geode, Kirk Lund and Dan Smith.


Bugs: GEODE-324
    https://issues.apache.org/jira/browse/GEODE-324


Repository: geode


Description
-------

When a PR put returns the old value our internal messages were deserializing the values before we get back to the user thread that initiated the operation. If thread local class loader is used for the class we need to find during deserialization then the early deserialization will fail.

Now the deserialization is delayed until the serialized old value gets through our messaging layer and back to the thread that performed the pr put.

Added junit tests that verify that both PutReplyMessage classes no longer deserialize their old value.


Diffs
-----

  gemfire-core/src/main/java/com/gemstone/gemfire/DataSerializer.java 8f977d8a9625ebde003f08bbb1df02cd120ad77c 
  gemfire-core/src/main/java/com/gemstone/gemfire/internal/InternalDataSerializer.java 87ab28d38fe5ece8dab2617dc304de7fb3b42b01 
  gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/DistributedCacheOperation.java 692595cb835fce8c0a244073c20046e07894110c 
  gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/RemotePutMessage.java 3f5efeb5da4f0aeacde2e59082aab3d0f30d6775 
  gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/partitioned/PutMessage.java 1f7b08e7dbed9180cb0ed73992feb3485009a6ad 
  gemfire-core/src/main/java/com/gemstone/gemfire/internal/offheap/OffHeapCachedDeserializable.java 764a051b9ae0243f1b9e235bf18d4aa0f6770c0a 
  gemfire-core/src/main/java/com/gemstone/gemfire/internal/offheap/SimpleMemoryAllocatorImpl.java 7cf165644ce03859670cc1a4c80484c31e9cdfcd 
  gemfire-core/src/main/java/com/gemstone/gemfire/internal/offheap/StoredObject.java 8f179ae46d83ae4b4acb207029a8a89599357ae3 
  gemfire-core/src/test/java/com/gemstone/gemfire/internal/cache/OldValueImporterTestBase.java PRE-CREATION 
  gemfire-core/src/test/java/com/gemstone/gemfire/internal/cache/RemotePutReplyMessageJUnitTest.java PRE-CREATION 
  gemfire-core/src/test/java/com/gemstone/gemfire/internal/cache/partitioned/PutPutReplyMessageJUnitTest.java PRE-CREATION 
  gemfire-core/src/test/java/com/gemstone/gemfire/internal/offheap/OffHeapWriteObjectAsByteArrayJUnitTest.java PRE-CREATION 
  gemfire-core/src/test/java/com/gemstone/gemfire/pdx/ByteSourceJUnitTest.java 0ef1bed199f0c137c4282182f704c729fa76600f 

Diff: https://reviews.apache.org/r/38866/diff/


Testing
-------

precheckin


Thanks,

Darrel Schneider


Re: Review Request 38866: PR put messages no longer deserialize old values early

Posted by Kirk Lund <ki...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/38866/#review101670
-----------------------------------------------------------

Ship it!


Ship It!

- Kirk Lund


On Sept. 29, 2015, 10:47 p.m., Darrel Schneider wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/38866/
> -----------------------------------------------------------
> 
> (Updated Sept. 29, 2015, 10:47 p.m.)
> 
> 
> Review request for geode, Kirk Lund and Dan Smith.
> 
> 
> Bugs: GEODE-324
>     https://issues.apache.org/jira/browse/GEODE-324
> 
> 
> Repository: geode
> 
> 
> Description
> -------
> 
> When a PR put returns the old value our internal messages were deserializing the values before we get back to the user thread that initiated the operation. If thread local class loader is used for the class we need to find during deserialization then the early deserialization will fail.
> 
> Now the deserialization is delayed until the serialized old value gets through our messaging layer and back to the thread that performed the pr put.
> 
> Added junit tests that verify that both PutReplyMessage classes no longer deserialize their old value.
> 
> 
> Diffs
> -----
> 
>   gemfire-core/src/main/java/com/gemstone/gemfire/DataSerializer.java 8f977d8a9625ebde003f08bbb1df02cd120ad77c 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/InternalDataSerializer.java 87ab28d38fe5ece8dab2617dc304de7fb3b42b01 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/DistributedCacheOperation.java 692595cb835fce8c0a244073c20046e07894110c 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/RemotePutMessage.java 3f5efeb5da4f0aeacde2e59082aab3d0f30d6775 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/partitioned/PutMessage.java 1f7b08e7dbed9180cb0ed73992feb3485009a6ad 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/offheap/OffHeapCachedDeserializable.java 764a051b9ae0243f1b9e235bf18d4aa0f6770c0a 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/offheap/SimpleMemoryAllocatorImpl.java 7cf165644ce03859670cc1a4c80484c31e9cdfcd 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/offheap/StoredObject.java 8f179ae46d83ae4b4acb207029a8a89599357ae3 
>   gemfire-core/src/test/java/com/gemstone/gemfire/internal/cache/OldValueImporterTestBase.java PRE-CREATION 
>   gemfire-core/src/test/java/com/gemstone/gemfire/internal/cache/RemotePutReplyMessageJUnitTest.java PRE-CREATION 
>   gemfire-core/src/test/java/com/gemstone/gemfire/internal/cache/partitioned/PutPutReplyMessageJUnitTest.java PRE-CREATION 
>   gemfire-core/src/test/java/com/gemstone/gemfire/internal/offheap/OffHeapWriteObjectAsByteArrayJUnitTest.java PRE-CREATION 
>   gemfire-core/src/test/java/com/gemstone/gemfire/pdx/ByteSourceJUnitTest.java 0ef1bed199f0c137c4282182f704c729fa76600f 
> 
> Diff: https://reviews.apache.org/r/38866/diff/
> 
> 
> Testing
> -------
> 
> precheckin
> 
> 
> Thanks,
> 
> Darrel Schneider
> 
>