[ https://issues.apache.org/jira/browse/HBASE-17118?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15682322#comment-15682322 ]
binlijin commented on HBASE-17118: ---------------------------------- [~yuzhih...@gmail.com] Thank you very much! > StoreScanner leaked in KeyValueHeap > ----------------------------------- > > Key: HBASE-17118 > URL: https://issues.apache.org/jira/browse/HBASE-17118 > Project: HBase > Issue Type: Bug > Affects Versions: 2.0.0 > Reporter: binlijin > Assignee: binlijin > Fix For: 2.0.0, 1.4.0 > > Attachments: HBASE-17118-master_v1.patch, > HBASE-17118-master_v2.patch, HBASE-17118-master_v3.patch, > HBASE-17118-master_v4.patch, HBASE-17118-master_v5.patch, > HBASE-17118.branch-1.v1.patch, 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 chance to close, so will cause the > scanner leak. -- This message was sent by Atlassian JIRA (v6.3.4#6332)