[ https://issues.apache.org/jira/browse/HBASE-17118?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
binlijin updated HBASE-17118: ----------------------------- Attachment: StoreScannerLeakHeap.png StoreScanner.png > StoreScanner leaked in KeyValueHeap > ----------------------------------- > > Key: HBASE-17118 > URL: https://issues.apache.org/jira/browse/HBASE-17118 > Project: HBase > Issue Type: Bug > Reporter: binlijin > Attachments: StoreScanner.png, StoreScannerLeakHeap.png > > > KeyValueHeap#generalizedSeek > KeyValueScanner scanner = current; > while (scanner != null) { > Cell topKey = scanner.peek(); > ...... > boolean seekResult; > if (isLazy && heap.size() > 0) { > // If there is only one scanner left, we don't do lazy seek. > seekResult = scanner.requestSeek(seekKey, forward, useBloom); > } else { > seekResult = NonLazyKeyValueScanner.doRealSeek(scanner, seekKey, > forward); > } > ...... > scanner = heap.poll(); > } > (1) scanner = heap.poll(); Retrieves and removes the head of this queue > (2) scanner.requestSeek(seekKey, forward, useBloom); or > NonLazyKeyValueScanner.doRealSeek(scanner, seekKey, forward); > throw exception, and scanner will have no change to close, so will cause the > scanner leak. -- This message was sent by Atlassian JIRA (v6.3.4#6332)