Skip to content

Commit 43e1860

Browse files
chore(.github): test scylla 2025.1.0-rc3 (#4278)
* fix(restore_test): don't create views on tablet tables Ref #4271 * fix(backup_test): don't create views on tablet tables Ref #4271 * fix(repair_test): don't create views on tablet tables Fixes #4271 * chore(.github): test scylla:2025.1.0-rc3
1 parent b321911 commit 43e1860

8 files changed

+222
-143
lines changed

.github/cfg/integration-test-cfg.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -46,13 +46,13 @@
4646
tablets: enabled
4747
ssl-enabled: false
4848

49-
- scylla-version: scylla-enterprise-nightly:latest-enterprise
49+
- scylla-version: scylla:2025.1.0-rc3
5050
ip-family: IPV4
5151
raft-schema: none
5252
tablets: disabled
5353
ssl-enabled: true
5454

55-
- scylla-version: scylla-enterprise-nightly:latest-enterprise
55+
- scylla-version: scylla:2025.1.0-rc3
5656
ip-family: IPV4
5757
raft-schema: none
5858
tablets: enabled

.github/workflows/integration-tests-latest-enterprise-IPV4-tablets-nossl.yaml .github/workflows/integration-tests-2025.1.0-rc3-IPV4-tablets-nossl.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ concurrency:
22
cancel-in-progress: true
33
group: int-${{ github.workflow }}-${{ github.ref }}
44
env:
5-
scylla-version: scylla-enterprise-nightly:latest-enterprise
5+
scylla-version: scylla:2025.1.0-rc3
66
ip-family: IPV4
77
raft-schema: none
88
tablets: enabled
@@ -106,7 +106,7 @@ jobs:
106106
run: make pkg-integration-test PKG=./pkg/store
107107
- name: Run migrate tests
108108
run: make pkg-integration-test PKG=./pkg/schema/migrate
109-
name: integration-tests-latest-enterprise-IPV4-tablets-nossl
109+
name: integration-tests-2025.1.0-rc3-IPV4-tablets-nossl
110110
"on":
111111
pull_request:
112112
types:

.github/workflows/integration-tests-latest-enterprise-IPV4.yaml .github/workflows/integration-tests-2025.1.0-rc3-IPV4.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ concurrency:
22
cancel-in-progress: true
33
group: int-${{ github.workflow }}-${{ github.ref }}
44
env:
5-
scylla-version: scylla-enterprise-nightly:latest-enterprise
5+
scylla-version: scylla:2025.1.0-rc3
66
ip-family: IPV4
77
raft-schema: none
88
tablets: disabled
@@ -106,7 +106,7 @@ jobs:
106106
run: make pkg-integration-test PKG=./pkg/store
107107
- name: Run migrate tests
108108
run: make pkg-integration-test PKG=./pkg/schema/migrate
109-
name: integration-tests-latest-enterprise-IPV4
109+
name: integration-tests-2025.1.0-rc3-IPV4
110110
"on":
111111
pull_request:
112112
types:

README.md

+8-8
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,12 @@ Scylla Manager consists of tree components:
1515

1616
## Scylla integration status
1717

18-
| ScyllaDB version | Workflows | Limitations |
19-
|-----------------------|-------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------|
20-
| **2024.1.12** | ![integration-tests-2024.1.12-IPV4]<br/>![integration-tests-2024.1.12-IPV6] | Restoration of schema into cluster with `consistant_cluster_management: true` is not supported |
21-
| **2023.1.11** | ![integration-tests-2023.1.11-IPV4]<br/>![integration-tests-2023.1.11-IPV4-raftschema]<br/>![integration-tests-2023.1.11-IPV6-raftschema] | Restoration of schema into cluster with `consistant_cluster_management: true` is not supported |
22-
| **6.2.0** | ![integration-tests-6.2.0-IPV4]<br/>![integration-tests-6.2.0-IPV4-tablets]<br/>![integration-tests-6.2.0-IPV6-tablets-nossl] | Restoration of **Authentication** and **Service Levels** is not supported<br/>Restoration of schema containing **Alternator** tables is not supported |
23-
| **latest-enterprise** | ![integration-tests-latest-enterprise-IPV4]<br/>![integration-tests-latest-enterprise-IPV4-tablets-nossl] | Restoration of **Authentication** and **Service Levels** is not supported<br/>Restoration of schema containing **Alternator** tables is not supported |
18+
| ScyllaDB version | Workflows | Limitations |
19+
|------------------|-------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------|
20+
| **2024.1.12** | ![integration-tests-2024.1.12-IPV4]<br/>![integration-tests-2024.1.12-IPV6] | Restoration of schema into cluster with `consistant_cluster_management: true` is not supported |
21+
| **2023.1.11** | ![integration-tests-2023.1.11-IPV4]<br/>![integration-tests-2023.1.11-IPV4-raftschema]<br/>![integration-tests-2023.1.11-IPV6-raftschema] | Restoration of schema into cluster with `consistant_cluster_management: true` is not supported |
22+
| **6.2.0** | ![integration-tests-6.2.0-IPV4]<br/>![integration-tests-6.2.0-IPV4-tablets]<br/>![integration-tests-6.2.0-IPV6-tablets-nossl] | Restoration of **Authentication** and **Service Levels** is not supported<br/>Restoration of schema containing **Alternator** tables is not supported |
23+
| **2025.1.0-rc3** | ![integration-tests-2025.1.0-rc3-IPV4]<br/>![integration-tests-2025.1.0-rc3-IPV4-tablets-nossl] | Restoration of **Authentication** and **Service Levels** is not supported<br/>Restoration of schema containing **Alternator** tables is not supported |
2424

2525
[integration-tests-2024.1.12-IPV4]: https://github.com/scylladb/scylla-manager/actions/workflows/integration-tests-2024.1.12-IPV4.yaml/badge.svg?branch=master
2626
[integration-tests-2024.1.12-IPV6]: https://github.com/scylladb/scylla-manager/actions/workflows/integration-tests-2024.1.12-IPV6.yaml/badge.svg?branch=master
@@ -30,8 +30,8 @@ Scylla Manager consists of tree components:
3030
[integration-tests-6.2.0-IPV4]: https://github.com/scylladb/scylla-manager/actions/workflows/integration-tests-6.2.0-IPV4.yaml/badge.svg?branch=master
3131
[integration-tests-6.2.0-IPV4-tablets]: https://github.com/scylladb/scylla-manager/actions/workflows/integration-tests-6.2.0-IPV4-tablets.yaml/badge.svg?branch=master
3232
[integration-tests-6.2.0-IPV6-tablets-nossl]: https://github.com/scylladb/scylla-manager/actions/workflows/integration-tests-6.2.0-IPV6-tablets-nossl.yaml/badge.svg?branch=master
33-
[integration-tests-latest-enterprise-IPV4]: https://github.com/scylladb/scylla-manager/actions/workflows/integration-tests-latest-enterprise-IPV4.yaml/badge.svg?branch=master
34-
[integration-tests-latest-enterprise-IPV4-tablets-nossl]: https://github.com/scylladb/scylla-manager/actions/workflows/integration-tests-latest-enterprise-IPV4-tablets-nossl.yaml/badge.svg?branch=master
33+
[integration-tests-2025.1.0-rc3-IPV4]: https://github.com/scylladb/scylla-manager/actions/workflows/integration-tests-2025.1.0-rc3-IPV4.yaml/badge.svg?branch=master
34+
[integration-tests-2025.1.0-rc3-IPV4-tablets-nossl]: https://github.com/scylladb/scylla-manager/actions/workflows/integration-tests-2025.1.0-rc3-IPV4-tablets-nossl.yaml/badge.svg?branch=master
3535

3636
## Installing and updating Go
3737

pkg/service/backup/service_backup_integration_test.go

+7
Original file line numberDiff line numberDiff line change
@@ -2556,6 +2556,13 @@ func TestBackupViewsIntegration(t *testing.T) {
25562556

25572557
Print("Given: table with MV and SI")
25582558
WriteData(t, clusterSession, testKeyspace, 1, testTable)
2559+
2560+
// It's not possible to create views on tablet keyspaces
2561+
rd := scyllaclient.NewRingDescriber(context.Background(), h.Client)
2562+
if rd.IsTabletKeyspace(testKeyspace) {
2563+
t.Skip("Test expects to create views, but it's not possible for tablet keyspaces")
2564+
}
2565+
25592566
CreateMaterializedView(t, clusterSession, testKeyspace, testTable, testMV)
25602567
CreateSecondaryIndex(t, clusterSession, testKeyspace, testTable, testSI)
25612568

pkg/service/repair/service_repair_integration_test.go

+43-32
Original file line numberDiff line numberDiff line change
@@ -688,9 +688,6 @@ func TestServiceRepairOrderIntegration(t *testing.T) {
688688
t1 = "zz_test_table_1"
689689
t2 = "hh_test_table_2"
690690
t3 = "aa_test_table_3"
691-
si1 = "aa_test_si_1"
692-
mv1 = "zz_test_mv_1"
693-
mv2 = "hh_test_mv_2"
694691
)
695692

696693
// Create keyspaces. Low RF improves repair parallelism.
@@ -709,23 +706,37 @@ func TestServiceRepairOrderIntegration(t *testing.T) {
709706
WriteData(t, clusterSession, ks3, 20, t1)
710707

711708
// Create views
712-
CreateMaterializedView(t, clusterSession, ks1, t1, mv1)
713-
714-
CreateSecondaryIndex(t, clusterSession, ks2, t1, si1)
715-
CreateMaterializedView(t, clusterSession, ks2, t2, mv1)
716-
CreateMaterializedView(t, clusterSession, ks2, t3, mv2)
709+
rd := scyllaclient.NewRingDescriber(context.Background(), h.Client)
710+
var ks1Views []string
711+
if !rd.IsTabletKeyspace(ks1) {
712+
mv1 := "zz_test_mv_1"
713+
CreateMaterializedView(t, clusterSession, ks1, t1, mv1)
714+
ks1Views = append(ks1Views, mv1)
715+
}
716+
var ks2Views []string
717+
if !rd.IsTabletKeyspace(ks2) {
718+
si1 := "aa_test_si_1"
719+
mv1 := "zz_test_mv_1"
720+
mv2 := "hh_test_mv_2"
721+
CreateSecondaryIndex(t, clusterSession, ks2, t1, si1)
722+
CreateMaterializedView(t, clusterSession, ks2, t2, mv1)
723+
CreateMaterializedView(t, clusterSession, ks2, t3, mv2)
724+
ks2Views = append(ks2Views, si1+"_index", mv1, mv2)
725+
}
717726

718727
// Flush tables for correct memory calculations
719728
FlushTable(t, c, ManagedClusterHosts(), ks1, t1)
720729
FlushTable(t, c, ManagedClusterHosts(), ks1, t2)
721-
FlushTable(t, c, ManagedClusterHosts(), ks1, mv1)
730+
for _, v := range ks1Views {
731+
FlushTable(t, c, ManagedClusterHosts(), ks1, v)
732+
}
722733

723734
FlushTable(t, c, ManagedClusterHosts(), ks2, t1)
724735
FlushTable(t, c, ManagedClusterHosts(), ks2, t2)
725736
FlushTable(t, c, ManagedClusterHosts(), ks2, t3)
726-
FlushTable(t, c, ManagedClusterHosts(), ks2, si1+"_index")
727-
FlushTable(t, c, ManagedClusterHosts(), ks2, mv1)
728-
FlushTable(t, c, ManagedClusterHosts(), ks2, mv2)
737+
for _, v := range ks2Views {
738+
FlushTable(t, c, ManagedClusterHosts(), ks2, v)
739+
}
729740

730741
FlushTable(t, c, ManagedClusterHosts(), ks3, t1)
731742

@@ -735,21 +746,20 @@ func TestServiceRepairOrderIntegration(t *testing.T) {
735746
"system_distributed.*",
736747
"system_distributed_everywhere.*",
737748
"system_traces.*",
749+
}
738750

739-
ks1 + "." + t1,
740-
ks1 + "." + t2,
741-
ks1 + "." + mv1,
742-
743-
ks2 + "." + t1,
744-
ks2 + "." + t2,
745-
ks2 + "." + t3,
746-
ks2 + "." + si1 + "_index",
747-
ks2 + "." + mv1,
748-
ks2 + "." + mv2,
751+
expectedRepairOrder = append(expectedRepairOrder, ks1+"."+t1, ks1+"."+t2)
752+
for _, v := range ks1Views {
753+
expectedRepairOrder = append(expectedRepairOrder, ks1+"."+v)
754+
}
749755

750-
ks3 + "." + t1,
756+
expectedRepairOrder = append(expectedRepairOrder, ks2+"."+t1, ks2+"."+t2, ks2+"."+t3)
757+
for _, v := range ks2Views {
758+
expectedRepairOrder = append(expectedRepairOrder, ks2+"."+v)
751759
}
752760

761+
expectedRepairOrder = append(expectedRepairOrder, ks3+"."+t1)
762+
753763
props := map[string]any{
754764
"fail_fast": true,
755765
}
@@ -903,9 +913,6 @@ func TestServiceRepairResumeAllRangesIntegration(t *testing.T) {
903913
t1 = "test_table_1"
904914
t2 = "test_table_2"
905915
t3 = "test_table_3"
906-
si1 = "test_si_1"
907-
mv1 = "test_mv_1"
908-
mv2 = "test_mv_2"
909916
)
910917

911918
// Create keyspaces. Low RF increases repair parallelism.
@@ -923,12 +930,16 @@ func TestServiceRepairResumeAllRangesIntegration(t *testing.T) {
923930

924931
WriteData(t, clusterSession, ks3, 5, t1)
925932

926-
// Create views
927-
CreateMaterializedView(t, clusterSession, ks1, t1, mv1)
928-
929-
CreateSecondaryIndex(t, clusterSession, ks2, t1, si1)
930-
CreateMaterializedView(t, clusterSession, ks2, t2, mv1)
931-
CreateMaterializedView(t, clusterSession, ks2, t3, mv2)
933+
// It's not possible to create views on tablet keyspaces
934+
rd := scyllaclient.NewRingDescriber(context.Background(), h.Client)
935+
if !rd.IsTabletKeyspace(ks1) {
936+
CreateMaterializedView(t, clusterSession, ks1, t1, "test_mv_1")
937+
}
938+
if !rd.IsTabletKeyspace(ks2) {
939+
CreateSecondaryIndex(t, clusterSession, ks2, t1, "test_si_1")
940+
CreateMaterializedView(t, clusterSession, ks2, t2, "test_mv_1")
941+
CreateMaterializedView(t, clusterSession, ks2, t3, "test_mv_2")
942+
}
932943

933944
props := map[string]any{
934945
"fail_fast": false,

pkg/service/restore/restore_integration_test.go

+39-23
Original file line numberDiff line numberDiff line change
@@ -391,34 +391,43 @@ func TestRestoreTablesPausedIntegration(t *testing.T) {
391391
createTable(t, h.srcCluster.rootSession, ks2, tab2)
392392
createTable(t, h.dstCluster.rootSession, ks2, tab2)
393393

394-
Print("View setup")
395-
mv := randomizedName("mv_")
396-
CreateMaterializedView(t, h.srcCluster.rootSession, ks1, tab, mv)
397-
CreateMaterializedView(t, h.dstCluster.rootSession, ks1, tab, mv)
398-
si := randomizedName("si_")
399-
CreateSecondaryIndex(t, h.srcCluster.rootSession, ks1, tab, si)
400-
CreateSecondaryIndex(t, h.dstCluster.rootSession, ks1, tab, si)
401-
mv1 := randomizedName("mv_1_")
402-
CreateMaterializedView(t, h.srcCluster.rootSession, ks2, tab1, mv1)
403-
CreateMaterializedView(t, h.dstCluster.rootSession, ks2, tab1, mv1)
404-
405-
Print("Fill setup")
406-
fillTable(t, h.srcCluster.rootSession, 100, ks1, tab)
407-
fillTable(t, h.srcCluster.rootSession, 100, ks2, tab1, tab2)
408-
409394
units := []backup.Unit{
410395
{
411396
Keyspace: ks1,
412-
Tables: []string{tab, mv, si + "_index"},
397+
Tables: []string{tab},
413398
AllTables: true,
414399
},
415400
{
416401
Keyspace: ks2,
417-
Tables: []string{tab1, tab2, mv1},
402+
Tables: []string{tab1, tab2},
418403
AllTables: true,
419404
},
420405
}
421406

407+
// It's not possible to create views on tablet keyspaces
408+
rd := scyllaclient.NewRingDescriber(context.Background(), h.srcCluster.Client)
409+
if !rd.IsTabletKeyspace(ks1) {
410+
Print("View setup (ks1)")
411+
mv := randomizedName("mv_")
412+
CreateMaterializedView(t, h.srcCluster.rootSession, ks1, tab, mv)
413+
CreateMaterializedView(t, h.dstCluster.rootSession, ks1, tab, mv)
414+
si := randomizedName("si_")
415+
CreateSecondaryIndex(t, h.srcCluster.rootSession, ks1, tab, si)
416+
CreateSecondaryIndex(t, h.dstCluster.rootSession, ks1, tab, si)
417+
units[0].Tables = append(units[0].Tables, mv, si+"_index")
418+
}
419+
if !rd.IsTabletKeyspace(ks2) {
420+
Print("View setup (ks2)")
421+
mv1 := randomizedName("mv_1_")
422+
CreateMaterializedView(t, h.srcCluster.rootSession, ks2, tab1, mv1)
423+
CreateMaterializedView(t, h.dstCluster.rootSession, ks2, tab1, mv1)
424+
units[1].Tables = append(units[1].Tables, mv1)
425+
}
426+
427+
Print("Fill setup")
428+
fillTable(t, h.srcCluster.rootSession, 100, ks1, tab)
429+
fillTable(t, h.srcCluster.rootSession, 100, ks2, tab1, tab2)
430+
422431
Print("Run backup")
423432
loc := []backupspec.Location{testLocation("paused", "")}
424433
S3InitBucket(t, loc[0].Path)
@@ -1018,10 +1027,16 @@ func TestRestoreTablesProgressIntegration(t *testing.T) {
10181027
ExecStmt(t, h.srcCluster.rootSession, fmt.Sprintf(tabStmt, ks, tab))
10191028
ExecStmt(t, h.dstCluster.rootSession, fmt.Sprintf(tabStmt, ks, tab))
10201029

1021-
Print("View setup")
1022-
mv := randomizedName("mv_")
1023-
CreateMaterializedView(t, h.srcCluster.rootSession, ks, tab, mv)
1024-
CreateMaterializedView(t, h.dstCluster.rootSession, ks, tab, mv)
1030+
// It's not possible to create views on tablet keyspaces
1031+
tabToValidate := []string{tab}
1032+
rd := scyllaclient.NewRingDescriber(context.Background(), h.srcCluster.Client)
1033+
if !rd.IsTabletKeyspace(ks) {
1034+
Print("View setup")
1035+
mv := randomizedName("mv_")
1036+
CreateMaterializedView(t, h.srcCluster.rootSession, ks, tab, mv)
1037+
CreateMaterializedView(t, h.dstCluster.rootSession, ks, tab, mv)
1038+
tabToValidate = append(tabToValidate, mv)
1039+
}
10251040

10261041
Print("Fill setup")
10271042
fillTable(t, h.srcCluster.rootSession, 1, ks, tab)
@@ -1042,8 +1057,9 @@ func TestRestoreTablesProgressIntegration(t *testing.T) {
10421057
})
10431058

10441059
Print("Validate success")
1045-
validateTableContent[int, int](t, h.srcCluster.rootSession, h.dstCluster.rootSession, ks, tab, "id", "data")
1046-
validateTableContent[int, int](t, h.srcCluster.rootSession, h.dstCluster.rootSession, ks, mv, "id", "data")
1060+
for _, tab := range tabToValidate {
1061+
validateTableContent[int, int](t, h.srcCluster.rootSession, h.dstCluster.rootSession, ks, tab, "id", "data")
1062+
}
10471063

10481064
Print("Validate view progress")
10491065
pr, err := h.dstRestoreSvc.GetProgress(context.Background(), h.dstCluster.ClusterID, h.dstCluster.TaskID, h.dstCluster.RunID)

0 commit comments

Comments
 (0)