> 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.
> 
> Bruce Schuchardt wrote:
>     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.
> 
> Hitesh Khamesra wrote:
>     Server side, we are calling in ServerConnetcion.DoNormalMsg's finally 
> block, this looks fine. But at client side, I see it get called from multiple 
> places.

client-side clears the parts right after transmitting the message, in 
Message.sendBytes(), so I think the client side is also fine


- 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