Skip to content

Commit 41a86d7

Browse files
authored
Fix SQL Server 2017 CI (#2599)
1 parent a98b694 commit 41a86d7

File tree

5 files changed

+70
-51
lines changed

5 files changed

+70
-51
lines changed

.github/workflows/ci.yaml

+40-26
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ env:
3939
ORG_GRADLE_PROJECT_integrationTestJavaRuntimeVersion: "${{ github.event_name != 'workflow_dispatch' && '8' || inputs.INT_TEST_JAVA_RUNTIME_VERSION }}"
4040
ORG_GRADLE_PROJECT_integrationTestJavaRuntimeVendor: "${{ github.event_name != 'workflow_dispatch' && 'temurin' || inputs.INT_TEST_JAVA_RUNTIME_VENDOR }}"
4141
# This variable evaluates to: if {!(Temurin JDK 8) && !(Oracle JDK)} then {true} else {false}
42+
# Oracle JDK that are linux compatible and publicly available through direct download exist for all LTS versions
4243
SET_UP_INT_TEST_RUNTIME_NON_ORACLE_JDK: "${{ (github.event_name == 'workflow_dispatch' && !(inputs.INT_TEST_JAVA_RUNTIME_VERSION == '8' && inputs.INT_TEST_JAVA_RUNTIME_VENDOR == 'temurin') && !(inputs.INT_TEST_JAVA_RUNTIME_VENDOR == 'oracle')) && 'true' || 'false' }}"
4344
INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT: '"-Dscalardb.consensus_commit.coordinator.group_commit.enabled=true" "-Dscalardb.consensus_commit.coordinator.group_commit.old_group_abort_timeout_millis=15000" --tests "**.ConsensusCommit**"'
4445

@@ -244,9 +245,10 @@ jobs:
244245
name: Cosmos DB integration test (${{ matrix.mode.label }})
245246
runs-on: windows-latest
246247
env:
248+
# Official Oracle JDK images that are windows compatible and publicly available through direct download do not exist for JDK 8 and 11 so we use instead cached versions hosted on the Scalar container registry.
247249
# This variable evaluates to: if {!(Temurin JDK 8) && !(Oracle JDK 8 or 11)} then {true} else {false}
248250
SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11: "${{ (github.event_name == 'workflow_dispatch' && !(inputs.INT_TEST_JAVA_RUNTIME_VERSION == '8' && inputs.INT_TEST_JAVA_RUNTIME_VENDOR == 'temurin') && !(inputs.INT_TEST_JAVA_RUNTIME_VENDOR == 'oracle' && (inputs.INT_TEST_JAVA_RUNTIME_VERSION == '8' || inputs.INT_TEST_JAVA_RUNTIME_VERSION == '11'))) && 'true' || 'false' }}"
249-
SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11: "${{ (inputs.INT_TEST_JAVA_RUNTIME_VENDOR == 'oracle' && (inputs.INT_TEST_JAVA_RUNTIME_VERSION == '8' || inputs.INT_TEST_JAVA_RUNTIME_VERSION == '11')) && 'true' || 'false' }}"
251+
SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11: "${{ ((inputs.INT_TEST_JAVA_RUNTIME_VERSION == '8' || inputs.INT_TEST_JAVA_RUNTIME_VERSION == '11') && inputs.INT_TEST_JAVA_RUNTIME_VENDOR == 'oracle') && 'true' || 'false' }}"
250252

251253
strategy:
252254
matrix:
@@ -1120,18 +1122,12 @@ jobs:
11201122

11211123
integration-test-for-jdbc-sqlserver-2017:
11221124
name: SQL Server 2017 integration test (${{ matrix.mode.label }})
1123-
runs-on: ubuntu-20.04
1124-
1125-
services:
1126-
sqlserver:
1127-
image: mcr.microsoft.com/mssql/server:2017-latest
1128-
env:
1129-
MSSQL_PID: "Express"
1130-
SA_PASSWORD: "SqlServer17"
1131-
ACCEPT_EULA: "Y"
1132-
ports:
1133-
- 1433:1433
1134-
options: --name sqlserver17
1125+
runs-on: windows-latest
1126+
env:
1127+
# Official Oracle JDK images that are windows compatible and publicly available through direct download do not exist for JDK 8 and 11 so we use instead cached versions hosted on the Scalar container registry.
1128+
# This variable evaluates to: if {!(Temurin JDK 8) && !(Oracle JDK 8 or 11)} then {true} else {false}
1129+
SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11: "${{ (github.event_name == 'workflow_dispatch' && !(inputs.INT_TEST_JAVA_RUNTIME_VERSION == '8' && inputs.INT_TEST_JAVA_RUNTIME_VENDOR == 'temurin') && !(inputs.INT_TEST_JAVA_RUNTIME_VENDOR == 'oracle' && (inputs.INT_TEST_JAVA_RUNTIME_VERSION == '8' || inputs.INT_TEST_JAVA_RUNTIME_VERSION == '11'))) && 'true' || 'false' }}"
1130+
SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11: "${{ ((inputs.INT_TEST_JAVA_RUNTIME_VERSION == '8' || inputs.INT_TEST_JAVA_RUNTIME_VERSION == '11') && inputs.INT_TEST_JAVA_RUNTIME_VENDOR == 'oracle') && 'true' || 'false' }}"
11351131

11361132
strategy:
11371133
matrix:
@@ -1144,6 +1140,13 @@ jobs:
11441140
steps:
11451141
- uses: actions/checkout@v4
11461142

1143+
- name: Setup Sql Server 2017
1144+
uses: rails-sqlserver/setup-mssql@v1
1145+
with:
1146+
components: sqlcmd,sqlengine
1147+
sa-password: "SqlServer17"
1148+
version: 2017
1149+
11471150
- name: Set up JDK ${{ env.JAVA_VERSION }} (${{ env.JAVA_VENDOR }})
11481151
uses: actions/setup-java@v4
11491152
with:
@@ -1152,34 +1155,45 @@ jobs:
11521155

11531156
- name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}) to run integration test
11541157
uses: actions/setup-java@v4
1155-
if: ${{ env.SET_UP_INT_TEST_RUNTIME_NON_ORACLE_JDK == 'true'}}
1158+
if: ${{ env.SET_UP_INT_TEST_RUNTIME_JDK_WHEN_NOT_ORACLE_8_OR_11 == 'true'}}
11561159
with:
11571160
java-version: ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}
11581161
distribution: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR }}
11591162

