HBASE-22283 Print row and table information when failed to get region location

This commit is contained in:
Yu Li 2019-04-24 15:44:13 +08:00 committed by GitHub
parent 7617b71f00
commit ab3d6cf811
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 11 additions and 7 deletions

View File

@ -18,6 +18,8 @@
package org.apache.hadoop.hbase.client;
import static org.apache.hadoop.hbase.HConstants.PRIORITY_UNSET;
import java.io.IOException;
import java.io.InterruptedIOException;
import java.util.Collections;
@ -34,17 +36,17 @@ import org.apache.hadoop.hbase.HBaseIOException;
import org.apache.hadoop.hbase.HRegionLocation;
import org.apache.hadoop.hbase.RegionLocations;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.ipc.HBaseRpcController;
import org.apache.hadoop.hbase.ipc.RpcControllerFactory;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
import org.apache.yetus.audience.InterfaceAudience;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.hadoop.hbase.ipc.HBaseRpcController;
import org.apache.hadoop.hbase.ipc.RpcControllerFactory;
import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;
import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos;
import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
import static org.apache.hadoop.hbase.HConstants.PRIORITY_UNSET;
/**
* Caller that goes to replica if the primary region does no answer within a configurable
@ -329,10 +331,12 @@ public class RpcRetryingCallerWithReadReplicas {
} catch (DoNotRetryIOException | InterruptedIOException | RetriesExhaustedException e) {
throw e;
} catch (IOException e) {
throw new RetriesExhaustedException("Can't get the location for replica " + replicaId, e);
throw new RetriesExhaustedException("Cannot get the location for replica" + replicaId
+ " of region for " + Bytes.toStringBinary(row) + " in " + tableName, e);
}
if (rl == null) {
throw new RetriesExhaustedException("Can't get the location for replica " + replicaId);
throw new RetriesExhaustedException("Cannot get the location for replica" + replicaId
+ " of region for " + Bytes.toStringBinary(row) + " in " + tableName);
}
return rl;