[ https://issues.apache.org/jira/browse/HBASE-18000?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16005665#comment-16005665 ]
Karan Mehta commented on HBASE-18000: ------------------------------------- [~Apache9] This is a corner case. I feel that the bug is not fully resolved. We have set the {{scannerId}} on the {{ScanResponse}} builder {code} if (request.hasScannerId()) { rsh = getRegionScanner(request); isSmallScan = false; // The downstream projects such as AsyncHBase in OpenTSDB need this value. See HBASE-18000 // for more details. builder.setScannerId(request.getScannerId()); } else { {code} and {{rsh = getRegionScanner(request);}} look like this {code} if (request.hasCloseScanner() && request.getCloseScanner()) { throw SCANNER_ALREADY_CLOSED; } else { {code} which implies that for a {{CloseScannerRequest}} an exception is thrown by this line. Thus, {{builder.setScannerId(request.getScannerId())}} is never executed. We thus send an empty {{ScanResponse}} for handling it as follows. {code} if (e == SCANNER_ALREADY_CLOSED) { // Now we will close scanner automatically if there are no more results for this region but // the old client will still send a close request to us. Just ignore it and return. return builder.build(); } {code} Thus there is no {{scannerId}} added in the {{builder}}. A simple possible fix is to do this. Please suggest. {code} if (request.hasScannerId()) { - rsh = getRegionScanner(request); - isSmallScan = false; // The downstream projects such as AsyncHBase in OpenTSDB need this value. See HBASE-18000 // for more details. builder.setScannerId(request.getScannerId()); + rsh = getRegionScanner(request); + isSmallScan = false; } else { {code} > Make sure we always return the scanner id with ScanResponse > ----------------------------------------------------------- > > Key: HBASE-18000 > URL: https://issues.apache.org/jira/browse/HBASE-18000 > Project: HBase > Issue Type: Bug > Components: regionserver > Affects Versions: 2.0.0, 1.4.0, 1.3.1 > Reporter: Lars Hofhansl > Assignee: Duo Zhang > Fix For: 2.0.0, 1.4.0, 1.3.2 > > Attachments: HBASE-18000.patch > > > Some external tooling (like OpenTSDB) relies on the scanner id to tie > asynchronous responses back to their requests. > (see comments on HBASE-17489) -- This message was sent by Atlassian JIRA (v6.3.15#6346)