Skip to content

Commit 281a729

Browse files
craig[bot]kev-caomgartner
committed
142062: test: add test filter environment variable to cloud unit tests r=jeffswenson a=kev-cao Epic: none Release note: None 142079: sql: add comment for auto-rollback r=mgartner a=mgartner A comment has been added to explain logic added in #140160. Epic: None Release note: None Co-authored-by: Kevin Cao <kevin.cao@cockroachlabs.com> Co-authored-by: Marcus Gartner <marcus@cockroachlabs.com>
3 parents cd670bc + af9cfe2 + 635d4c1 commit 281a729

3 files changed

Lines changed: 19 additions & 5 deletions

File tree

build/teamcity/cockroach/nightlies/cloud_unit_tests.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,6 @@ source "$dir/teamcity-support.sh" # For $root
1414
source "$dir/teamcity-bazel-support.sh" # For run_bazel
1515

1616
tc_start_block "Run cloud unit tests"
17-
BAZEL_SUPPORT_EXTRA_DOCKER_ARGS="-e GITHUB_API_TOKEN -e GITHUB_REPO -e TC_BUILDTYPE_ID -e TC_BUILD_BRANCH -e TC_BUILD_ID -e TC_SERVER_URL -e GOOGLE_EPHEMERAL_CREDENTIALS -e GOOGLE_KMS_KEY_NAME -e GOOGLE_LIMITED_KEY_ID -e ASSUME_SERVICE_ACCOUNT -e GOOGLE_LIMITED_BUCKET -e ASSUME_SERVICE_ACCOUNT_CHAIN -e AWS_DEFAULT_REGION -e AWS_SHARED_CREDENTIALS_FILE -e AWS_CONFIG_FILE -e AWS_S3_BUCKET -e AWS_ASSUME_ROLE -e AWS_ROLE_ARN_CHAIN -e AWS_KMS_KEY_ARN -e AWS_S3_ENDPOINT -e AWS_KMS_ENDPOINT -e AWS_KMS_REGION -e AWS_ACCESS_KEY_ID -e AWS_SECRET_ACCESS_KEY -e AZURE_ACCOUNT_KEY -e AZURE_ACCOUNT_NAME -e AZURE_CONTAINER -e AZURE_CLIENT_ID -e AZURE_CLIENT_SECRET -e AZURE_TENANT_ID -e AZURE_VAULT_NAME -e AZURE_LIMITED_VAULT_NAME -e AZURE_KMS_KEY_NAME -e AZURE_KMS_KEY_VERSION -e BUILD_VCS_NUMBER" \
17+
BAZEL_SUPPORT_EXTRA_DOCKER_ARGS="-e GITHUB_API_TOKEN -e GITHUB_REPO -e TC_BUILDTYPE_ID -e TC_BUILD_BRANCH -e TC_BUILD_ID -e TC_SERVER_URL -e GOOGLE_EPHEMERAL_CREDENTIALS -e GOOGLE_KMS_KEY_NAME -e GOOGLE_LIMITED_KEY_ID -e ASSUME_SERVICE_ACCOUNT -e GOOGLE_LIMITED_BUCKET -e ASSUME_SERVICE_ACCOUNT_CHAIN -e AWS_DEFAULT_REGION -e AWS_SHARED_CREDENTIALS_FILE -e AWS_CONFIG_FILE -e AWS_S3_BUCKET -e AWS_ASSUME_ROLE -e AWS_ROLE_ARN_CHAIN -e AWS_KMS_KEY_ARN -e AWS_S3_ENDPOINT -e AWS_KMS_ENDPOINT -e AWS_KMS_REGION -e AWS_ACCESS_KEY_ID -e AWS_SECRET_ACCESS_KEY -e AZURE_ACCOUNT_KEY -e AZURE_ACCOUNT_NAME -e AZURE_CONTAINER -e AZURE_CLIENT_ID -e AZURE_CLIENT_SECRET -e AZURE_TENANT_ID -e AZURE_VAULT_NAME -e AZURE_LIMITED_VAULT_NAME -e AZURE_KMS_KEY_NAME -e AZURE_KMS_KEY_VERSION -e BUILD_VCS_NUMBER -e TESTS" \
1818
run_bazel build/teamcity/cockroach/nightlies/cloud_unit_tests_impl.sh "$@"
1919
tc_end_block "Run cloud unit tests"

build/teamcity/cockroach/nightlies/cloud_unit_tests_impl.sh

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,19 @@ $BAZEL_BIN/pkg/cmd/bazci/bazci_/bazci -- test --config=ci \
6969
--test_timeout=900 \
7070
|| exit_status=$?
7171

72+
test_filter="^TestCloudBackupRestore"
73+
# If the TESTS environment variable is set, then it must start with "^TestCloudBackupRestore"
74+
# or else an error will be raised.
75+
if [ -n "${TESTS:-}" ]; then
76+
if [[ "$TESTS" != ^TestCloudBackupRestore* ]]; then
77+
echo "TESTS environment variable must start with '^TestCloudBackupRestore'"
78+
exit 1
79+
fi
80+
test_filter="$TESTS"
81+
fi
82+
7283
$BAZEL_BIN/pkg/cmd/bazci/bazci_/bazci -- test --config=ci \
73-
//pkg/backup:backup_test --test_filter='^TestCloudBackupRestore' \
84+
//pkg/backup:backup_test --test_filter="$test_filter" \
7485
"${bazel_test_env[@]}" \
7586
--test_timeout=900 \
7687
|| exit_status=$?

pkg/sql/conn_executor_exec.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2622,11 +2622,14 @@ func (ex *connExecutor) rollbackSQLTransaction(
26222622
ex.extraTxnState.prepStmtsNamespace.closeAllPortals(ctx, &ex.extraTxnState.prepStmtsNamespaceMemAcc)
26232623
ex.recordDDLTxnTelemetry(true /* failed */)
26242624

2625-
needRollback := true
2625+
// A non-retryable error automatically rolls-back the transaction if there
2626+
// are no savepoints. In that case, we can skip rolling-back the transaction
2627+
// here.
2628+
wasRolledback := false
26262629
if _, isAbortedTxn := ex.machine.CurState().(stateAborted); isAbortedTxn {
2627-
needRollback = ex.state.mu.hasSavepoints
2630+
wasRolledback = !ex.state.mu.hasSavepoints
26282631
}
2629-
if needRollback {
2632+
if !wasRolledback {
26302633
if err := ex.state.mu.txn.Rollback(ctx); err != nil {
26312634
log.Warningf(ctx, "txn rollback failed: %s", err)
26322635
}

0 commit comments

Comments
 (0)