hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Erik Rozendaal (JIRA)" <j...@apache.org>
Subject [jira] Created: (HBASE-1927) Scanners not closed properly in certain circumstances (memory leak)
Date Thu, 22 Oct 2009 07:32:59 GMT
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
             Fix For: 0.20.2


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