1160-
- name: Login to Oracle container registry
1163+
- name: Login to GitHub Container Registry
11611164
uses: docker/login-action@v3
1162-
if: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR == 'oracle' }}
1165+
if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}}
11631166
with:
1164-
registry: container-registry.oracle.com
1165-
username: ${{ secrets.OCR_USERNAME }}
1166-
password: ${{ secrets.OCR_TOKEN }}
1167+
registry: ghcr.io
1168+
username: ${{ github.repository_owner }}
1169+
password: ${{ secrets.CR_PAT }}
11671170

11681171
- name: Set up JDK ${{ env.INT_TEST_JAVA_RUNTIME_VERSION }} (oracle) to run the integration test
1169-
if: ${{ env.INT_TEST_JAVA_RUNTIME_VENDOR == 'oracle' }}
1172+
if: ${{ env.SET_UP_INT_TEST_RUNTIME_ORACLE_JDK_8_OR_11 == 'true'}}
11701173
run: |
1171-
container_id=$(docker create "container-registry.oracle.com/java/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}")
1172-
docker cp -L "$container_id:/usr/java/default" /usr/lib/jvm/oracle-jdk && docker rm "$container_id"
1174+
$container_id=$(docker create "ghcr.io/scalar-labs/oracle/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}-windows")
1175+
docker cp "${container_id}:oracle-jdk.exe" .
1176+
docker rm "$container_id"
1177+
Write-Host "Install Oracle JDK"
1178+
Start-Process "oracle-jdk.exe" -NoNewWindow -Wait -ArgumentList "/s"
1179+
Write-Host "Oracle JDK installation successful"
1180+
if ( ${env:INT_TEST_JAVA_RUNTIME_VERSION} -eq '8' ) {
1181+
$jdk_root_dir = "jdk-1.8"
1182+
} else {
1183+
$jdk_root_dir = "jdk-11"
1184+
}
1185+
echo "JAVA_HOME=C:\Program Files\Java\${jdk_root_dir}" >> ${env:GITHUB_ENV}
11731186
11741187
- name: Create no superuser
1175-
run: ./ci/no-superuser/create-no-superuser-sqlserver.sh sqlserver17 SqlServer17 10 3
1188+
run: ./ci/no-superuser/create-no-superuser-sqlserver.sh SqlServer17 10 3
1189+
shell: bash
11761190
timeout-minutes: 1
11771191

