[ https://issues.apache.org/jira/browse/JCRRMI-28?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jens Theess updated JCRRMI-28: ------------------------------ Attachment: RMI-Test.zip > Leaking ServerEvent objects after RMI connection loss > ----------------------------------------------------- > > Key: JCRRMI-28 > URL: https://issues.apache.org/jira/browse/JCRRMI-28 > Project: Jackrabbit JCR-RMI > Issue Type: Bug > Affects Versions: 1.6.0, 2.1.0 > Environment: Windows 7 Pro x64 > 32Bit Java VM > java version "1.6.0_20" > Java(TM) SE Runtime Environment (build 1.6.0_20-b02) > Java HotSpot(TM) Client VM (build 16.3-b01, mixed mode, sharing) > Reporter: Jens Theess > Attachments: RMI-Test.zip > > > When an RMI connection is crashes, or the client is terminated without > calling "session.logout()", the server leaks > ServerEventCollection$ServerEvent objects. > Attached is a zip with two java programs that demonstrate the behaviour. > Steps to reproduce: > * Open a cmd shell > * cd jcrserver > * mvn compile > * SET MAVEN_OPTS=-Djava.rmi.dgc.leaseValue=10000 && mvn exec:java > -Dexec.mainClass=RMIServer > * Open another cmd shell > * cd jcrrmiclient > * mvn compile > * mvn exec:java -Dexec.mainClass=RMIClient > Watch the heap: > * Start VisualVM (you'll need the VisualVM-Sampler plugin) > * Go to the RMIServer process. > * Open the "Sampler" tab and sample "Memory". > * In the filter enter "ServerEvent". > You'll now see the number of ServerEvents (also _Stub and _Skel) steadily > increasing. > * Quit the RMIClient using Ctrl-C. > The number of ServerEvents is still increasing, even after the RMI lease time > expires. > If, instead of being killed, the client calls "session.logout()", the server > stops producing new ServerEvent instances. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.