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 18:49:59 GMT

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

Jonathan Gray updated HBASE-1927:

    Attachment: HBASE-1927-v1-trunk.patch

Patch didn't apply cleanly to trunk, just want to run local tests before committing.

> 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-trunk.patch, 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.

View raw message