11781192
- name: Setup Gradle
11791193
uses: gradle/actions/setup-gradle@v4
11801194

11811195
- name: Execute Gradle 'integrationTestJdbc' task
1182-
run: ./gradlew integrationTestJdbc "-Dscalardb.jdbc.url=jdbc:sqlserver://localhost:1433;databaseName=test_db;encrypt=true;trustServerCertificate=true" -Dscalardb.jdbc.username=no_superuser -Dscalardb.jdbc.password=no_superuser_password ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }}
1196+
run: ./gradlew.bat integrationTestJdbc "-Dscalardb.jdbc.url=jdbc:sqlserver://localhost:1433;databaseName=test_db;encrypt=true;trustServerCertificate=true" "-Dfile.encoding=UTF-8" "-Dscalardb.jdbc.username=no_superuser" "-Dscalardb.jdbc.password=no_superuser_password" ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }}
11831197

11841198
- name: Upload Gradle test reports
11851199
if: always()
@@ -1242,7 +1256,7 @@ jobs:
12421256
docker cp -L "$container_id:/usr/java/default" /usr/lib/jvm/oracle-jdk && docker rm "$container_id"
12431257
12441258
- name: Create no superuser
1245-
run: ./ci/no-superuser/create-no-superuser-sqlserver.sh sqlserver19 SqlServer19 10 3
1259+
run: ./ci/no-superuser/create-no-superuser-sqlserver.sh SqlServer19 10 3 sqlserver19
12461260
timeout-minutes: 1
12471261

12481262
- name: Setup Gradle
@@ -1312,7 +1326,7 @@ jobs:
13121326
docker cp -L "$container_id:/usr/java/default" /usr/lib/jvm/oracle-jdk && docker rm "$container_id"
13131327
13141328
- name: Create no superuser
1315-
run: ./ci/no-superuser/create-no-superuser-sqlserver.sh sqlserver22 SqlServer22 10 3
1329+
run: ./ci/no-superuser/create-no-superuser-sqlserver.sh SqlServer22 10 3 sqlserver22
13161330
timeout-minutes: 1
13171331

13181332
- name: Setup Gradle

ci/no-superuser/create-no-superuser-sqlserver.sh

+24-19
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,24 @@
22
set -u
33

44
# Get container name and password from arguments
5-
SQL_SERVER_CONTAINER_NAME=$1
6-
SQL_SERVER_PASSWORD=$2
7-
MAX_RETRY_COUNT=$3
8-
RETRY_INTERVAL=$4
5+
SQL_SERVER_PASSWORD=$1
6+
MAX_RETRY_COUNT=$2
7+
RETRY_INTERVAL=$3
8+
# If set, use `sqlcmd` of the SQL Server docker container. If unset, use `sqlcmd` installed on the host.
9+
SQL_SERVER_CONTAINER_NAME=${4:-''}
910
COUNT=0
1011

