From 5807fe2aecba9c7e54255734229cecf857a86218 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Sat, 1 Apr 2023 19:56:12 +0000 Subject: [PATCH 1/9] chore(main): release 6.38.3-SNAPSHOT (#2361) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- google-cloud-spanner-bom/pom.xml | 20 +++++++++---------- google-cloud-spanner-executor/pom.xml | 4 ++-- google-cloud-spanner/pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../pom.xml | 4 ++-- grpc-google-cloud-spanner-v1/pom.xml | 4 ++-- pom.xml | 16 +++++++-------- .../pom.xml | 4 ++-- .../pom.xml | 4 ++-- proto-google-cloud-spanner-v1/pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 16 +++++++-------- 12 files changed, 43 insertions(+), 43 deletions(-) diff --git a/google-cloud-spanner-bom/pom.xml b/google-cloud-spanner-bom/pom.xml index e3ca43b15c4..c0e6b497512 100644 --- a/google-cloud-spanner-bom/pom.xml +++ b/google-cloud-spanner-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-spanner-bom - 6.38.2 + 6.38.3-SNAPSHOT pom com.google.cloud @@ -53,48 +53,48 @@ com.google.cloud google-cloud-spanner - 6.38.2 + 6.38.3-SNAPSHOT com.google.cloud google-cloud-spanner-executor - 6.38.2 + 6.38.3-SNAPSHOT com.google.cloud google-cloud-spanner test-jar - 6.38.2 + 6.38.3-SNAPSHOT com.google.api.grpc grpc-google-cloud-spanner-v1 - 6.38.2 + 6.38.3-SNAPSHOT com.google.api.grpc grpc-google-cloud-spanner-admin-instance-v1 - 6.38.2 + 6.38.3-SNAPSHOT com.google.api.grpc grpc-google-cloud-spanner-admin-database-v1 - 6.38.2 + 6.38.3-SNAPSHOT com.google.api.grpc proto-google-cloud-spanner-admin-instance-v1 - 6.38.2 + 6.38.3-SNAPSHOT com.google.api.grpc proto-google-cloud-spanner-v1 - 6.38.2 + 6.38.3-SNAPSHOT com.google.api.grpc proto-google-cloud-spanner-admin-database-v1 - 6.38.2 + 6.38.3-SNAPSHOT diff --git a/google-cloud-spanner-executor/pom.xml b/google-cloud-spanner-executor/pom.xml index fc86b46a4e0..fce4f99199e 100644 --- a/google-cloud-spanner-executor/pom.xml +++ b/google-cloud-spanner-executor/pom.xml @@ -5,14 +5,14 @@ 4.0.0 com.google.cloud google-cloud-spanner-executor - 6.38.2 + 6.38.3-SNAPSHOT jar Google Cloud Spanner Executor com.google.cloud google-cloud-spanner-parent - 6.38.2 + 6.38.3-SNAPSHOT diff --git a/google-cloud-spanner/pom.xml b/google-cloud-spanner/pom.xml index 3fee74f4e97..00410415938 100644 --- a/google-cloud-spanner/pom.xml +++ b/google-cloud-spanner/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-spanner - 6.38.2 + 6.38.3-SNAPSHOT jar Google Cloud Spanner https://github.com/googleapis/java-spanner @@ -11,7 +11,7 @@ com.google.cloud google-cloud-spanner-parent - 6.38.2 + 6.38.3-SNAPSHOT google-cloud-spanner diff --git a/grpc-google-cloud-spanner-admin-database-v1/pom.xml b/grpc-google-cloud-spanner-admin-database-v1/pom.xml index 269a80db22b..23a219e9bcd 100644 --- a/grpc-google-cloud-spanner-admin-database-v1/pom.xml +++ b/grpc-google-cloud-spanner-admin-database-v1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-spanner-admin-database-v1 - 6.38.2 + 6.38.3-SNAPSHOT grpc-google-cloud-spanner-admin-database-v1 GRPC library for grpc-google-cloud-spanner-admin-database-v1 com.google.cloud google-cloud-spanner-parent - 6.38.2 + 6.38.3-SNAPSHOT diff --git a/grpc-google-cloud-spanner-admin-instance-v1/pom.xml b/grpc-google-cloud-spanner-admin-instance-v1/pom.xml index d7ea200b129..f0c66b99854 100644 --- a/grpc-google-cloud-spanner-admin-instance-v1/pom.xml +++ b/grpc-google-cloud-spanner-admin-instance-v1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-spanner-admin-instance-v1 - 6.38.2 + 6.38.3-SNAPSHOT grpc-google-cloud-spanner-admin-instance-v1 GRPC library for grpc-google-cloud-spanner-admin-instance-v1 com.google.cloud google-cloud-spanner-parent - 6.38.2 + 6.38.3-SNAPSHOT diff --git a/grpc-google-cloud-spanner-v1/pom.xml b/grpc-google-cloud-spanner-v1/pom.xml index b75de470ee5..e730f09c287 100644 --- a/grpc-google-cloud-spanner-v1/pom.xml +++ b/grpc-google-cloud-spanner-v1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-spanner-v1 - 6.38.2 + 6.38.3-SNAPSHOT grpc-google-cloud-spanner-v1 GRPC library for grpc-google-cloud-spanner-v1 com.google.cloud google-cloud-spanner-parent - 6.38.2 + 6.38.3-SNAPSHOT diff --git a/pom.xml b/pom.xml index 4c8d7ac073b..0e7262e1816 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-spanner-parent pom - 6.38.2 + 6.38.3-SNAPSHOT Google Cloud Spanner Parent https://github.com/googleapis/java-spanner @@ -62,37 +62,37 @@ com.google.api.grpc proto-google-cloud-spanner-admin-instance-v1 - 6.38.2 + 6.38.3-SNAPSHOT com.google.api.grpc proto-google-cloud-spanner-v1 - 6.38.2 + 6.38.3-SNAPSHOT com.google.api.grpc proto-google-cloud-spanner-admin-database-v1 - 6.38.2 + 6.38.3-SNAPSHOT com.google.api.grpc grpc-google-cloud-spanner-v1 - 6.38.2 + 6.38.3-SNAPSHOT com.google.api.grpc grpc-google-cloud-spanner-admin-instance-v1 - 6.38.2 + 6.38.3-SNAPSHOT com.google.api.grpc grpc-google-cloud-spanner-admin-database-v1 - 6.38.2 + 6.38.3-SNAPSHOT com.google.cloud google-cloud-spanner - 6.38.2 + 6.38.3-SNAPSHOT diff --git a/proto-google-cloud-spanner-admin-database-v1/pom.xml b/proto-google-cloud-spanner-admin-database-v1/pom.xml index 8412b9e5644..1da95ff1b72 100644 --- a/proto-google-cloud-spanner-admin-database-v1/pom.xml +++ b/proto-google-cloud-spanner-admin-database-v1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-cloud-spanner-admin-database-v1 - 6.38.2 + 6.38.3-SNAPSHOT proto-google-cloud-spanner-admin-database-v1 PROTO library for proto-google-cloud-spanner-admin-database-v1 com.google.cloud google-cloud-spanner-parent - 6.38.2 + 6.38.3-SNAPSHOT diff --git a/proto-google-cloud-spanner-admin-instance-v1/pom.xml b/proto-google-cloud-spanner-admin-instance-v1/pom.xml index bfb562c2b1b..6a3d05ca729 100644 --- a/proto-google-cloud-spanner-admin-instance-v1/pom.xml +++ b/proto-google-cloud-spanner-admin-instance-v1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-cloud-spanner-admin-instance-v1 - 6.38.2 + 6.38.3-SNAPSHOT proto-google-cloud-spanner-admin-instance-v1 PROTO library for proto-google-cloud-spanner-admin-instance-v1 com.google.cloud google-cloud-spanner-parent - 6.38.2 + 6.38.3-SNAPSHOT diff --git a/proto-google-cloud-spanner-v1/pom.xml b/proto-google-cloud-spanner-v1/pom.xml index e7e953aeb80..1db2a0f63cf 100644 --- a/proto-google-cloud-spanner-v1/pom.xml +++ b/proto-google-cloud-spanner-v1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-cloud-spanner-v1 - 6.38.2 + 6.38.3-SNAPSHOT proto-google-cloud-spanner-v1 PROTO library for proto-google-cloud-spanner-v1 com.google.cloud google-cloud-spanner-parent - 6.38.2 + 6.38.3-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 2a8420761a7..42c7faae1e2 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -31,7 +31,7 @@ com.google.cloud google-cloud-spanner - 6.38.2 + 6.38.3-SNAPSHOT diff --git a/versions.txt b/versions.txt index a497310b64b..ff3c5155c1e 100644 --- a/versions.txt +++ b/versions.txt @@ -1,11 +1,11 @@ # Format: # module:released-version:current-version -proto-google-cloud-spanner-admin-instance-v1:6.38.2:6.38.2 -proto-google-cloud-spanner-v1:6.38.2:6.38.2 -proto-google-cloud-spanner-admin-database-v1:6.38.2:6.38.2 -grpc-google-cloud-spanner-v1:6.38.2:6.38.2 -grpc-google-cloud-spanner-admin-instance-v1:6.38.2:6.38.2 -grpc-google-cloud-spanner-admin-database-v1:6.38.2:6.38.2 -google-cloud-spanner:6.38.2:6.38.2 -google-cloud-spanner-executor:6.38.2:6.38.2 +proto-google-cloud-spanner-admin-instance-v1:6.38.2:6.38.3-SNAPSHOT +proto-google-cloud-spanner-v1:6.38.2:6.38.3-SNAPSHOT +proto-google-cloud-spanner-admin-database-v1:6.38.2:6.38.3-SNAPSHOT +grpc-google-cloud-spanner-v1:6.38.2:6.38.3-SNAPSHOT +grpc-google-cloud-spanner-admin-instance-v1:6.38.2:6.38.3-SNAPSHOT +grpc-google-cloud-spanner-admin-database-v1:6.38.2:6.38.3-SNAPSHOT +google-cloud-spanner:6.38.2:6.38.3-SNAPSHOT +google-cloud-spanner-executor:6.38.2:6.38.3-SNAPSHOT From 78e80586a11e52ddf7f699613acf6f1b8a0e6ff7 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 3 Apr 2023 09:51:43 +0100 Subject: [PATCH 2/9] chore(deps): update dependency com.google.cloud:google-cloud-spanner to v6.38.2 (#2362) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-spanner to v6.38.2 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 8 ++++---- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index bcfdb21046c..c0f0e838cfc 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ If you are using Maven without the BOM, add this to your dependencies: com.google.cloud google-cloud-spanner - 6.38.1 + 6.38.2 ``` @@ -57,13 +57,13 @@ implementation 'com.google.cloud:google-cloud-spanner' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-spanner:6.38.1' +implementation 'com.google.cloud:google-cloud-spanner:6.38.2' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-spanner" % "6.38.1" +libraryDependencies += "com.google.cloud" % "google-cloud-spanner" % "6.38.2" ``` @@ -411,7 +411,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-spanner/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-spanner.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-spanner/6.38.1 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-spanner/6.38.2 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index aeb010d9761..909aad63313 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -32,7 +32,7 @@ com.google.cloud google-cloud-spanner - 6.38.1 + 6.38.2 From d6ccb5228b2a4eae2024234924c91a4e2957fe31 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 3 Apr 2023 16:35:42 +0100 Subject: [PATCH 3/9] build(deps): update dependency org.jacoco:jacoco-maven-plugin to v0.8.9 (#2363) --- google-cloud-spanner/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/google-cloud-spanner/pom.xml b/google-cloud-spanner/pom.xml index 00410415938..f550fc4c63f 100644 --- a/google-cloud-spanner/pom.xml +++ b/google-cloud-spanner/pom.xml @@ -29,7 +29,7 @@ org.jacoco jacoco-maven-plugin - 0.8.8 + 0.8.9 From 36eb38f5b9617eff21c0e76ed61f6ab531a184af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Knut=20Olav=20L=C3=B8ite?= Date: Fri, 7 Apr 2023 19:08:33 +0200 Subject: [PATCH 4/9] Revert "build(deps): update dependency org.jacoco:jacoco-maven-plugin to v0.8.9" (#2367) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Revert "build(deps): update dependency org.jacoco:jacoco-maven-plugin to v0.8.9 (#2363)" This reverts commit d6ccb5228b2a4eae2024234924c91a4e2957fe31. * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- google-cloud-spanner/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c0f0e838cfc..fdbf5abcab5 100644 --- a/README.md +++ b/README.md @@ -50,7 +50,7 @@ If you are using Maven without the BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.11.0') +implementation platform('com.google.cloud:libraries-bom:26.12.0') implementation 'com.google.cloud:google-cloud-spanner' ``` diff --git a/google-cloud-spanner/pom.xml b/google-cloud-spanner/pom.xml index f550fc4c63f..00410415938 100644 --- a/google-cloud-spanner/pom.xml +++ b/google-cloud-spanner/pom.xml @@ -29,7 +29,7 @@ org.jacoco jacoco-maven-plugin - 0.8.9 + 0.8.8 From 6b6427a25af25fde944dfc1dd4bf6a6463682caf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Knut=20Olav=20L=C3=B8ite?= Date: Fri, 7 Apr 2023 21:31:52 +0200 Subject: [PATCH 5/9] feat: capture stack trace for session checkout is now optional (#2350) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: capture stack trace for session checkout is now optional The session pool by default captures the stack trace of the thread that checks out a session of the pool, so this can be used in case the session is leaked. This is done by creating an exception already at the moment that the session is checked out. Some monitoring tools log the creation of this exception, giving the impression that the application is throwing a large number of errors, while the error is actually never thrown. This commit makes this capturing optional. The default is to capture the call stack, but users can turn this off in the SessionPoolOptions. * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * docs: improve javadoc and comments * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .../com/google/cloud/spanner/SessionPool.java | 18 ++++- .../cloud/spanner/SessionPoolOptions.java | 36 ++++++++++ .../cloud/spanner/SessionPoolLeakTest.java | 69 +++++++++++++++++++ 3 files changed, 122 insertions(+), 1 deletion(-) diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SessionPool.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SessionPool.java index 189c8e1d819..371ff652b6f 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SessionPool.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SessionPool.java @@ -1099,6 +1099,10 @@ final class LeakedSessionException extends RuntimeException { private LeakedSessionException() { super("Session was checked out from the pool at " + clock.instant()); } + + private LeakedSessionException(String message) { + super(message); + } } private enum SessionState { @@ -1131,7 +1135,9 @@ void clearLeakedException() { } private void markCheckedOut() { - this.leakedException = new LeakedSessionException(); + if (options.isTrackStackTraceOfSessionCheckout()) { + this.leakedException = new LeakedSessionException(); + } } @Override @@ -2324,6 +2330,16 @@ ListenableFuture closeAsync(ClosedException closedException) { } else { logger.log(Level.WARNING, "Leaked session", session.leakedException); } + } else { + String message = + "Leaked session. " + + "Call SessionOptions.Builder#setTrackStackTraceOfSessionCheckout(true) to start " + + "tracking the call stack trace of the thread that checked out the session."; + if (options.isFailOnSessionLeak()) { + throw new LeakedSessionException(message); + } else { + logger.log(Level.WARNING, message); + } } } for (final PooledSession session : ImmutableList.copyOf(allSessions)) { diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SessionPoolOptions.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SessionPoolOptions.java index ad6ad2e73d7..8856081b364 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SessionPoolOptions.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SessionPoolOptions.java @@ -49,6 +49,7 @@ public class SessionPoolOptions { private final Duration removeInactiveSessionAfter; private final ActionOnSessionNotFound actionOnSessionNotFound; private final ActionOnSessionLeak actionOnSessionLeak; + private final boolean trackStackTraceOfSessionCheckout; private final long initialWaitForSessionTimeoutMillis; private final boolean autoDetectDialect; private final Duration waitForMinSessions; @@ -65,6 +66,7 @@ private SessionPoolOptions(Builder builder) { this.actionOnExhaustion = builder.actionOnExhaustion; this.actionOnSessionNotFound = builder.actionOnSessionNotFound; this.actionOnSessionLeak = builder.actionOnSessionLeak; + this.trackStackTraceOfSessionCheckout = builder.trackStackTraceOfSessionCheckout; this.initialWaitForSessionTimeoutMillis = builder.initialWaitForSessionTimeoutMillis; this.loopFrequency = builder.loopFrequency; this.keepAliveIntervalMinutes = builder.keepAliveIntervalMinutes; @@ -87,6 +89,8 @@ public boolean equals(Object o) { && Objects.equals(this.actionOnExhaustion, other.actionOnExhaustion) && Objects.equals(this.actionOnSessionNotFound, other.actionOnSessionNotFound) && Objects.equals(this.actionOnSessionLeak, other.actionOnSessionLeak) + && Objects.equals( + this.trackStackTraceOfSessionCheckout, other.trackStackTraceOfSessionCheckout) && Objects.equals( this.initialWaitForSessionTimeoutMillis, other.initialWaitForSessionTimeoutMillis) && Objects.equals(this.loopFrequency, other.loopFrequency) @@ -107,6 +111,7 @@ public int hashCode() { this.actionOnExhaustion, this.actionOnSessionNotFound, this.actionOnSessionLeak, + this.trackStackTraceOfSessionCheckout, this.initialWaitForSessionTimeoutMillis, this.loopFrequency, this.keepAliveIntervalMinutes, @@ -190,6 +195,10 @@ boolean isFailOnSessionLeak() { return actionOnSessionLeak == ActionOnSessionLeak.FAIL; } + public boolean isTrackStackTraceOfSessionCheckout() { + return trackStackTraceOfSessionCheckout; + } + @VisibleForTesting Duration getWaitForMinSessions() { return waitForMinSessions; @@ -234,6 +243,17 @@ public static class Builder { private long initialWaitForSessionTimeoutMillis = 30_000L; private ActionOnSessionNotFound actionOnSessionNotFound = ActionOnSessionNotFound.RETRY; private ActionOnSessionLeak actionOnSessionLeak = ActionOnSessionLeak.WARN; + /** + * Capture the call stack of the thread that checked out a session of the pool. This will + * pre-create a {@link com.google.cloud.spanner.SessionPool.LeakedSessionException} already when + * a session is checked out. This can be disabled by users, for example if their monitoring + * systems log the pre-created exception. If disabled, the {@link + * com.google.cloud.spanner.SessionPool.LeakedSessionException} will only be created when an + * actual session leak is detected. The stack trace of the exception will in that case not + * contain the call stack of when the session was checked out. + */ + private boolean trackStackTraceOfSessionCheckout = true; + private long loopFrequency = 10 * 1000L; private int keepAliveIntervalMinutes = 30; private Duration removeInactiveSessionAfter = Duration.ofMinutes(55L); @@ -253,6 +273,7 @@ private Builder(SessionPoolOptions options) { this.initialWaitForSessionTimeoutMillis = options.initialWaitForSessionTimeoutMillis; this.actionOnSessionNotFound = options.actionOnSessionNotFound; this.actionOnSessionLeak = options.actionOnSessionLeak; + this.trackStackTraceOfSessionCheckout = options.trackStackTraceOfSessionCheckout; this.loopFrequency = options.loopFrequency; this.keepAliveIntervalMinutes = options.keepAliveIntervalMinutes; this.removeInactiveSessionAfter = options.removeInactiveSessionAfter; @@ -393,6 +414,21 @@ Builder setFailOnSessionLeak() { return this; } + /** + * Sets whether the session pool should capture the call stack trace when a session is checked + * out of the pool. This will internally prepare a {@link + * com.google.cloud.spanner.SessionPool.LeakedSessionException} that will only be thrown if the + * session is actually leaked. This makes it easier to debug session leaks, as the stack trace + * of the thread that checked out the session will be available in the exception. + * + *

Some monitoring tools might log these exceptions even though they are not thrown. This + * option can be used to suppress the creation and logging of these exceptions. + */ + public Builder setTrackStackTraceOfSessionCheckout(boolean trackStackTraceOfSessionCheckout) { + this.trackStackTraceOfSessionCheckout = trackStackTraceOfSessionCheckout; + return this; + } + /** * @deprecated This configuration value is no longer in use. The session pool does not prepare * any sessions for read/write transactions. Instead, a transaction will automatically be diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SessionPoolLeakTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SessionPoolLeakTest.java index c8f648a1dc4..7bcde30f30b 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SessionPoolLeakTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SessionPoolLeakTest.java @@ -25,6 +25,15 @@ import com.google.api.gax.grpc.testing.LocalChannelProvider; import com.google.cloud.NoCredentials; import com.google.cloud.spanner.MockSpannerServiceImpl.SimulatedExecutionTime; +import com.google.cloud.spanner.MockSpannerServiceImpl.StatementResult; +import com.google.cloud.spanner.SessionPool.LeakedSessionException; +import com.google.protobuf.ListValue; +import com.google.protobuf.Value; +import com.google.spanner.v1.ResultSetMetadata; +import com.google.spanner.v1.StructType; +import com.google.spanner.v1.StructType.Field; +import com.google.spanner.v1.Type; +import com.google.spanner.v1.TypeCode; import io.grpc.Server; import io.grpc.StatusRuntimeException; import io.grpc.inprocess.InProcessServerBuilder; @@ -94,6 +103,66 @@ public void tearDown() { spanner.close(); } + @Test + public void testIgnoreLeakedSession() { + for (boolean trackStackTraceofSessionCheckout : new boolean[] {true, false}) { + SpannerOptions.Builder builder = + SpannerOptions.newBuilder() + .setProjectId("[PROJECT]") + .setChannelProvider(channelProvider) + .setCredentials(NoCredentials.getInstance()); + builder.setSessionPoolOption( + SessionPoolOptions.newBuilder() + .setMinSessions(0) + .setMaxSessions(2) + .setIncStep(1) + .setFailOnSessionLeak() + .setTrackStackTraceOfSessionCheckout(trackStackTraceofSessionCheckout) + .build()); + Spanner spanner = builder.build().getService(); + DatabaseClient client = + spanner.getDatabaseClient(DatabaseId.of("[PROJECT]", "[INSTANCE]", "[DATABASE]")); + mockSpanner.putStatementResult( + StatementResult.query( + Statement.of("SELECT 1"), + com.google.spanner.v1.ResultSet.newBuilder() + .setMetadata( + ResultSetMetadata.newBuilder() + .setRowType( + StructType.newBuilder() + .addFields( + Field.newBuilder() + .setName("c") + .setType( + Type.newBuilder().setCode(TypeCode.INT64).build()) + .build()) + .build()) + .build()) + .addRows( + ListValue.newBuilder() + .addValues(Value.newBuilder().setStringValue("1").build()) + .build()) + .build())); + + // Start a read-only transaction without closing it before closing the Spanner instance. + // This will cause a session leak. + ReadOnlyTransaction transaction = client.readOnlyTransaction(); + try (ResultSet resultSet = transaction.executeQuery(Statement.of("SELECT 1"))) { + while (resultSet.next()) { + // ignore + } + } + LeakedSessionException exception = assertThrows(LeakedSessionException.class, spanner::close); + // The top of the stack trace will be "markCheckedOut" if we keep track of the point where the + // session was checked out, while it will be "closeAsync" if we don't. In the latter case, we + // get the stack trace of the method that tries to close the Spanner instance, while in the + // former the stack trace will contain the method that checked out the session. + assertEquals( + trackStackTraceofSessionCheckout ? "markCheckedOut" : "closeAsync", + exception.getStackTrace()[0].getMethodName()); + } + } + @Test public void testReadWriteTransactionExceptionOnCreateSession() { readWriteTransactionTest( From 6927e06aa5cb60b73515a34d75eac57ba6c36c50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Knut=20Olav=20L=C3=B8ite?= Date: Sat, 8 Apr 2023 06:55:11 +0200 Subject: [PATCH 6/9] test: fix NullPointerException in mock server (#2365) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * test: fix NullPointerException in mock server Fix a potential NullPointerException in the mock server when a statement uses a parameter of type ARRAY with a null element in the array. * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .../java/com/google/cloud/spanner/DatabaseClientImplTest.java | 3 ++- .../java/com/google/cloud/spanner/MockSpannerServiceImpl.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/DatabaseClientImplTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/DatabaseClientImplTest.java index 9885e4f83d5..0b88edc7f69 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/DatabaseClientImplTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/DatabaseClientImplTest.java @@ -84,6 +84,7 @@ import java.io.IOException; import java.nio.charset.StandardCharsets; import java.util.ArrayList; +import java.util.Arrays; import java.util.Base64; import java.util.Collections; import java.util.List; @@ -2950,7 +2951,7 @@ public void testStatementWithBytesArrayParameter() { Statement.newBuilder("select id from test where b=@p1") .bind("p1") .toBytesArray( - ImmutableList.of(ByteArray.copyFrom("test1"), ByteArray.copyFrom("test2"))) + Arrays.asList(ByteArray.copyFrom("test1"), null, ByteArray.copyFrom("test2"))) .build(); mockSpanner.putStatementResult(StatementResult.query(statement, SELECT1_RESULTSET)); DatabaseClient client = diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/MockSpannerServiceImpl.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/MockSpannerServiceImpl.java index 567279c511c..66695676112 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/MockSpannerServiceImpl.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/MockSpannerServiceImpl.java @@ -1367,7 +1367,8 @@ private Statement buildStatement( (Iterable) GrpcStruct.decodeArrayValue( com.google.cloud.spanner.Type.bytes(), value.getListValue()), - LazyByteArray::getByteArray)); + lazyByteArray -> + lazyByteArray == null ? null : lazyByteArray.getByteArray())); break; case DATE: builder From 1c334e0d13cf2618cba94a4795595f10c7ab1328 Mon Sep 17 00:00:00 2001 From: Gaurav Purohit Date: Tue, 11 Apr 2023 16:12:13 +0530 Subject: [PATCH 7/9] test: Disabling the databoost Integration tests till GA (#2374) --- .../java/com/google/cloud/spanner/it/ITBatchReadTest.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITBatchReadTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITBatchReadTest.java index 89a4a76e862..9a50a5ca7be 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITBatchReadTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITBatchReadTest.java @@ -241,6 +241,8 @@ public void readUsingIndex() { @Test public void dataBoostRead() { + // TODO: Remove the following check during GA + assumeFalse("DataBoost feature is not yet generally available", true); assumeFalse("Emulator does not support data boost read", isUsingEmulator()); BitSet seenRows = new BitSet(numRows); @@ -295,6 +297,8 @@ private PartitionOptions getRandomPartitionOptions() { @Test public void dataBoostQuery() { + // TODO: Remove the following check during GA + assumeFalse("DataBoost feature is not yet generally available", true); assumeFalse("Emulator does not support data boost query", isUsingEmulator()); BitSet seenRows = new BitSet(numRows); TimestampBound bound = getRandomBound(); From 141a72e2693ad5cab7d4c41f870d4ab1503f92e8 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 11 Apr 2023 12:44:13 +0100 Subject: [PATCH 8/9] chore(deps): update dependency com.google.cloud:libraries-bom to v26.12.0 (#2364) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:libraries-bom](https://cloud.google.com/java/docs/bom) ([source](https://togithub.com/googleapis/java-cloud-bom)) | `26.11.0` -> `26.12.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/26.12.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/26.12.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/26.12.0/compatibility-slim/26.11.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/26.12.0/confidence-slim/26.11.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes

googleapis/java-cloud-bom ### [`v26.12.0`](https://togithub.com/googleapis/java-cloud-bom/blob/HEAD/CHANGELOG.md#​26120-httpsgithubcomgoogleapisjava-cloud-bomcomparev26110v26120-2023-04-04) [Compare Source](https://togithub.com/googleapis/java-cloud-bom/compare/v26.11.0...v26.12.0) ##### Dependencies - update dependency com.google.cloud:first-party-dependencies to v3.6.0 ([#​5893](https://togithub.com/googleapis/java-cloud-bom/issues/5893)) ([1b6e4d0](https://togithub.com/googleapis/java-cloud-bom/commit/1b6e4d08838827942d1dd3cccc6e6b715e7aef1e)) - update dependency com.google.cloud:gapic-libraries-bom to v1.8.0 ([#​5902](https://togithub.com/googleapis/java-cloud-bom/issues/5902)) ([2a292e0](https://togithub.com/googleapis/java-cloud-bom/commit/2a292e0d17e773d6a32b51f0c791bf50198ae87a)) - update dependency com.google.cloud:google-cloud-bigquery to v2.24.3 ([#​5890](https://togithub.com/googleapis/java-cloud-bom/issues/5890)) ([278f74a](https://togithub.com/googleapis/java-cloud-bom/commit/278f74aa5139e5304556c2dfdb81e96a75066938)) - update dependency com.google.cloud:google-cloud-bigquery to v2.24.4 ([#​5901](https://togithub.com/googleapis/java-cloud-bom/issues/5901)) ([14687f6](https://togithub.com/googleapis/java-cloud-bom/commit/14687f6199509bdede2eaee41fea1942bb40b849)) - update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.34.2 ([#​5900](https://togithub.com/googleapis/java-cloud-bom/issues/5900)) ([34de054](https://togithub.com/googleapis/java-cloud-bom/commit/34de05450df961a00e302fd6276e2fdc8f94f835)) - update dependency com.google.cloud:google-cloud-bigtable-bom to v2.20.2 ([#​5904](https://togithub.com/googleapis/java-cloud-bom/issues/5904)) ([fe66de5](https://togithub.com/googleapis/java-cloud-bom/commit/fe66de5dc2c50fb45710543fa1b417cc9a0cd48e)) - update dependency com.google.cloud:google-cloud-bigtable-bom to v2.20.3 ([#​5905](https://togithub.com/googleapis/java-cloud-bom/issues/5905)) ([970fdea](https://togithub.com/googleapis/java-cloud-bom/commit/970fdea74455b004cf23dbeb2d8a072616ef9fd3)) - update dependency com.google.cloud:google-cloud-datastore-bom to v2.14.2 ([#​5899](https://togithub.com/googleapis/java-cloud-bom/issues/5899)) ([7dd6048](https://togithub.com/googleapis/java-cloud-bom/commit/7dd6048b2f888ab2d39df54096f7848c5bd5976a)) - update dependency com.google.cloud:google-cloud-firestore-bom to v3.9.3 ([#​5897](https://togithub.com/googleapis/java-cloud-bom/issues/5897)) ([046528f](https://togithub.com/googleapis/java-cloud-bom/commit/046528f66480fa84d2095098f8a4f0dee0f81e41)) - update dependency com.google.cloud:google-cloud-logging-bom to v3.14.7 ([#​5894](https://togithub.com/googleapis/java-cloud-bom/issues/5894)) ([f6820a1](https://togithub.com/googleapis/java-cloud-bom/commit/f6820a186666416a8e004845884d3b168f9d6609)) - update dependency com.google.cloud:google-cloud-logging-logback to v0.130.9-alpha ([#​5895](https://togithub.com/googleapis/java-cloud-bom/issues/5895)) ([1af16aa](https://togithub.com/googleapis/java-cloud-bom/commit/1af16aa657c6a5ecfd2fc118c6c806b8937dd27e)) - update dependency com.google.cloud:google-cloud-nio to v0.126.11 ([#​5910](https://togithub.com/googleapis/java-cloud-bom/issues/5910)) ([85f14a3](https://togithub.com/googleapis/java-cloud-bom/commit/85f14a3ec6ff117413d5fd8e1a056efb73a42864)) - update dependency com.google.cloud:google-cloud-pubsub-bom to v1.123.8 ([#​5909](https://togithub.com/googleapis/java-cloud-bom/issues/5909)) ([bb4a0c6](https://togithub.com/googleapis/java-cloud-bom/commit/bb4a0c62b68dd8063ece2ce8b06a0958f001d59e)) - update dependency com.google.cloud:google-cloud-pubsublite-bom to v1.12.2 ([#​5911](https://togithub.com/googleapis/java-cloud-bom/issues/5911)) ([d168583](https://togithub.com/googleapis/java-cloud-bom/commit/d168583255a4978ae06ccc8e3ce0321b21ce54f1)) - update dependency com.google.cloud:google-cloud-spanner-bom to v6.38.2 ([#​5896](https://togithub.com/googleapis/java-cloud-bom/issues/5896)) ([5b82b21](https://togithub.com/googleapis/java-cloud-bom/commit/5b82b218bf39181c33d65580e02b583fdbb52e93)) - update dependency com.google.cloud:google-cloud-spanner-jdbc to v2.9.11 ([#​5898](https://togithub.com/googleapis/java-cloud-bom/issues/5898)) ([e6061a6](https://togithub.com/googleapis/java-cloud-bom/commit/e6061a6f4f13c2d5c2dec4266c3f73e6b72c037a)) - update dependency com.google.cloud:google-cloud-storage-bom to v2.21.0 ([#​5908](https://togithub.com/googleapis/java-cloud-bom/issues/5908)) ([a3f8081](https://togithub.com/googleapis/java-cloud-bom/commit/a3f80819ed3fbd385129a9b184b8c79b936e1136))
--- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-spanner). --- README.md | 2 +- samples/native-image/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index fdbf5abcab5..1e1173092d8 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ If you are using Maven with [BOM][libraries-bom], add this to your pom.xml file: com.google.cloud libraries-bom - 26.11.0 + 26.12.0 pom import diff --git a/samples/native-image/pom.xml b/samples/native-image/pom.xml index 34f084c80de..335822bda36 100644 --- a/samples/native-image/pom.xml +++ b/samples/native-image/pom.xml @@ -28,7 +28,7 @@ com.google.cloud libraries-bom - 26.11.0 + 26.12.0 pom import diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 03a79157934..d71f010f086 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -33,7 +33,7 @@ com.google.cloud libraries-bom - 26.11.0 + 26.12.0 pom import From afb1ef1fbe63ab1003af8ea6a964d409dfcc673c Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 11 Apr 2023 12:44:12 +0000 Subject: [PATCH 9/9] chore(main): release 6.39.0 (#2368) :robot: I have created a release *beep* *boop* --- ## [6.39.0](https://togithub.com/googleapis/java-spanner/compare/v6.38.2...v6.39.0) (2023-04-11) ### Features * Capture stack trace for session checkout is now optional ([#2350](https://togithub.com/googleapis/java-spanner/issues/2350)) ([6b6427a](https://togithub.com/googleapis/java-spanner/commit/6b6427a25af25fde944dfc1dd4bf6a6463682caf)) --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ google-cloud-spanner-bom/pom.xml | 20 +++++++++---------- google-cloud-spanner-executor/pom.xml | 4 ++-- google-cloud-spanner/pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../pom.xml | 4 ++-- grpc-google-cloud-spanner-v1/pom.xml | 4 ++-- pom.xml | 16 +++++++-------- .../pom.xml | 4 ++-- .../pom.xml | 4 ++-- proto-google-cloud-spanner-v1/pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 16 +++++++-------- 13 files changed, 50 insertions(+), 43 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0d1004e590d..45d5540ad69 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [6.39.0](https://github.com/googleapis/java-spanner/compare/v6.38.2...v6.39.0) (2023-04-11) + + +### Features + +* Capture stack trace for session checkout is now optional ([#2350](https://github.com/googleapis/java-spanner/issues/2350)) ([6b6427a](https://github.com/googleapis/java-spanner/commit/6b6427a25af25fde944dfc1dd4bf6a6463682caf)) + ## [6.38.2](https://github.com/googleapis/java-spanner/compare/v6.38.1...v6.38.2) (2023-04-01) diff --git a/google-cloud-spanner-bom/pom.xml b/google-cloud-spanner-bom/pom.xml index c0e6b497512..50a4cb5b73e 100644 --- a/google-cloud-spanner-bom/pom.xml +++ b/google-cloud-spanner-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-spanner-bom - 6.38.3-SNAPSHOT + 6.39.0 pom com.google.cloud @@ -53,48 +53,48 @@ com.google.cloud google-cloud-spanner - 6.38.3-SNAPSHOT + 6.39.0 com.google.cloud google-cloud-spanner-executor - 6.38.3-SNAPSHOT + 6.39.0 com.google.cloud google-cloud-spanner test-jar - 6.38.3-SNAPSHOT + 6.39.0 com.google.api.grpc grpc-google-cloud-spanner-v1 - 6.38.3-SNAPSHOT + 6.39.0 com.google.api.grpc grpc-google-cloud-spanner-admin-instance-v1 - 6.38.3-SNAPSHOT + 6.39.0 com.google.api.grpc grpc-google-cloud-spanner-admin-database-v1 - 6.38.3-SNAPSHOT + 6.39.0 com.google.api.grpc proto-google-cloud-spanner-admin-instance-v1 - 6.38.3-SNAPSHOT + 6.39.0 com.google.api.grpc proto-google-cloud-spanner-v1 - 6.38.3-SNAPSHOT + 6.39.0 com.google.api.grpc proto-google-cloud-spanner-admin-database-v1 - 6.38.3-SNAPSHOT + 6.39.0
diff --git a/google-cloud-spanner-executor/pom.xml b/google-cloud-spanner-executor/pom.xml index fce4f99199e..7d4b8207ffd 100644 --- a/google-cloud-spanner-executor/pom.xml +++ b/google-cloud-spanner-executor/pom.xml @@ -5,14 +5,14 @@ 4.0.0 com.google.cloud google-cloud-spanner-executor - 6.38.3-SNAPSHOT + 6.39.0 jar Google Cloud Spanner Executor com.google.cloud google-cloud-spanner-parent - 6.38.3-SNAPSHOT + 6.39.0 diff --git a/google-cloud-spanner/pom.xml b/google-cloud-spanner/pom.xml index 00410415938..016c5c02352 100644 --- a/google-cloud-spanner/pom.xml +++ b/google-cloud-spanner/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-spanner - 6.38.3-SNAPSHOT + 6.39.0 jar Google Cloud Spanner https://github.com/googleapis/java-spanner @@ -11,7 +11,7 @@ com.google.cloud google-cloud-spanner-parent - 6.38.3-SNAPSHOT + 6.39.0 google-cloud-spanner diff --git a/grpc-google-cloud-spanner-admin-database-v1/pom.xml b/grpc-google-cloud-spanner-admin-database-v1/pom.xml index 23a219e9bcd..41fa839ae18 100644 --- a/grpc-google-cloud-spanner-admin-database-v1/pom.xml +++ b/grpc-google-cloud-spanner-admin-database-v1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-spanner-admin-database-v1 - 6.38.3-SNAPSHOT + 6.39.0 grpc-google-cloud-spanner-admin-database-v1 GRPC library for grpc-google-cloud-spanner-admin-database-v1 com.google.cloud google-cloud-spanner-parent - 6.38.3-SNAPSHOT + 6.39.0 diff --git a/grpc-google-cloud-spanner-admin-instance-v1/pom.xml b/grpc-google-cloud-spanner-admin-instance-v1/pom.xml index f0c66b99854..2b4150d6717 100644 --- a/grpc-google-cloud-spanner-admin-instance-v1/pom.xml +++ b/grpc-google-cloud-spanner-admin-instance-v1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-spanner-admin-instance-v1 - 6.38.3-SNAPSHOT + 6.39.0 grpc-google-cloud-spanner-admin-instance-v1 GRPC library for grpc-google-cloud-spanner-admin-instance-v1 com.google.cloud google-cloud-spanner-parent - 6.38.3-SNAPSHOT + 6.39.0 diff --git a/grpc-google-cloud-spanner-v1/pom.xml b/grpc-google-cloud-spanner-v1/pom.xml index e730f09c287..975d18aa11f 100644 --- a/grpc-google-cloud-spanner-v1/pom.xml +++ b/grpc-google-cloud-spanner-v1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-spanner-v1 - 6.38.3-SNAPSHOT + 6.39.0 grpc-google-cloud-spanner-v1 GRPC library for grpc-google-cloud-spanner-v1 com.google.cloud google-cloud-spanner-parent - 6.38.3-SNAPSHOT + 6.39.0 diff --git a/pom.xml b/pom.xml index 0e7262e1816..6f7691e4889 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-spanner-parent pom - 6.38.3-SNAPSHOT + 6.39.0 Google Cloud Spanner Parent https://github.com/googleapis/java-spanner @@ -62,37 +62,37 @@ com.google.api.grpc proto-google-cloud-spanner-admin-instance-v1 - 6.38.3-SNAPSHOT + 6.39.0 com.google.api.grpc proto-google-cloud-spanner-v1 - 6.38.3-SNAPSHOT + 6.39.0 com.google.api.grpc proto-google-cloud-spanner-admin-database-v1 - 6.38.3-SNAPSHOT + 6.39.0 com.google.api.grpc grpc-google-cloud-spanner-v1 - 6.38.3-SNAPSHOT + 6.39.0 com.google.api.grpc grpc-google-cloud-spanner-admin-instance-v1 - 6.38.3-SNAPSHOT + 6.39.0 com.google.api.grpc grpc-google-cloud-spanner-admin-database-v1 - 6.38.3-SNAPSHOT + 6.39.0 com.google.cloud google-cloud-spanner - 6.38.3-SNAPSHOT + 6.39.0 diff --git a/proto-google-cloud-spanner-admin-database-v1/pom.xml b/proto-google-cloud-spanner-admin-database-v1/pom.xml index 1da95ff1b72..86dff2e60ec 100644 --- a/proto-google-cloud-spanner-admin-database-v1/pom.xml +++ b/proto-google-cloud-spanner-admin-database-v1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-cloud-spanner-admin-database-v1 - 6.38.3-SNAPSHOT + 6.39.0 proto-google-cloud-spanner-admin-database-v1 PROTO library for proto-google-cloud-spanner-admin-database-v1 com.google.cloud google-cloud-spanner-parent - 6.38.3-SNAPSHOT + 6.39.0 diff --git a/proto-google-cloud-spanner-admin-instance-v1/pom.xml b/proto-google-cloud-spanner-admin-instance-v1/pom.xml index 6a3d05ca729..27d98281860 100644 --- a/proto-google-cloud-spanner-admin-instance-v1/pom.xml +++ b/proto-google-cloud-spanner-admin-instance-v1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-cloud-spanner-admin-instance-v1 - 6.38.3-SNAPSHOT + 6.39.0 proto-google-cloud-spanner-admin-instance-v1 PROTO library for proto-google-cloud-spanner-admin-instance-v1 com.google.cloud google-cloud-spanner-parent - 6.38.3-SNAPSHOT + 6.39.0 diff --git a/proto-google-cloud-spanner-v1/pom.xml b/proto-google-cloud-spanner-v1/pom.xml index 1db2a0f63cf..4a8bdde2c8a 100644 --- a/proto-google-cloud-spanner-v1/pom.xml +++ b/proto-google-cloud-spanner-v1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-cloud-spanner-v1 - 6.38.3-SNAPSHOT + 6.39.0 proto-google-cloud-spanner-v1 PROTO library for proto-google-cloud-spanner-v1 com.google.cloud google-cloud-spanner-parent - 6.38.3-SNAPSHOT + 6.39.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 42c7faae1e2..77ca740ce52 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -31,7 +31,7 @@ com.google.cloud google-cloud-spanner - 6.38.3-SNAPSHOT + 6.39.0 diff --git a/versions.txt b/versions.txt index ff3c5155c1e..5bdd8e5e760 100644 --- a/versions.txt +++ b/versions.txt @@ -1,11 +1,11 @@ # Format: # module:released-version:current-version -proto-google-cloud-spanner-admin-instance-v1:6.38.2:6.38.3-SNAPSHOT -proto-google-cloud-spanner-v1:6.38.2:6.38.3-SNAPSHOT -proto-google-cloud-spanner-admin-database-v1:6.38.2:6.38.3-SNAPSHOT -grpc-google-cloud-spanner-v1:6.38.2:6.38.3-SNAPSHOT -grpc-google-cloud-spanner-admin-instance-v1:6.38.2:6.38.3-SNAPSHOT -grpc-google-cloud-spanner-admin-database-v1:6.38.2:6.38.3-SNAPSHOT -google-cloud-spanner:6.38.2:6.38.3-SNAPSHOT -google-cloud-spanner-executor:6.38.2:6.38.3-SNAPSHOT +proto-google-cloud-spanner-admin-instance-v1:6.39.0:6.39.0 +proto-google-cloud-spanner-v1:6.39.0:6.39.0 +proto-google-cloud-spanner-admin-database-v1:6.39.0:6.39.0 +grpc-google-cloud-spanner-v1:6.39.0:6.39.0 +grpc-google-cloud-spanner-admin-instance-v1:6.39.0:6.39.0 +grpc-google-cloud-spanner-admin-database-v1:6.39.0:6.39.0 +google-cloud-spanner:6.39.0:6.39.0 +google-cloud-spanner-executor:6.39.0:6.39.0