diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java index b6c004f27bf..9b47f4fce81 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java @@ -504,12 +504,15 @@ public abstract class RpcServer implements RpcServerInterface, responseInfo.put("param", stringifiedParam); if (param instanceof ClientProtos.ScanRequest && rsRpcServices != null) { ClientProtos.ScanRequest request = ((ClientProtos.ScanRequest) param); + String scanDetails; if (request.hasScannerId()) { long scannerId = request.getScannerId(); - String scanDetails = rsRpcServices.getScanDetailsWithId(scannerId); - if (scanDetails != null) { - responseInfo.put("scandetails", scanDetails); - } + scanDetails = rsRpcServices.getScanDetailsWithId(scannerId); + } else { + scanDetails = rsRpcServices.getScanDetailsWithRequest(request); + } + if (scanDetails != null) { + responseInfo.put("scandetails", scanDetails); } } if (param instanceof ClientProtos.MultiRequest) { diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java index f641d885f97..e6492b0c2e3 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java @@ -1380,6 +1380,21 @@ public class RSRpcServices implements HBaseRPCErrorHandler, return builder.toString(); } + public String getScanDetailsWithRequest(ScanRequest request) { + try { + if (!request.hasRegion()) { + return null; + } + Region region = getRegion(request.getRegion()); + StringBuilder builder = new StringBuilder(); + builder.append("table: ").append(region.getRegionInfo().getTable().getNameAsString()); + builder.append(" region: ").append(region.getRegionInfo().getRegionNameAsString()); + return builder.toString(); + } catch (IOException ignored) { + return null; + } + } + /** * Get the vtime associated with the scanner. * Currently the vtime is the number of "next" calls.