Skip to content
This repository has been archived by the owner on Dec 15, 2023. It is now read-only.

Commit

Permalink
fix: update retry configs, adds generated samples (#26)
Browse files Browse the repository at this point in the history
  • Loading branch information
yoshi-automation authored and chingor13 committed Oct 18, 2019
1 parent e2d5a9d commit f111aee
Show file tree
Hide file tree
Showing 111 changed files with 4,970 additions and 2,322 deletions.
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/bug_report.md
Expand Up @@ -10,7 +10,7 @@ Thanks for stopping by to let us know something could be better!

Please run down the following list and make sure you've tried the usual "quick fixes":

- Search the issues already opened: https://github.com/googleapis/google-cloud-speect/issues
- Search the issues already opened: https://github.com/googleapis/java-speech/issues
- Check for answers on StackOverflow: http://stackoverflow.com/questions/tagged/google-cloud-platform

If you are still having issues, please include as much information as possible:
Expand Down Expand Up @@ -48,4 +48,4 @@ Any relevant stacktrace here.

Following these steps guarantees the quickest resolution possible.

Thanks!
Thanks!
1 change: 1 addition & 0 deletions .github/release-please.yml
@@ -0,0 +1 @@
releaseType: java-yoshi
2 changes: 2 additions & 0 deletions .kokoro/build.sh
Expand Up @@ -39,6 +39,7 @@ case ${JOB_TYPE} in
test)
mvn test -B
bash ${KOKORO_GFILE_DIR}/codecov.sh
bash .kokoro/coerce_logs.sh
;;
lint)
mvn com.coveo:fmt-maven-plugin:check
Expand All @@ -48,6 +49,7 @@ javadoc)
;;
integration)
mvn -B ${INTEGRATION_TEST_ARGS} -DtrimStackTrace=false -fae verify
bash .kokoro/coerce_logs.sh
;;
*)
;;
Expand Down
38 changes: 38 additions & 0 deletions .kokoro/coerce_logs.sh
@@ -0,0 +1,38 @@
#!/bin/bash
# Copyright 2019 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# This script finds and moves sponge logs so that they can be found by placer
# and are not flagged as flaky by sponge.

set -eo pipefail

## Get the directory of the build script
scriptDir=$(realpath $(dirname "${BASH_SOURCE[0]}"))
## cd to the parent directory, i.e. the root of the git repo
cd ${scriptDir}/..

job=$(basename ${KOKORO_JOB_NAME})

echo "coercing sponge logs..."
for xml in `find . -name *-sponge_log.xml`
do
echo "processing ${xml}"
class=$(basename ${xml} | cut -d- -f2)
dir=$(dirname ${xml})/${job}/${class}
text=$(dirname ${xml})/${class}-sponge_log.txt
mkdir -p ${dir}
mv ${xml} ${dir}/sponge_log.xml
mv ${text} ${dir}/sponge_log.txt
done
1 change: 1 addition & 0 deletions .kokoro/continuous/common.cfg
Expand Up @@ -4,6 +4,7 @@
action {
define_artifacts {
regex: "**/*sponge_log.xml"
regex: "**/*sponge_log.txt"
}
}

Expand Down
1 change: 1 addition & 0 deletions .kokoro/nightly/common.cfg
Expand Up @@ -4,6 +4,7 @@
action {
define_artifacts {
regex: "**/*sponge_log.xml"
regex: "**/*sponge_log.txt"
}
}

Expand Down
1 change: 1 addition & 0 deletions .kokoro/presubmit/common.cfg
Expand Up @@ -4,6 +4,7 @@
action {
define_artifacts {
regex: "**/*sponge_log.xml"
regex: "**/*sponge_log.txt"
}
}

Expand Down
5 changes: 4 additions & 1 deletion .kokoro/release/snapshot.sh
Expand Up @@ -19,6 +19,9 @@ source $(dirname "$0")/common.sh
MAVEN_SETTINGS_FILE=$(realpath $(dirname "$0")/../../)/settings.xml
pushd $(dirname "$0")/../../

# ensure we're trying to push a snapshot (no-result returns non-zero exit code)
grep SNAPSHOT versions.txt

setup_environment_secrets
create_settings_xml_file "settings.xml"

