[ https://issues.apache.org/jira/browse/HBASE-17118?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15720536#comment-15720536 ]
Nick Dimiduk commented on HBASE-17118: -------------------------------------- Has this this landed everywhere? Ready to close? > StoreScanner leaked in KeyValueHeap > ----------------------------------- > > Key: HBASE-17118 > URL: https://issues.apache.org/jira/browse/HBASE-17118 > Project: HBase > Issue Type: Bug > Affects Versions: 1.1.7, 1.2.4 > Reporter: binlijin > Assignee: binlijin > Fix For: 2.0.0, 1.4.0, 1.2.5, 1.1.8 > > 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.1.v1.patch, HBASE-17118.branch-1.2.v1.patch, > HBASE-17118.branch-1.addnumv1.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)