> On June 1, 2016, 5:40 p.m., Hitesh Khamesra wrote:
> > geode-core/src/main/java/com/gemstone/gemfire/internal/HeapDataOutputStream.java,
> >  line 373
> > <https://reviews.apache.org/r/48095/diff/1/?file=1402773#file1402773line373>
> >
> >     We were doing this.chunks = null, so jvm should claim chunks no?, I am 
> > missing something here..
> 
> Bruce Schuchardt wrote:
>     A user wants us to clear the chunks list to aid in GC.  Their client JVM 
> threw an OOME and had two of these lists consuming most of the heap, though 
> there were no references to them.
> 
> Hitesh Khamesra wrote:
>     Just browse client code and it seems we are calling clear method from 
> multiple places. May be we should call from "AbstractOp" after reading the 
> whole message.

After reading the Message it holds Parts that the command classes need to 
access to deserialize the message components.  We can't clear it out until all 
of the components have been read.  Currently server-side clearing is done just 
before filling the Message with new contents in read().

It might be an improvement to null out the entries in the Part array in Message 
though.


- Bruce


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


On May 31, 2016, 10:15 p.m., Bruce Schuchardt wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/48095/
> -----------------------------------------------------------
> 
> (Updated May 31, 2016, 10:15 p.m.)
> 
> 
> Review request for geode, Hitesh Khamesra and Udo Kohlmeyer.
> 
> 
> Bugs: GEODE-1468
>     https://issues.apache.org/jira/browse/GEODE-1468
> 
> 
> Repository: geode
> 
> 
> Description
> -------
> 
> After a Message has been sent we invoke clear() on each Part contained by the 
> Message.  This was nulling out the "part" variable of the Part objects but if 
> one of these "parts" was a HeapDataOutputStream it might hold a list of large 
> buffers.  This change set alters Part to close these streams so that their 
> buffers can be cleared.
> 
> 
> Diffs
> -----
> 
>   
> geode-core/src/main/java/com/gemstone/gemfire/internal/HeapDataOutputStream.java
>  20d01da880f2786a01ee4d4bd64681cd646acd31 
>   
> geode-core/src/main/java/com/gemstone/gemfire/internal/cache/tier/sockets/Message.java
>  a011875d4ea9aa9a14ac96e568fe6bba464bca89 
>   
> geode-core/src/main/java/com/gemstone/gemfire/internal/cache/tier/sockets/Part.java
>  bf90fab4999ce96adced9574678605d2bf8a903a 
>   
> geode-core/src/test/java/com/gemstone/gemfire/internal/cache/tier/sockets/MessageJUnitTest.java
>  9f05aa7a0ae0d433ff9675a5fbcffc9c98ce8e7b 
> 
> Diff: https://reviews.apache.org/r/48095/diff/
> 
> 
> Testing
> -------
> 
> New test, precheckin
> 
> 
> Thanks,
> 
> Bruce Schuchardt
> 
>

Reply via email to