Expand All @@ -27,4 +30,4 @@ mvn clean install deploy -B \
-DperformRelease=true \
-Dgpg.executable=gpg \
-Dgpg.passphrase=${GPG_PASSPHRASE} \
-Dgpg.homedir=${GPG_HOMEDIR}
-Dgpg.homedir=${GPG_HOMEDIR}
1 change: 1 addition & 0 deletions .kokoro/release/stage.sh
Expand Up @@ -28,6 +28,7 @@ create_settings_xml_file "settings.xml"

mvn clean install deploy -B \
--settings ${MAVEN_SETTINGS_FILE} \
-DskipTests=true \
-DperformRelease=true \
-Dgpg.executable=gpg \
-Dgpg.passphrase=${GPG_PASSPHRASE} \
Expand Down
Expand Up @@ -196,9 +196,9 @@ public final OperationsClient getOperationsClient() {
* }
* </code></pre>
*
* @param config &#42;Required&#42; Provides information to the recognizer that specifies how to
* process the request.
* @param audio &#42;Required&#42; The audio data to be recognized.
* @param config Required. Provides information to the recognizer that specifies how to process
* the request.
* @param audio Required. The audio data to be recognized.
* @throws com.google.api.gax.rpc.ApiException if the remote call fails
*/
public final RecognizeResponse recognize(RecognitionConfig config, RecognitionAudio audio) {
Expand Down Expand Up @@ -283,7 +283,8 @@ public final UnaryCallable<RecognizeRequest, RecognizeResponse> recognizeCallabl
/**
* Performs asynchronous speech recognition: receive results via the google.longrunning.Operations
* interface. Returns either an `Operation.error` or an `Operation.response` which contains a
* `LongRunningRecognizeResponse` message.
* `LongRunningRecognizeResponse` message. For more information on asynchronous speech
* recognition, see the [how-to](https://cloud.google.com/speech-to-text/docs/async-recognize).
*
* <p>Sample code:
*
Expand All @@ -305,9 +306,9 @@ public final UnaryCallable<RecognizeRequest, RecognizeResponse> recognizeCallabl
* }
* </code></pre>
*
* @param config &#42;Required&#42; Provides information to the recognizer that specifies how to
* process the request.
* @param audio &#42;Required&#42; The audio data to be recognized.
* @param config Required. Provides information to the recognizer that specifies how to process
* the request.
* @param audio Required. The audio data to be recognized.
* @throws com.google.api.gax.rpc.ApiException if the remote call fails
*/
@BetaApi(
Expand All @@ -324,7 +325,8 @@ public final UnaryCallable<RecognizeRequest, RecognizeResponse> recognizeCallabl
/**
* Performs asynchronous speech recognition: receive results via the google.longrunning.Operations
* interface. Returns either an `Operation.error` or an `Operation.response` which contains a
* `LongRunningRecognizeResponse` message.
* `LongRunningRecognizeResponse` message. For more information on asynchronous speech
* recognition, see the [how-to](https://cloud.google.com/speech-to-text/docs/async-recognize).
*
* <p>Sample code:
*
Expand Down Expand Up @@ -364,7 +366,8 @@ public final UnaryCallable<RecognizeRequest, RecognizeResponse> recognizeCallabl
/**
* Performs asynchronous speech recognition: receive results via the google.longrunning.Operations
* interface. Returns either an `Operation.error` or an `Operation.response` which contains a
* `LongRunningRecognizeResponse` message.
* `LongRunningRecognizeResponse` message. For more information on asynchronous speech
* recognition, see the [how-to](https://cloud.google.com/speech-to-text/docs/async-recognize).
*
* <p>Sample code:
*
Expand Down Expand Up @@ -403,7 +406,8 @@ public final UnaryCallable<RecognizeRequest, RecognizeResponse> recognizeCallabl
/**
* Performs asynchronous speech recognition: receive results via the google.longrunning.Operations
* interface. Returns either an `Operation.error` or an `Operation.response` which contains a
* `LongRunningRecognizeResponse` message.
* `LongRunningRecognizeResponse` message. For more information on asynchronous speech
* recognition, see the [how-to](https://cloud.google.com/speech-to-text/docs/async-recognize).
*
* <p>Sample code:
*
Expand Down
Expand Up @@ -15,7 +15,7 @@
*/

/**
* A client to Cloud Speech API.
* A client to Cloud Speech-to-Text API.
*
* <p>The interfaces provided are listed below, along with usage samples.
*
Expand Down
Expand Up @@ -36,7 +36,7 @@

// AUTO-GENERATED DOCUMENTATION AND CLASS
/**
* gRPC callable factory implementation for Cloud Speech API.
* gRPC callable factory implementation for Cloud Speech-to-Text API.
*
* <p>This class is for advanced usage.
*/
Expand Down
Expand Up @@ -41,7 +41,7 @@

// AUTO-GENERATED DOCUMENTATION AND CLASS
/**
* gRPC stub implementation for Cloud Speech API.
* gRPC stub implementation for Cloud Speech-to-Text API.
*
* <p>This class is for advanced usage and reflects the underlying API directly.
*/
Expand Down
Expand Up @@ -33,7 +33,7 @@

// AUTO-GENERATED DOCUMENTATION AND CLASS
/**
* Base stub class for Cloud Speech API.
* Base stub class for Cloud Speech-to-Text API.
*
* <p>This class is for advanced usage and reflects the underlying API directly.
*/
Expand Down
Expand Up @@ -233,10 +233,10 @@ public static class Builder extends StubSettings.Builder<SpeechStubSettings, Bui
.setInitialRetryDelay(Duration.ofMillis(100L))
.setRetryDelayMultiplier(1.3)
.setMaxRetryDelay(Duration.ofMillis(60000L))
.setInitialRpcTimeout(Duration.ofMillis(1000000L))
.setInitialRpcTimeout(Duration.ofMillis(20000L))
.setRpcTimeoutMultiplier(1.0)
.setMaxRpcTimeout(Duration.ofMillis(1000000L))
.setTotalTimeout(Duration.ofMillis(5000000L))
.setMaxRpcTimeout(Duration.ofMillis(20000L))
.setTotalTimeout(Duration.ofMillis(600000L))
.build();
definitions.put("default", settings);
RETRY_PARAM_DEFINITIONS = definitions.build();
Expand Down Expand Up @@ -277,7 +277,7 @@ private static Builder initDefaults(Builder builder) {

builder
.recognizeSettings()
.setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("idempotent"))
.setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("non_idempotent"))
.setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default"));

builder
Expand All @@ -301,13 +301,13 @@ private static Builder initDefaults(Builder builder) {
.setPollingAlgorithm(
OperationTimedPollAlgorithm.create(
RetrySettings.newBuilder()
.setInitialRetryDelay(Duration.ofMillis(20000L))
.setInitialRetryDelay(Duration.ofMillis(500L))
.setRetryDelayMultiplier(1.5)
.setMaxRetryDelay(Duration.ofMillis(45000L))
.setMaxRetryDelay(Duration.ofMillis(5000L))
.setInitialRpcTimeout(Duration.ZERO) // ignored
.setRpcTimeoutMultiplier(1.0) // ignored
.setMaxRpcTimeout(Duration.ZERO) // ignored
.setTotalTimeout(Duration.ofMillis(86400000L))
.setTotalTimeout(Duration.ofMillis(300000L))

This comment has been minimized.

Copy link
@dehler

dehler Jun 23, 2021

Why was this changed?

All client.longRunningRecognizeAsync requests throws a CancellationException after 5 minutes

This issue was raised here: https://github.com/googleapis/java-speech/issues/207
Which lead to adding to the readme a workaround:
https://github.com/googleapis/google-cloud-java#long-running-operations

But not documented here: https://cloud.google.com/speech-to-text/docs/async-recognize
And not obvious if used via a maven package

.build()));

return builder;
Expand Down
Expand Up @@ -196,9 +196,9 @@ public final OperationsClient getOperationsClient() {
* }
* </code></pre>
*
* @param config &#42;Required&#42; Provides information to the recognizer that specifies how to
* process the request.
* @param audio &#42;Required&#42; The audio data to be recognized.
* @param config Required. Provides information to the recognizer that specifies how to process
* the request.
* @param audio Required. The audio data to be recognized.
* @throws com.google.api.gax.rpc.ApiException if the remote call fails
*/
public final RecognizeResponse recognize(RecognitionConfig config, RecognitionAudio audio) {
Expand Down Expand Up @@ -283,7 +283,8 @@ public final UnaryCallable<RecognizeRequest, RecognizeResponse> recognizeCallabl
/**
* Performs asynchronous speech recognition: receive results via the google.longrunning.Operations
* interface. Returns either an `Operation.error` or an `Operation.response` which contains a
* `LongRunningRecognizeResponse` message.
* `LongRunningRecognizeResponse` message. For more information on asynchronous speech
* recognition, see the [how-to](https://cloud.google.com/speech-to-text/docs/async-recognize).
*
* <p>Sample code:
*
Expand All @@ -305,9 +306,9 @@ public final UnaryCallable<RecognizeRequest, RecognizeResponse> recognizeCallabl
* }
* </code></pre>
*
* @param config &#42;Required&#42; Provides information to the recognizer that specifies how to
* process the request.
* @param audio &#42;Required&#42; The audio data to be recognized.
* @param config Required. Provides information to the recognizer that specifies how to process
* the request.
* @param audio Required. The audio data to be recognized.
* @throws com.google.api.gax.rpc.ApiException if the remote call fails
*/
@BetaApi(
Expand All @@ -324,7 +325,8 @@ public final UnaryCallable<RecognizeRequest, RecognizeResponse> recognizeCallabl
/**
* Performs asynchronous speech recognition: receive results via the google.longrunning.Operations
* interface. Returns either an `Operation.error` or an `Operation.response` which contains a
* `LongRunningRecognizeResponse` message.
* `LongRunningRecognizeResponse` message. For more information on asynchronous speech
* recognition, see the [how-to](https://cloud.google.com/speech-to-text/docs/async-recognize).
*
* <p>Sample code:
*
Expand Down Expand Up @@ -364,7 +366,8 @@ public final UnaryCallable<RecognizeRequest, RecognizeResponse> recognizeCallabl
/**
* Performs asynchronous speech recognition: receive results via the google.longrunning.Operations
* interface. Returns either an `Operation.error` or an `Operation.response` which contains a
* `LongRunningRecognizeResponse` message.
* `LongRunningRecognizeResponse` message. For more information on asynchronous speech
* recognition, see the [how-to](https://cloud.google.com/speech-to-text/docs/async-recognize).
*
* <p>Sample code:
*
Expand Down Expand Up @@ -403,7 +406,8 @@ public final UnaryCallable<RecognizeRequest, RecognizeResponse> recognizeCallabl
/**
* Performs asynchronous speech recognition: receive results via the google.longrunning.Operations
* interface. Returns either an `Operation.error` or an `Operation.response` which contains a
* `LongRunningRecognizeResponse` message.
* `LongRunningRecognizeResponse` message. For more information on asynchronous speech
* recognition, see the [how-to](https://cloud.google.com/speech-to-text/docs/async-recognize).
*
* <p>Sample code:
*
Expand Down
Expand Up @@ -15,7 +15,7 @@
*/

/**
* A client to Cloud Speech API.
* A client to Cloud Speech-to-Text API.
*
* <p>The interfaces provided are listed below, along with usage samples.
*
Expand Down
Expand Up @@ -36,7 +36,7 @@

// AUTO-GENERATED DOCUMENTATION AND CLASS
/**
* gRPC callable factory implementation for Cloud Speech API.
* gRPC callable factory implementation for Cloud Speech-to-Text API.
*
* <p>This class is for advanced usage.
*/
Expand Down
Expand Up @@ -41,7 +41,7 @@

// AUTO-GENERATED DOCUMENTATION AND CLASS
/**
* gRPC stub implementation for Cloud Speech API.
* gRPC stub implementation for Cloud Speech-to-Text API.
*
* <p>This class is for advanced usage and reflects the underlying API directly.
*/
Expand Down
Expand Up @@ -33,7 +33,7 @@

// AUTO-GENERATED DOCUMENTATION AND CLASS
/**
* Base stub class for Cloud Speech API.
* Base stub class for Cloud Speech-to-Text API.
*
* <p>This class is for advanced usage and reflects the underlying API directly.
*/
Expand Down

0 comments on commit f111aee

Please sign in to comment.