hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jonathan Gray (JIRA)" <j...@apache.org>
Subject [jira] Updated: (HBASE-1927) Scanners not closed properly in certain circumstances (memory leak)
Date Thu, 22 Oct 2009 17:14:59 GMT

     [ https://issues.apache.org/jira/browse/HBASE-1927?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Jonathan Gray updated HBASE-1927:
---------------------------------

    Status: Patch Available  (was: Open)

> Scanners not closed properly in certain circumstances (memory leak)
> -------------------------------------------------------------------
>
>                 Key: HBASE-1927
>                 URL: https://issues.apache.org/jira/browse/HBASE-1927
>             Project: Hadoop HBase
>          Issue Type: Bug
>          Components: regionserver
>    Affects Versions: 0.20.1
>            Reporter: Erik Rozendaal
>            Assignee: Jonathan Gray
>             Fix For: 0.20.2, 0.21.0
>
>         Attachments: HBASE-1927-v1.patch
>
>
> Scanners are sometimes leaked by the KeyValueHeap class. The constructor adds each scanner
to a heap, but only if the scanner's peek() method returns not null (line 58). Otherwise the
scanner is dropped without being closed.
> Unfortunately some scanners (like StoreScanner and MemStoreScanner) register themselves
to some global list when constructed and only deregister on close(). This can cause a memory
leak, for example with MemStoreScanners on an empty memory store.
> The quick fix is to add an else clause to the if on line 58:
> } else {
>   scanner.close()
> }
> The root cause is that ownership of the scanners is transferred from the caller to the
KeyValueHeap on construction. Maybe this should be made clear in the documentation or changed.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message