[ https://issues.apache.org/jira/browse/CASSANDRA-14922?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16737552#comment-16737552 ]
Joseph Lynch edited comment on CASSANDRA-14922 at 1/8/19 9:44 PM: ------------------------------------------------------------------ {quote}The patch looks good, and I'd say [~jolynch] let's merge it, {quote} Ok, yea I agree let's merge what we have so that the unit tests can pass on trunk again and we can follow up in CASSANDRA-14969. I've put up a patch against trunk with what we have so far (including your changes from the demo branch). ||trunk|| |[0e4460b2e|https://github.com/apache/cassandra/commit/0e4460b2e0996802f02579c104b68ff165522875]| |[!https://circleci.com/gh/jolynch/cassandra/tree/CASSANDRA-14922.png?circle-token= 1102a59698d04899ec971dd36e925928f7b521f5!|https://circleci.com/gh/jolynch/cassandra/tree/CASSANDRA-14922]| If I attach a profiler during an intellij "run this test until it fails" mode I can see that the memory is indeed getting cleaned up: !MemoryReclaimedFix.png! was (Author: jolynch): {quote}The patch looks good, and I'd say [~jolynch] let's merge it, {quote} Ok, yea I agree let's merge what we have so that the unit tests can pass on trunk again and we can follow up in CASSANDRA-14969. I've put up a patch against trunk with what we have so far (including your changes from the demo branch). ||trunk|| |[d361ba9b|https://github.com/apache/cassandra/commit/d361ba9b846cf6dc9c3ef5daca7aab5a39ec8fcc]| |[!https://circleci.com/gh/jolynch/cassandra/tree/CASSANDRA-14922.png?circle-token= 1102a59698d04899ec971dd36e925928f7b521f5!|https://circleci.com/gh/jolynch/cassandra/tree/CASSANDRA-14922]| If I attach a profiler during an intellij "run this test until it fails" mode I can see that the memory is indeed getting cleaned up: !MemoryReclaimedFix.png! > In JVM dtests need to clean up after instance shutdown > ------------------------------------------------------ > > Key: CASSANDRA-14922 > URL: https://issues.apache.org/jira/browse/CASSANDRA-14922 > Project: Cassandra > Issue Type: Bug > Components: Test/dtest > Reporter: Joseph Lynch > Assignee: Joseph Lynch > Priority: Minor > Attachments: AllThreadsStopped.png, ClassLoadersRetaining.png, > Leaking_Metrics_On_Shutdown.png, MainClassRetaining.png, > MemoryReclaimedFix.png, Metaspace_Actually_Collected.png, > OnlyThreeRootsLeft.png, no_more_references.png > > > Currently the unit tests are failing on circleci ([example > one|https://circleci.com/gh/jolynch/cassandra/300#tests/containers/1], > [example > two|https://circleci.com/gh/rustyrazorblade/cassandra/44#tests/containers/1]) > because we use a small container (medium) for unit tests by default and the > in JVM dtests are leaking a few hundred megabytes of memory per test right > now. This is not a big deal because the dtest runs with the larger containers > continue to function fine as well as local testing as the number of in JVM > dtests is not yet high enough to cause a problem with more than 2GB of > available heap. However we should fix the memory leak so that going forwards > we can add more in JVM dtests without worry. > I've been working with [~ifesdjeen] to debug, and the issue appears to be > unreleased Table/Keyspace metrics (screenshot showing the leak attached). I > believe that we have a few potential issues that are leading to the leaks: > 1. The > [{{Instance::shutdown}}|https://github.com/apache/cassandra/blob/f22fec927de7ac291266660c2f34de5b8cc1c695/test/distributed/org/apache/cassandra/distributed/Instance.java#L328-L354] > method is not successfully cleaning up all the metrics created by the > {{CassandraMetricsRegistry}} > 2. The > [{{TestCluster::close}}|https://github.com/apache/cassandra/blob/f22fec927de7ac291266660c2f34de5b8cc1c695/test/distributed/org/apache/cassandra/distributed/TestCluster.java#L283] > method is not waiting for all the instances to finish shutting down and > cleaning up before continuing on > 3. I'm not sure if this is an issue assuming we clear all metrics, but > [{{TableMetrics::release}}|https://github.com/apache/cassandra/blob/4ae229f5cd270c2b43475b3f752a7b228de260ea/src/java/org/apache/cassandra/metrics/TableMetrics.java#L951] > does not release all the metric references (which could leak them) > I am working on a patch which shuts down everything and assures that we do > not leak memory. -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org