11-
# Check if the `/opt/mssql-tools18/bin/sqlcmd` command exists or not.
12-
docker exec -t ${SQL_SERVER_CONTAINER_NAME} ls /opt/mssql-tools18/bin/sqlcmd
13-
if [[ $? -eq 0 ]]; then
14-
SQLCMD=/opt/mssql-tools18/bin/sqlcmd
12+
if [[ -n $SQL_SERVER_CONTAINER_NAME ]]; then
13+
# Check if the `/opt/mssql-tools18/bin/sqlcmd` command exists or not.
14+
docker exec -t ${SQL_SERVER_CONTAINER_NAME} ls /opt/mssql-tools18/bin/sqlcmd
15+
if [[ $? -eq 0 ]]; then
16+
SQLCMD="docker exec -t $SQL_SERVER_CONTAINER_NAME /opt/mssql-tools18/bin/sqlcmd"
17+
else
18+
# If there is no `/opt/mssql-tools18/bin/sqlcmd` command, we use old command.
19+
SQLCMD="docker exec -t $SQL_SERVER_CONTAINER_NAME /opt/mssql-tools/bin/sqlcmd"
20+
fi
1521
else
16-
# If there is no `/opt/mssql-tools18/bin/sqlcmd` command, we use old command.
17-
SQLCMD=/opt/mssql-tools/bin/sqlcmd
22+
SQLCMD=sqlcmd
1823
fi
1924

2025
echo "INFO: Creating no superuser start."
@@ -30,7 +35,7 @@ do
3035

3136
echo "INFO: Retry count: ${COUNT}"
3237

33-
docker exec -t ${SQL_SERVER_CONTAINER_NAME} ${SQLCMD} -S localhost -U sa -P ${SQL_SERVER_PASSWORD} -d master -C -Q "SELECT 1"
38+
${SQLCMD} -S localhost -U sa -P ${SQL_SERVER_PASSWORD} -d master -C -Q "SELECT 1"
3439

3540
if [[ $? -eq 0 ]]; then
3641
break
@@ -50,40 +55,40 @@ echo "INFO: sqlcmd command succeeded. Continue creating no superuser."
5055

5156
# Create login
5257
echo "INFO: Create login start"
53-
docker exec -t ${SQL_SERVER_CONTAINER_NAME} ${SQLCMD} -S localhost -U sa -P ${SQL_SERVER_PASSWORD} -d master -C -Q "CREATE LOGIN no_superuser WITH PASSWORD = 'no_superuser_password', DEFAULT_DATABASE = master , CHECK_POLICY = OFF, CHECK_EXPIRATION = OFF"
58+
${SQLCMD} -S localhost -U sa -P ${SQL_SERVER_PASSWORD} -d master -C -Q "CREATE LOGIN no_superuser WITH PASSWORD = 'no_superuser_password', DEFAULT_DATABASE = master , CHECK_POLICY = OFF, CHECK_EXPIRATION = OFF"
5459
echo "INFO: Create login end"
5560

5661
# Create database
5762
echo "INFO: Create database start"
58-
docker exec -t ${SQL_SERVER_CONTAINER_NAME} ${SQLCMD} -S localhost -U sa -P ${SQL_SERVER_PASSWORD} -d master -C -Q "CREATE DATABASE test_db COLLATE Japanese_BIN2"
63+
${SQLCMD} -S localhost -U sa -P ${SQL_SERVER_PASSWORD} -d master -C -Q "CREATE DATABASE test_db COLLATE Japanese_BIN2"
5964
echo "INFO: Create database end"
6065

6166
# Create no_superuser
6267
echo "INFO: Create no_superuser start"
63-
docker exec -t ${SQL_SERVER_CONTAINER_NAME} ${SQLCMD} -S localhost -U sa -P ${SQL_SERVER_PASSWORD} -d test_db -C -Q "CREATE USER no_superuser FOR LOGIN no_superuser"
68+
${SQLCMD} -S localhost -U sa -P ${SQL_SERVER_PASSWORD} -d test_db -C -Q "CREATE USER no_superuser FOR LOGIN no_superuser"
6469
echo "INFO: Create no_superuser end"
6570

