[ 
https://issues.apache.org/jira/browse/HBASE-29102?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kiran Kumar Maturi reassigned HBASE-29102:
------------------------------------------

    Assignee: Kiran Kumar Maturi

> Scan details missing for the last RPC call in responseTooSlow or 
> responseTooLarge
> ---------------------------------------------------------------------------------
>
>                 Key: HBASE-29102
>                 URL: https://issues.apache.org/jira/browse/HBASE-29102
>             Project: HBase
>          Issue Type: Bug
>          Components: scan
>    Affects Versions: 2.6.1, 2.5.11
>            Reporter: Kiran Kumar Maturi
>            Assignee: Kiran Kumar Maturi
>            Priority: Minor
>
> When a scan request is made that gets split into multiple rpc calls. For the 
> last rpc call the scandetails are removed from the scanners via the close 
> scanner call 
> {code:java}
> if (!builder.getMoreResults() || !builder.getMoreResultsInRegion() || 
> closeScanner) {
>         scannerClosed = true;
>         closeScanner(region, scanner, scannerName, rpcCall, false);
>   }
> {code}
> When we are trying to log the scan details that was slow or large these 
> details are missing 
> {code:java}
> if (param instanceof ClientProtos.ScanRequest && rsRpcServices != null) {
>       ClientProtos.ScanRequest request = ((ClientProtos.ScanRequest) param);
>       String scanDetails;
>       if (request.hasScannerId()) {
>         long scannerId = request.getScannerId();
>          scanDetails = rsRpcServices.getScanDetailsWithId(scannerId)
>       } else {
>         scanDetails = rsRpcServices.getScanDetailsWithRequest(request);
>       }
>       if (scanDetails != null) {
>         responseInfo.put("scandetails", scanDetails);
>       }
>     }
> {code}
>  scanDetails = rsRpcServices.getScanDetailsWithId(scannerId) are empty as the 
> scanner has been removed
> We are using id attributeto track slow requests from client side when the 
> last call is slow we are not able to track it. I was able to reproduce this 
> in a unit test case 
> {code:java}
> 2025-01-28 13:14:49,671 WARN  
> [RpcServer.priority.RWQ.Fifo.read.handler=1,queue=1,port=41569] 
> ipc.RpcServer(556): (responseTooSlow): 
> {"call":"Get(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos$GetRequest)","starttimems":"1738050289670","responsesize":"55","method":"Get","param":"region=
>  hbase:meta,,1, 
> row=scanWithLimit","processingtimems":1,"client":"127.0.0.1:37716","queuetimems":0,"class":"MiniHBaseClusterRegionServer"}
> 2025-01-28 13:14:49,684 WARN  
> [RpcServer.default.FPBQ.Fifo.handler=2,queue=0,port=41569] 
> ipc.RpcServer(556): (responseTooSlow): 
> {"call":"Scan(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos$ScanRequest)","starttimems":"1738050289682","responsesize":"143","method":"Scan","param":"region
>  { type: REGION_NAME value: 
> \"scanWithLimit,,1738050287249.a59c47d742d01e81f7280b849ca4af2a.\" } scan { 
> attribute { name: \"_operation.attributes.i 
> <TRUNCATED>","processingtimems":1,"client":"127.0.0.1:37716","queuetimems":1,"class":"MiniHBaseClusterRegionServer","scandetails":"table:
>  scanWithLimit region: 
> scanWithLimit,,1738050287249.a59c47d742d01e81f7280b849ca4af2a. operation_id: 
> last-row-scan"}
> 2025-01-28 13:14:49,690 WARN  
> [RpcServer.default.FPBQ.Fifo.handler=2,queue=0,port=41569] 
> ipc.RpcServer(556): (responseTooSlow): 
> {"call":"Scan(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos$ScanRequest)","starttimems":"1738050289688","responsesize":"137","method":"Scan","param":"scanner_id:
>  10141844372128268296 number_of_rows: 3 close_scanner: false next_call_seq: 0 
> client_handles_partials: true client_handles_heartbeats: true 
> <TRUNCATED>","processingtimems":1,"client":"127.0.0.1:37716","queuetimems":0,"class":"MiniHBaseClusterRegionServer","scandetails":"table:
>  scanWithLimit region: 
> scanWithLimit,,1738050287249.a59c47d742d01e81f7280b849ca4af2a. operation_id: 
> last-row-scan"}
> 2025-01-28 13:14:49,694 WARN  
> [RpcServer.default.FPBQ.Fifo.handler=2,queue=0,port=41569] 
> ipc.RpcServer(556): (responseTooSlow): 
> {"call":"Scan(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos$ScanRequest)","starttimems":"1738050289693","responsesize":"137","method":"Scan","param":"scanner_id:
>  10141844372128268296 number_of_rows: 3 close_scanner: false next_call_seq: 1 
> client_handles_partials: true client_handles_heartbeats: true 
> <TRUNCATED>","processingtimems":1,"client":"127.0.0.1:37716","queuetimems":1,"class":"MiniHBaseClusterRegionServer"}
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to