You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Vijay (JIRA)" <ji...@apache.org> on 2013/06/08 18:50:20 UTC

[jira] [Comment Edited] (CASSANDRA-5624) Memory leak in SerializingCache

    [ https://issues.apache.org/jira/browse/CASSANDRA-5624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13678763#comment-13678763 ] 

Vijay edited comment on CASSANDRA-5624 at 6/8/13 4:49 PM:
----------------------------------------------------------

Just started looking, One thing which i noticed immediately is that unreference can be called twice.... 
{code}
    public void remove(K key)
    {
        RefCountedMemory mem = map.remove(key);
        if (mem != null)
            mem.unreference();
    }
{code}

remove then calls onEviction, same with put and replace.... above is not an issue in real world, but the code which detect might not be accurate because of this...
                
      was (Author: vijay2win@yahoo.com):
    Just started looking, One thing which i noticed immediately is that unreference can be called twice.... 
{code}
    public void remove(K key)
    {
        RefCountedMemory mem = map.remove(key);
        if (mem != null)
            mem.unreference();
    }
{code}

remove then calls onEviction
                  
> Memory leak in SerializingCache
> -------------------------------
>
>                 Key: CASSANDRA-5624
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-5624
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 1.1.1
>            Reporter: Jonathan Ellis
>            Assignee: Ryan McGuire
>
> A customer reported a memory leak when off-heap row cache is enabled.
> I gave them a patch against 1.1.9 to troubleshoot (https://github.com/jbellis/cassandra/commits/row-cache-finalizer).  This confirms that row cache is responsible.  Here is a sample of the log:
> {noformat}
> DEBUG [Finalizer] 2013-06-08 06:49:58,656 FreeableMemory.java (line 69) Unreachable memory still has nonzero refcount 1
> DEBUG [Finalizer] 2013-06-08 06:49:58,656 FreeableMemory.java (line 71) Unreachable memory 140337996747792 has not been freed (will free now)
> DEBUG [Finalizer] 2013-06-08 06:49:58,656 FreeableMemory.java (line 69) Unreachable memory still has nonzero refcount 1
> DEBUG [Finalizer] 2013-06-08 06:49:58,656 FreeableMemory.java (line 71) Unreachable memory 140337989287984 has not been freed (will free now)
> {noformat}
> That is, memory is not being freed because we never got to zero references.

--
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