6671
# Add roles
6772
echo "INFO: Add role db_ddladmin start"
68-
docker exec -t ${SQL_SERVER_CONTAINER_NAME} ${SQLCMD} -S localhost -U sa -P ${SQL_SERVER_PASSWORD} -d test_db -C -Q "EXEC sp_addrolemember @rolename = 'db_ddladmin', @membername = 'no_superuser'"
73+
${SQLCMD} -S localhost -U sa -P ${SQL_SERVER_PASSWORD} -d test_db -C -Q "EXEC sp_addrolemember @rolename = 'db_ddladmin', @membername = 'no_superuser'"
6974
echo "INFO: Add role db_ddladmin end"
7075

7176
echo "INFO: Add role db_datawriter start"
72-
docker exec -t ${SQL_SERVER_CONTAINER_NAME} ${SQLCMD} -S localhost -U sa -P ${SQL_SERVER_PASSWORD} -d test_db -C -Q "EXEC sp_addrolemember @rolename = 'db_datawriter', @membername = 'no_superuser'"
77+
${SQLCMD} -S localhost -U sa -P ${SQL_SERVER_PASSWORD} -d test_db -C -Q "EXEC sp_addrolemember @rolename = 'db_datawriter', @membername = 'no_superuser'"
7378
echo "INFO: Add role db_datawriter end"
7479

7580
echo "INFO: Add role db_datareader start"
76-
docker exec -t ${SQL_SERVER_CONTAINER_NAME} ${SQLCMD} -S localhost -U sa -P ${SQL_SERVER_PASSWORD} -d test_db -C -Q "EXEC sp_addrolemember @rolename = 'db_datareader', @membername = 'no_superuser'"
81+
${SQLCMD} -S localhost -U sa -P ${SQL_SERVER_PASSWORD} -d test_db -C -Q "EXEC sp_addrolemember @rolename = 'db_datareader', @membername = 'no_superuser'"
7782
echo "INFO: Add role db_datareader end"
7883

7984
# Check the collation of test_db (for debugging purposes)
8085
echo "INFO: Check collation start"
81-
docker exec -t ${SQL_SERVER_CONTAINER_NAME} ${SQLCMD} -S localhost -U no_superuser -P no_superuser_password -d test_db -C -Q "SELECT name, collation_name FROM sys.databases"
86+
${SQLCMD} -S localhost -U no_superuser -P no_superuser_password -d test_db -C -Q "SELECT name, collation_name FROM sys.databases"
8287
echo "INFO: Check collation end"
8388

8489
# Check if no_superuser can access SQL Server (for debugging purposes)
8590
echo "INFO: SELECT @@version start"
86-
docker exec -t ${SQL_SERVER_CONTAINER_NAME} ${SQLCMD} -S localhost -U no_superuser -P no_superuser_password -d test_db -C -Q "SELECT @@version"
91+
${SQLCMD} -S localhost -U no_superuser -P no_superuser_password -d test_db -C -Q "SELECT @@version"
8792
echo "INFO: SELECT @@version end"
8893

8994
echo "INFO: Creating no superuser succeeded."

