diff --git a/google-cloud-bigtable/pom.xml b/google-cloud-bigtable/pom.xml index 7d027c995..4717a24de 100644 --- a/google-cloud-bigtable/pom.xml +++ b/google-cloud-bigtable/pom.xml @@ -709,7 +709,6 @@ grpc-auth is not directly used transitively, but is pulled to align with other grpc parts opencensus-impl-core is brought in transitively through opencensus-impl --> - io.grpc:grpc-auth io.opencensus:opencensus-impl-core diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/BigtableChannelPrimer.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/BigtableChannelPrimer.java index 80e977f76..7c3b59efc 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/BigtableChannelPrimer.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/BigtableChannelPrimer.java @@ -26,6 +26,7 @@ import com.google.common.net.PercentEscaper; import io.grpc.CallCredentials; import io.grpc.ClientCall; +import io.grpc.Deadline; import io.grpc.ManagedChannel; import io.grpc.Metadata; import io.grpc.Status; @@ -80,11 +81,11 @@ static BigtableChannelPrimer create(EnhancedBigtableStubSettings settings) throw .getHeaders() .forEach((k, v) -> metadata.put(Metadata.Key.of(k, Metadata.ASCII_STRING_MARSHALLER), v)); + String escapedName = escaper.escape(request.getName()); + String escapedAppProfile = escaper.escape(request.getAppProfileId()); metadata.put( requestParams, - escaper.escape( - String.format( - "name=%s&app_profile_id=%s", request.getName(), request.getAppProfileId()))); + escaper.escape(String.format("name=%s&app_profile_id=%s", escapedName, escapedAppProfile))); } @Override @@ -106,7 +107,10 @@ private void sendPrimeRequests(ManagedChannel managedChannel) { ClientCall clientCall = managedChannel.newCall( BigtableGrpc.getPingAndWarmMethod(), - GrpcCallContext.createDefault().getCallOptions().withCallCredentials(credentials)); + GrpcCallContext.createDefault() + .getCallOptions() + .withCallCredentials(credentials) + .withDeadline(Deadline.after(1, TimeUnit.MINUTES))); SettableApiFuture future = SettableApiFuture.create(); clientCall.start( @@ -130,7 +134,7 @@ public void onClose(Status status, Metadata trailers) { metadata); clientCall.sendMessage(request); clientCall.halfClose(); - clientCall.request(1); + clientCall.request(Integer.MAX_VALUE); future.get(1, TimeUnit.MINUTES); } catch (Throwable e) {