From 68d2bc71b317111b04578f961fb82337c6cdb50f Mon Sep 17 00:00:00 2001 From: Igor Berntein Date: Tue, 30 May 2023 12:54:24 -0400 Subject: [PATCH 1/4] test: workaround existing bug in gax that prevents conformance tests from passing Change-Id: I80254c0613e2bac8752d361434a3711c8f9a31b4 --- .../bigtable/testproxy/CbtTestProxy.java | 64 +++++++------------ 1 file changed, 23 insertions(+), 41 deletions(-) diff --git a/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java b/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java index d07d06b647..fee02b1da3 100644 --- a/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java +++ b/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java @@ -23,6 +23,7 @@ import com.google.api.gax.core.FixedCredentialsProvider; import com.google.api.gax.core.NoCredentialsProvider; import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider; +import com.google.api.gax.retrying.RetrySettings; import com.google.api.gax.rpc.ApiException; import com.google.api.gax.rpc.ServerStream; import com.google.auth.oauth2.GoogleCredentials; @@ -146,51 +147,32 @@ public static CbtTestProxy createEncrypted( */ private static BigtableDataSettings.Builder overrideTimeoutSetting( Duration newTimeout, BigtableDataSettings.Builder settingsBuilder) { - // TODO(developer): remove the initialRpcTimeout update below by updating the client library. - Duration initialRpcTimeout = - settingsBuilder - .stubSettings() - .bulkMutateRowsSettings() - .getRetrySettings() - .getInitialRpcTimeout(); - if (initialRpcTimeout.compareTo(newTimeout) > 0) { - // Total timeout is smaller than initialRpcTimeout, which will cause deadline-related problem. - initialRpcTimeout = newTimeout; - } - settingsBuilder - .stubSettings() - .bulkMutateRowsSettings() - .retrySettings() - .setTotalTimeout(newTimeout) - .setInitialRpcTimeout(initialRpcTimeout); - - settingsBuilder.stubSettings().mutateRowSettings().retrySettings().setTotalTimeout(newTimeout); - - settingsBuilder.stubSettings().readRowSettings().retrySettings().setTotalTimeout(newTimeout); - - settingsBuilder.stubSettings().readRowsSettings().retrySettings().setTotalTimeout(newTimeout); - - settingsBuilder - .stubSettings() - .sampleRowKeysSettings() - .retrySettings() - .setTotalTimeout(newTimeout); - - settingsBuilder - .stubSettings() - .checkAndMutateRowSettings() - .retrySettings() - .setTotalTimeout(newTimeout); - - settingsBuilder - .stubSettings() - .readModifyWriteRowSettings() - .retrySettings() - .setTotalTimeout(newTimeout); + + updateTimeout(settingsBuilder.stubSettings().bulkMutateRowsSettings().retrySettings(), newTimeout); + updateTimeout(settingsBuilder.stubSettings().mutateRowSettings().retrySettings(), newTimeout); + updateTimeout(settingsBuilder.stubSettings().readRowSettings().retrySettings(), newTimeout); + updateTimeout(settingsBuilder.stubSettings().readRowsSettings().retrySettings(), newTimeout); + updateTimeout(settingsBuilder.stubSettings().checkAndMutateRowSettings().retrySettings(), newTimeout); + updateTimeout(settingsBuilder.stubSettings().readModifyWriteRowSettings().retrySettings(), newTimeout); + return settingsBuilder; } + private static void updateTimeout(RetrySettings.Builder settings, Duration newTimeout) { + Duration rpcTimeout = settings.getInitialRpcTimeout(); + + // TODO: this should happen in gax + // Clamp the rpcTimeout to the overall timeout + if (rpcTimeout != null && rpcTimeout.compareTo(newTimeout) > 0) { + settings + .setInitialRpcTimeout(newTimeout) + .setMaxRpcTimeout(newTimeout); + } + + settings.setTotalTimeout(newTimeout); + } + /** Helper method to get a client object by its id. */ private CbtClient getClient(String id) throws StatusException { CbtClient client = idClientMap.get(id); From 2ae5d709cdd91ee1ab27b199d8a79747209e6123 Mon Sep 17 00:00:00 2001 From: Owl Bot Date: Tue, 30 May 2023 16:58:35 +0000 Subject: [PATCH 2/4] =?UTF-8?q?=F0=9F=A6=89=20Updates=20from=20OwlBot=20po?= =?UTF-8?q?st-processor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --- .../cloud/bigtable/testproxy/CbtTestProxy.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java b/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java index fee02b1da3..71fdd52b16 100644 --- a/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java +++ b/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java @@ -148,13 +148,15 @@ public static CbtTestProxy createEncrypted( private static BigtableDataSettings.Builder overrideTimeoutSetting( Duration newTimeout, BigtableDataSettings.Builder settingsBuilder) { - updateTimeout(settingsBuilder.stubSettings().bulkMutateRowsSettings().retrySettings(), newTimeout); + updateTimeout( + settingsBuilder.stubSettings().bulkMutateRowsSettings().retrySettings(), newTimeout); updateTimeout(settingsBuilder.stubSettings().mutateRowSettings().retrySettings(), newTimeout); updateTimeout(settingsBuilder.stubSettings().readRowSettings().retrySettings(), newTimeout); updateTimeout(settingsBuilder.stubSettings().readRowsSettings().retrySettings(), newTimeout); - updateTimeout(settingsBuilder.stubSettings().checkAndMutateRowSettings().retrySettings(), newTimeout); - updateTimeout(settingsBuilder.stubSettings().readModifyWriteRowSettings().retrySettings(), newTimeout); - + updateTimeout( + settingsBuilder.stubSettings().checkAndMutateRowSettings().retrySettings(), newTimeout); + updateTimeout( + settingsBuilder.stubSettings().readModifyWriteRowSettings().retrySettings(), newTimeout); return settingsBuilder; } @@ -165,9 +167,7 @@ private static void updateTimeout(RetrySettings.Builder settings, Duration newTi // TODO: this should happen in gax // Clamp the rpcTimeout to the overall timeout if (rpcTimeout != null && rpcTimeout.compareTo(newTimeout) > 0) { - settings - .setInitialRpcTimeout(newTimeout) - .setMaxRpcTimeout(newTimeout); + settings.setInitialRpcTimeout(newTimeout).setMaxRpcTimeout(newTimeout); } settings.setTotalTimeout(newTimeout); From 49ee22777cfbca08279b96232222d2d2041770ed Mon Sep 17 00:00:00 2001 From: Igor Berntein Date: Tue, 30 May 2023 13:19:36 -0400 Subject: [PATCH 3/4] update sample row keys Change-Id: Ibe2e47a194fa5ddf8a5b135c9c9926d8470029b2 --- .../java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java b/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java index 71fdd52b16..2f9aef2c1d 100644 --- a/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java +++ b/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java @@ -157,6 +157,8 @@ private static BigtableDataSettings.Builder overrideTimeoutSetting( settingsBuilder.stubSettings().checkAndMutateRowSettings().retrySettings(), newTimeout); updateTimeout( settingsBuilder.stubSettings().readModifyWriteRowSettings().retrySettings(), newTimeout); + updateTimeout( + settingsBuilder.stubSettings().sampleRowKeysSettings().retrySettings(), newTimeout); return settingsBuilder; } From e68f7bd900dc37d8952829690dac3161955f3b65 Mon Sep 17 00:00:00 2001 From: Owl Bot Date: Tue, 30 May 2023 17:22:19 +0000 Subject: [PATCH 4/4] =?UTF-8?q?=F0=9F=A6=89=20Updates=20from=20OwlBot=20po?= =?UTF-8?q?st-processor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --- .../java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java b/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java index 2f9aef2c1d..5ac1a3c775 100644 --- a/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java +++ b/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java @@ -158,7 +158,7 @@ private static BigtableDataSettings.Builder overrideTimeoutSetting( updateTimeout( settingsBuilder.stubSettings().readModifyWriteRowSettings().retrySettings(), newTimeout); updateTimeout( - settingsBuilder.stubSettings().sampleRowKeysSettings().retrySettings(), newTimeout); + settingsBuilder.stubSettings().sampleRowKeysSettings().retrySettings(), newTimeout); return settingsBuilder; }