integration-test/src/main/java/com/scalar/db/transaction/consensuscommit/ConsensusCommitNullMetadataIntegrationTestBase.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -638,7 +638,7 @@ public void scan_ScanGivenForPreparedWhenCoordinatorStateAborted_ShouldRollback(
638638
selection_SelectionGivenForPreparedWhenCoordinatorStateNotExistAndExpired_ShouldAbortTransaction(
639639
Selection s) throws ExecutionException, CoordinatorException, TransactionException {
640640
// Arrange
641-
long prepared_at = System.currentTimeMillis() - RecoveryHandler.TRANSACTION_LIFETIME_MILLIS;
641+
long prepared_at = System.currentTimeMillis() - RecoveryHandler.TRANSACTION_LIFETIME_MILLIS - 1;
642642
populatePreparedRecordWithNullMetadataAndCoordinatorStateRecord(
643643
storage, namespace1, TABLE_1, TransactionState.PREPARED, prepared_at, null);
644644
DistributedTransaction transaction = manager.begin();
@@ -1002,7 +1002,7 @@ public void scan_ScanGivenForDeletedWhenCoordinatorStateAborted_ShouldRollback()
10021002
selection_SelectionGivenForDeletedWhenCoordinatorStateNotExistAndExpired_ShouldAbortTransaction(
10031003
Selection s) throws ExecutionException, CoordinatorException, TransactionException {
10041004
// Arrange
1005-
long prepared_at = System.currentTimeMillis() - RecoveryHandler.TRANSACTION_LIFETIME_MILLIS;
1005+
long prepared_at = System.currentTimeMillis() - RecoveryHandler.TRANSACTION_LIFETIME_MILLIS - 1;
10061006
populatePreparedRecordWithNullMetadataAndCoordinatorStateRecord(
10071007
storage, namespace1, TABLE_1, TransactionState.DELETED, prepared_at, null);
10081008
DistributedTransaction transaction = manager.begin();

integration-test/src/main/java/com/scalar/db/transaction/consensuscommit/ConsensusCommitSpecificIntegrationTestBase.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -512,7 +512,7 @@ public void scan_ScanGivenForPreparedWhenCoordinatorStateAborted_ShouldRollback(
512512
Selection s, CommitType commitType)
513513
throws ExecutionException, CoordinatorException, TransactionException {
514514
// Arrange
515-
long prepared_at = System.currentTimeMillis() - RecoveryHandler.TRANSACTION_LIFETIME_MILLIS;
515+
long prepared_at = System.currentTimeMillis() - RecoveryHandler.TRANSACTION_LIFETIME_MILLIS - 1;
516516
String ongoingTxId =
517517
populatePreparedRecordAndCoordinatorStateRecord(
518518
storage, namespace1, TABLE_1, TransactionState.PREPARED, prepared_at, null, commitType);
@@ -919,7 +919,7 @@ public void scan_ScanGivenForDeletedWhenCoordinatorStateAborted_ShouldRollback(
919919
Selection s, CommitType commitType)
920920
throws ExecutionException, CoordinatorException, TransactionException {
921921
// Arrange
922-
long prepared_at = System.currentTimeMillis() - RecoveryHandler.TRANSACTION_LIFETIME_MILLIS;
922+
long prepared_at = System.currentTimeMillis() - RecoveryHandler.TRANSACTION_LIFETIME_MILLIS - 1;
923923
String ongoingTxId =
924924
populatePreparedRecordAndCoordinatorStateRecord(
925925
storage, namespace1, TABLE_1, TransactionState.DELETED, prepared_at, null, commitType);

integration-test/src/main/java/com/scalar/db/transaction/consensuscommit/TwoPhaseConsensusCommitSpecificIntegrationTestBase.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -418,7 +418,7 @@ public void scan_ScanGivenForPreparedWhenCoordinatorStateAborted_ShouldRollback(
418418
SelectionType selectionType)
419419
throws ExecutionException, TransactionException, CoordinatorException {
420420
// Arrange
421-
long prepared_at = System.currentTimeMillis() - RecoveryHandler.TRANSACTION_LIFETIME_MILLIS;
421+
long prepared_at = System.currentTimeMillis() - RecoveryHandler.TRANSACTION_LIFETIME_MILLIS - 1;
422422
populatePreparedRecordAndCoordinatorStateRecordForStorage1(
423423
TransactionState.PREPARED, prepared_at, null);
424424

@@ -794,7 +794,7 @@ public void scan_ScanGivenForDeletedWhenCoordinatorStateAborted_ShouldRollback()
794794
SelectionType selectionType)
795795
throws ExecutionException, TransactionException, CoordinatorException {
796796
// Arrange
797-
long prepared_at = System.currentTimeMillis() - RecoveryHandler.TRANSACTION_LIFETIME_MILLIS;
797+
long prepared_at = System.currentTimeMillis() - RecoveryHandler.TRANSACTION_LIFETIME_MILLIS - 1;
798798
populatePreparedRecordAndCoordinatorStateRecordForStorage1(
799799
TransactionState.DELETED, prepared_at, null);
800800

0 commit comments

Comments
 (0)