Skip to content

Commit b2be406

Browse files
craig[bot]yuzefovich
andcommitted
Merge #155783
155783: sql: several preliminary changes to making tests work with secondary tenants r=yuzefovich a=yuzefovich This PR contains several commits which audit tests in `pkg/sql` directory to ensure the right JobRegistry, codec, LeaseManager, and PGUrl are used. Almost all were pretty mechanical changes. Note that no new tests are enabled with secondary tenants yet - this will be done separately. Epic: CRDB-48945 Co-authored-by: Yahor Yuzefovich <[email protected]>
2 parents 04f4935 + 2d2edcb commit b2be406

File tree

71 files changed

+724
-682
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+724
-682
lines changed

pkg/ccl/multiregionccl/cold_start_latency_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -323,7 +323,7 @@ COMMIT;`}
323323
defer tenant.AppStopper().Stop(ctx)
324324
pgURL, cleanup, err := pgurlutils.PGUrlWithOptionalClientCertsE(
325325
tenant.AdvSQLAddr(), "tenantdata", url.UserPassword("foo", password),
326-
false, "", // withClientCerts
326+
false /* withClientCerts */, "", /* certName */
327327
)
328328
if !assert.NoError(t, err) {
329329
return

pkg/server/server_systemlog_gc.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ package server
88
import (
99
"context"
1010
"fmt"
11-
math_rand "math/rand"
11+
"math/rand"
1212
"time"
1313

1414
"github.com/cockroachdb/cockroach/pkg/kv/kvserver"
@@ -288,5 +288,5 @@ func startSystemLogsGC(ctx context.Context, sqlServer *SQLServer) error {
288288
// jitteredInterval returns a randomly jittered (+/-25%) duration
289289
// from the interval.
290290
func jitteredInterval(interval time.Duration) time.Duration {
291-
return time.Duration(float64(interval) * (0.75 + 0.5*math_rand.Float64()))
291+
return time.Duration(float64(interval) * (0.75 + 0.5*rand.Float64()))
292292
}

pkg/server/testserver.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -516,6 +516,7 @@ func (ts *testServer) SQLConnE(opts ...serverutils.SQLConnOption) (*gosql.DB, er
516516
ts.cfg.Insecure,
517517
options.ClientCerts,
518518
options.CertsDirPrefix,
519+
options.CertName,
519520
)
520521
}
521522

@@ -544,6 +545,7 @@ func (ts *testServer) PGUrlE(opts ...serverutils.SQLConnOption) (url.URL, func()
544545
ts.cfg.Insecure,
545546
options.ClientCerts,
546547
options.CertsDirPrefix,
548+
options.CertName,
547549
)
548550
}
549551

@@ -1039,6 +1041,7 @@ func (t *testTenant) SQLConnE(opts ...serverutils.SQLConnOption) (*gosql.DB, err
10391041
t.Cfg.Insecure,
10401042
options.ClientCerts,
10411043
options.CertsDirPrefix,
1044+
options.CertName,
10421045
)
10431046
}
10441047

@@ -1073,6 +1076,7 @@ func (t *testTenant) PGUrlE(opts ...serverutils.SQLConnOption) (url.URL, func(),
10731076
t.Cfg.Insecure,
10741077
options.ClientCerts,
10751078
options.CertsDirPrefix,
1079+
options.CertName,
10761080
)
10771081
}
10781082

pkg/server/testserver_sqlconn.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ func pgURL(
4545
insecure bool,
4646
clientCerts bool,
4747
prefix string,
48+
certName string,
4849
) (pgURL url.URL, cleanupFn func(), err error) {
4950
opts := url.Values{}
5051
if tenantName != "" && !strings.HasPrefix(dbName, "cluster:") {
@@ -65,7 +66,7 @@ func pgURL(
6566
}
6667

6768
// No LoopbackListener
68-
pgURL, cleanupFn, err = pgurlutils.PGUrlWithOptionalClientCertsE(sqlAddr, prefix, user, clientCerts, "")
69+
pgURL, cleanupFn, err = pgurlutils.PGUrlWithOptionalClientCertsE(sqlAddr, prefix, user, clientCerts, certName)
6970
if err != nil {
7071
return pgURL, cleanupFn, err
7172
}
@@ -95,9 +96,10 @@ func openTestSQLConn(
9596
insecure bool,
9697
clientCerts bool,
9798
prefix string,
99+
certName string,
98100
) (*gosql.DB, error) {
99101
var goDB *gosql.DB
100-
u, cleanupFn, err := pgURL(dbName, user, tenantName, sqlAddr, insecure, clientCerts, prefix)
102+
u, cleanupFn, err := pgURL(dbName, user, tenantName, sqlAddr, insecure, clientCerts, prefix, certName)
101103
if err != nil {
102104
return nil, err
103105
}

pkg/sql/BUILD.bazel

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -942,7 +942,6 @@ go_test(
942942
"//pkg/testutils/jobutils",
943943
"//pkg/testutils/kvclientutils",
944944
"//pkg/testutils/pgtest",
945-
"//pkg/testutils/pgurlutils",
946945
"//pkg/testutils/serverutils",
947946
"//pkg/testutils/skip",
948947
"//pkg/testutils/sqlutils",

pkg/sql/catalog/bootstrap/splits_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,9 @@ func TestInitialSplitPoints(t *testing.T) {
5151

5252
ctx := context.Background()
5353
tc := testcluster.StartTestCluster(t, 1, base.TestClusterArgs{
54+
ServerArgs: base.TestServerArgs{
55+
DefaultTestTenant: base.TestControlsTenantsExplicitly,
56+
},
5457
ReplicationMode: base.ReplicationManual,
5558
})
5659
defer tc.Stopper().Stop(ctx)

pkg/sql/catalog/externalcatalog/external_catalog_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ func TestExtractIngestExternalCatalog(t *testing.T) {
117117
sqlDB.CheckQueryResults(t, "SELECT schema_name,table_name FROM [SHOW TABLES]", [][]string{{"public", "tab1"}, {"public", "tab2_rename"}})
118118

119119
require.NoError(t, sqltestutils.TestingDescsTxn(ctx, srv, func(ctx context.Context, txn isql.Txn, col *descs.Collection) error {
120-
return DropIngestedExternalCatalog(ctx, &execCfg, sqlUser, written, txn, srv.JobRegistry().(*jobs.Registry), col, "test gc")
120+
return DropIngestedExternalCatalog(ctx, &execCfg, sqlUser, written, txn, s.JobRegistry().(*jobs.Registry), col, "test gc")
121121
}))
122122
var res int
123123
sqlDB.QueryRow(t, "SELECT count(*) FROM [SHOW TABLES]").Scan(&res)

pkg/sql/catalog/lease/lease_internal_test.go

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1786,6 +1786,7 @@ func TestLeaseManagerLockedTimestampBasic(t *testing.T) {
17861786
Settings: st,
17871787
})
17881788
defer srv.Stopper().Stop(context.Background())
1789+
s := srv.ApplicationLayer()
17891790

17901791
r := sqlutils.MakeSQLRunner(db)
17911792

@@ -1802,7 +1803,7 @@ func TestLeaseManagerLockedTimestampBasic(t *testing.T) {
18021803
}()
18031804
var id int
18041805
r.QueryRow(t, "SELECT 't1'::REGCLASS::OID;").Scan(&id)
1805-
lm := srv.LeaseManager().(*Manager)
1806+
lm := s.LeaseManager().(*Manager)
18061807

18071808
// Note: We only need to hold old leases because the logic for doing this
18081809
// automatically is not merged yet. Once it is merged, the release of them
@@ -1817,7 +1818,7 @@ func TestLeaseManagerLockedTimestampBasic(t *testing.T) {
18171818
defer releaseHeldDescriptors()
18181819

18191820
getDescriptorVersion := func() descpb.DescriptorVersion {
1820-
ts := lm.GetReadTimestamp(srv.Clock().Now())
1821+
ts := lm.GetReadTimestamp(s.Clock().Now())
18211822
state := lm.findDescriptorState(descpb.ID(id), false)
18221823
require.NotNilf(t, state, "the descriptor was not leased yet")
18231824
ld, _, err := state.findForTimestamp(ctx, ts)
@@ -1869,12 +1870,12 @@ func TestLeaseManagerLockedTimestampCluster(t *testing.T) {
18691870
tc := serverutils.StartCluster(
18701871
t, 3, base.TestClusterArgs{
18711872
ServerArgs: base.TestServerArgs{
1872-
Settings: st,
1873+
Settings: st,
1874+
// Avoid using tenants since async tenant migration steps can acquire
1875+
// leases on our user tables.
18731876
DefaultTestTenant: base.TestNeedsTightIntegrationBetweenAPIsAndTestingKnobs,
18741877
},
18751878
ServerArgsPerNode: map[int]base.TestServerArgs{2: {
1876-
// Avoid using tenants since async tenant migration steps can acquire
1877-
// leases on our user tables.
18781879
Knobs: base.TestingKnobs{
18791880
SQLLeaseManager: &ManagerTestingKnobs{
18801881
TestingDescriptorRefreshedEvent: func(descriptor *descpb.Descriptor) {
@@ -1907,8 +1908,6 @@ func TestLeaseManagerLockedTimestampCluster(t *testing.T) {
19071908
_, err := node1Conn.Exec("ALTER TABLE d1.public.t1 ADD COLUMN n2 int DEFAULT 364")
19081909
return err
19091910
})
1910-
go func() {
1911-
}()
19121911
lm := tc.Server(2).LeaseManager().(*Manager)
19131912
assertDescriptorsCount := func(expectedCount int) {
19141913
state := lm.findDescriptorState(descpb.ID(id), false)

pkg/sql/catalog/lease/lease_test.go

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1828,12 +1828,13 @@ func TestDeleteOrphanedLeasesBySession(t *testing.T) {
18281828
defer log.Scope(t).Close(t)
18291829

18301830
ctx := context.Background()
1831-
s, conn, _ := serverutils.StartServer(t, base.TestServerArgs{
1831+
srv, conn, _ := serverutils.StartServer(t, base.TestServerArgs{
18321832
Locality: roachpb.Locality{
18331833
Tiers: []roachpb.Tier{{Key: "region", Value: "us-east1"}},
18341834
},
18351835
})
1836-
defer s.Stop(ctx)
1836+
defer srv.Stop(ctx)
1837+
s := srv.ApplicationLayer()
18371838
idb := s.InternalDB().(*sql.InternalDB)
18381839
ie := idb.Executor()
18391840
// Validate only one session exists.
@@ -2841,11 +2842,12 @@ func TestLeaseTxnDeadlineExtensionWithSession(t *testing.T) {
28412842
},
28422843
}
28432844

2844-
s, sqlDB, _ := serverutils.StartServer(t, params)
2845+
srv, sqlDB, _ := serverutils.StartServer(t, params)
2846+
defer srv.Stopper().Stop(ctx)
2847+
s := srv.ApplicationLayer()
28452848
lm := s.LeaseManager().(*lease.Manager)
28462849
leasesWaitingToExpireGauge := lm.TestingSessionBasedLeasesWaitingToExpireGauge()
28472850
leasesExpiredGauge := lm.TestingSessionBasedLeasesExpiredGauge()
2848-
defer s.Stopper().Stop(ctx)
28492851
// Setup tables for the test.
28502852
_, err := sqlDB.Exec(`
28512853
CREATE TABLE t1(val int);
@@ -3501,6 +3503,7 @@ func TestLongLeaseWaitMetrics(t *testing.T) {
35013503
},
35023504
})
35033505
defer srv.Stopper().Stop(ctx)
3506+
s := srv.ApplicationLayer()
35043507
runner := sqlutils.MakeSQLRunner(sqlDB)
35053508
runner.Exec(t, "CREATE TABLE t1(n int)")
35063509
descIDRow := runner.QueryRow(t, "SELECT 't1'::REGCLASS::INT")
@@ -3509,7 +3512,7 @@ func TestLongLeaseWaitMetrics(t *testing.T) {
35093512
grp := ctxgroup.WithContext(ctx)
35103513

35113514
startWaiters := make(chan struct{})
3512-
cachedDatabaseRegions, err := regions.NewCachedDatabaseRegions(ctx, srv.DB(), srv.LeaseManager().(*lease.Manager))
3515+
cachedDatabaseRegions, err := regions.NewCachedDatabaseRegions(ctx, s.DB(), s.LeaseManager().(*lease.Manager))
35133516
require.NoError(t, err)
35143517

35153518
grp.GoCtx(func(ctx context.Context) error {
@@ -3529,13 +3532,13 @@ func TestLongLeaseWaitMetrics(t *testing.T) {
35293532
r := retry.StartWithCtx(ctx, retry.Options{})
35303533
// Wait until long waits are detected in our metrics.
35313534
for r.Next() {
3532-
if srv.MustGetSQLCounter("sql.leases.long_wait_for_no_version") == 0 {
3535+
if s.MustGetSQLCounter("sql.leases.long_wait_for_no_version") == 0 {
35333536
continue
35343537
}
3535-
if srv.MustGetSQLCounter("sql.leases.long_wait_for_two_version_invariant") == 0 {
3538+
if s.MustGetSQLCounter("sql.leases.long_wait_for_two_version_invariant") == 0 {
35363539
continue
35373540
}
3538-
if srv.MustGetSQLCounter("sql.leases.long_wait_for_one_version") == 0 {
3541+
if s.MustGetSQLCounter("sql.leases.long_wait_for_one_version") == 0 {
35393542
continue
35403543
}
35413544
break
@@ -3563,11 +3566,11 @@ func TestLongLeaseWaitMetrics(t *testing.T) {
35633566
r := retry.StartWithCtx(ctx, retry.Options{})
35643567
for r.Next() {
35653568
// Wait for the two versions to exist.
3566-
if srv.MustGetSQLCounter("sql.leases.long_wait_for_two_version_invariant") == 0 {
3569+
if s.MustGetSQLCounter("sql.leases.long_wait_for_two_version_invariant") == 0 {
35673570
continue
35683571
}
35693572
// Wait for there to be a single version.
3570-
lm := srv.ApplicationLayer().LeaseManager().(*lease.Manager)
3573+
lm := s.LeaseManager().(*lease.Manager)
35713574
_, err := lm.WaitForOneVersion(ctx, descpb.ID(descID), cachedDatabaseRegions, retry.Options{})
35723575
return err
35733576
}
@@ -3577,16 +3580,16 @@ func TestLongLeaseWaitMetrics(t *testing.T) {
35773580
// Waits for no version of the descriptor to exist.
35783581
grp.GoCtx(func(ctx context.Context) error {
35793582
<-startWaiters
3580-
lm := srv.ApplicationLayer().LeaseManager().(*lease.Manager)
3583+
lm := s.LeaseManager().(*lease.Manager)
35813584
return lm.WaitForNoVersion(ctx, descpb.ID(descID), cachedDatabaseRegions, retry.Options{})
35823585
})
35833586

35843587
require.NoError(t, grp.Wait())
35853588

35863589
// Validate the metrics are 0 again.
3587-
require.Equal(t, int64(0), srv.MustGetSQLCounter("sql.leases.long_wait_for_no_version"))
3588-
require.Equal(t, int64(0), srv.MustGetSQLCounter("sql.leases.long_wait_for_two_version_invariant"))
3589-
require.Equal(t, int64(0), srv.MustGetSQLCounter("sql.leases.long_wait_for_one_version"))
3590+
require.Equal(t, int64(0), s.MustGetSQLCounter("sql.leases.long_wait_for_no_version"))
3591+
require.Equal(t, int64(0), s.MustGetSQLCounter("sql.leases.long_wait_for_two_version_invariant"))
3592+
require.Equal(t, int64(0), s.MustGetSQLCounter("sql.leases.long_wait_for_one_version"))
35903593
}
35913594

35923595
// TestWaitForInitialVersionConcurrent this test is a basic sanity test that
@@ -3672,8 +3675,9 @@ func BenchmarkAcquireLeaseConcurrent(b *testing.B) {
36723675
defer log.Scope(b).Close(b)
36733676

36743677
ctx := context.Background()
3675-
s, sqlDB, _ := serverutils.StartServer(b, base.TestServerArgs{})
3676-
defer s.Stopper().Stop(ctx)
3678+
srv, sqlDB, _ := serverutils.StartServer(b, base.TestServerArgs{})
3679+
defer srv.Stopper().Stop(ctx)
3680+
s := srv.ApplicationLayer()
36773681

36783682
runner := sqlutils.MakeSQLRunner(sqlDB)
36793683

@@ -3710,8 +3714,9 @@ func TestLeaseManagerIsMemoryMonitored(t *testing.T) {
37103714
skip.UnderDuress(t)
37113715

37123716
ctx := context.Background()
3713-
s, sqlDB, _ := serverutils.StartServer(t, base.TestServerArgs{})
3714-
defer s.Stopper().Stop(ctx)
3717+
srv, sqlDB, _ := serverutils.StartServer(t, base.TestServerArgs{})
3718+
defer srv.Stopper().Stop(ctx)
3719+
s := srv.ApplicationLayer()
37153720
lm := s.LeaseManager().(*lease.Manager)
37163721
startBytes := lm.TestingGetBoundAccount().Used()
37173722
lastBytes := startBytes

pkg/sql/catalog/schematelemetry/schema_telemetry_test.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,8 +97,9 @@ func TestSchemaTelemetryJob(t *testing.T) {
9797
defer log.Scope(t).Close(t)
9898

9999
ctx := context.Background()
100-
s, db, _ := serverutils.StartServer(t, makeTestServerArgs())
101-
defer s.Stopper().Stop(ctx)
100+
srv, db, _ := serverutils.StartServer(t, makeTestServerArgs())
101+
defer srv.Stopper().Stop(ctx)
102+
s := srv.ApplicationLayer()
102103
tdb := sqlutils.MakeSQLRunner(db)
103104
tdb.Exec(t, `SET CLUSTER SETTING server.eventlog.enabled = true`)
104105

0 commit comments

Comments
 (0)