[
https://issues.apache.org/jira/browse/CASSANDRA-6047?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jonathan Ellis updated CASSANDRA-6047:
--------------------------------------
Reviewer: jbellis
Component/s: Core
Priority: Minor (was: Major)
Fix Version/s: 1.2.10
Assignee: Yuki Morishita
> Memory leak when using snapshot repairs
> ---------------------------------------
>
> Key: CASSANDRA-6047
> URL: https://issues.apache.org/jira/browse/CASSANDRA-6047
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Reporter: J.B. Langston
> Assignee: Yuki Morishita
> Priority: Minor
> Fix For: 1.2.10
>
>
> Running nodetool repair repeatedly with the -snapshot parameter results in a
> native memory leak. The JVM process will take up more and more physical
> memory until it is killed by the Linux OOM killer.
> The command used was as follows:
> nodetool repair keyspace -local -snapshot -pr -st start_token -et end_token
> Removing the -snapshot flag prevented the memory leak. The subrange repair
> necessitated multiple repairs, so it made the problem noticeable, but I
> believe the problem would be reproducible even if you ran repair repeatedly
> without specifying a start and end token.
> Notes from [~yukim]:
> Probably the cause is too many snapshots. Snapshot sstables are opened during
> validation, but memories used are freed when releaseReferences called. But
> since snapshots never get marked compacted, memories never freed.
> We only cleanup mmap'd memories when sstable is mark compacted.
> https://github.com/apache/cassandra/blob/cassandra-1.2/src/java/org/apache/cassandra/io/sstable/SSTableReader.java#L974
> Validation compaction never marks snapshots compacted.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira