Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DO NOT MERGE: For debugging VRepl e2e CI flakiness #6756

Closed
wants to merge 4 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions go/test/endtoend/vreplication/helper.go
Original file line number Diff line number Diff line change
Expand Up @@ -242,13 +242,13 @@ func expectNumberOfStreams(t *testing.T, vtgateConn *mysql.Conn, name string, wo
}
}

func printShardPositions(vc *VitessCluster, ksShards []string) {
func printShardPositions(vc *VitessCluster, ksShards []string, msg string) {
for _, ksShard := range ksShards {
output, err := vc.VtctlClient.ExecuteCommandWithOutput("ShardReplicationPositions", ksShard)
if err != nil {
fmt.Printf("Error in ShardReplicationPositions: %v, output %v", err, output)
} else {
fmt.Printf("Position of %s: %s", ksShard, output)
fmt.Printf("%s: Position of %s: %s", msg, ksShard, output)
}
}
}
10 changes: 7 additions & 3 deletions go/test/endtoend/vreplication/vreplication_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,7 @@ func insertMoreCustomers(t *testing.T, numCustomers int) {

// FIXME: if testReverse if false we don't dropsources and that creates a problem later on in the test due to existence of blacklisted tables
func shardCustomer(t *testing.T, testReverse bool, cells []*Cell, sourceCellOrAlias string) {
ksShards := []string{"product/0", "customer/-80", "customer/80-"}
if _, err := vc.AddKeyspace(t, cells, "customer", "-80,80-", customerVSchema, customerSchema, defaultReplicas, defaultRdonly, 200); err != nil {
t.Fatal(err)
}
Expand Down Expand Up @@ -231,13 +232,15 @@ func shardCustomer(t *testing.T, testReverse bool, cells []*Cell, sourceCellOrAl
var output string
var err error

printShardPositions(vc, ksShards, "p2c: Before SwitchReads (rdonly)")
if output, err = vc.VtctlClient.ExecuteCommandWithOutput("SwitchReads", "-cells="+allCellNames, "-tablet_type=rdonly", "customer.p2c"); err != nil {
t.Fatalf("SwitchReads error: %s\n", output)
}
want := dryRunResultsReadCustomerShard
if output, err = vc.VtctlClient.ExecuteCommandWithOutput("SwitchReads", "-cells="+allCellNames, "-tablet_type=replica", "-dry_run", "customer.p2c"); err != nil {
t.Fatalf("SwitchReads Dry Run error: %s\n", output)
}
printShardPositions(vc, ksShards, "p2c: Before SwitchReads (replica)")
validateDryRunResults(t, output, want)
if output, err = vc.VtctlClient.ExecuteCommandWithOutput("SwitchReads", "-cells="+allCellNames, "-tablet_type=replica", "customer.p2c"); err != nil {
t.Fatalf("SwitchReads error: %s\n", output)
Expand All @@ -249,12 +252,12 @@ func shardCustomer(t *testing.T, testReverse bool, cells []*Cell, sourceCellOrAl
t.Fatalf("SwitchWrites error: %s\n", output)
}
validateDryRunResults(t, output, want)
printShardPositions(vc, ksShards, "p2c: Before SwitchWrites")

if output, err := vc.VtctlClient.ExecuteCommandWithOutput("SwitchWrites", "customer.p2c"); err != nil {
t.Fatalf("SwitchWrites error: %s\n", output)
}
ksShards := []string{"product/0", "customer/-80", "customer/80-"}
printShardPositions(vc, ksShards)
printShardPositions(vc, ksShards, "p2c: After SwitchWrites")
insertQuery2 := "insert into customer(name) values('tempCustomer2')"
matchInsertQuery2 := "insert into customer(name, cid) values (:vtg1, :_cid0)"
assert.False(t, validateThatQueryExecutesOnTablet(t, vtgateConn, productTab, "customer", insertQuery2, matchInsertQuery2))
Expand All @@ -273,10 +276,11 @@ func shardCustomer(t *testing.T, testReverse bool, cells []*Cell, sourceCellOrAl
if output, err := vc.VtctlClient.ExecuteCommandWithOutput("SwitchReads", "-cells="+allCellNames, "-tablet_type=replica", "product.p2c_reverse"); err != nil {
t.Fatalf("SwitchReads error: %s\n", output)
}
printShardPositions(vc, ksShards)
printShardPositions(vc, ksShards, "pc2_reverse: before SwitchWrites")
if output, err := vc.VtctlClient.ExecuteCommandWithOutput("SwitchWrites", "product.p2c_reverse"); err != nil {
t.Fatalf("SwitchWrites error: %s\n", output)
}
printShardPositions(vc, ksShards, "pc2_reverse: after SwitchWrites")
insertQuery1 = "insert into customer(cid, name) values(1002, 'tempCustomer5')"
assert.True(t, validateThatQueryExecutesOnTablet(t, vtgateConn, productTab, "product", insertQuery1, matchInsertQuery1))
// both inserts go into 80-, this tests the edge-case where a stream (-80) has no relevant new events after the previous switch
Expand Down
2 changes: 1 addition & 1 deletion go/vt/discovery/tablet_picker.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ import (
)

var (
tabletPickerRetryDelay = 30 * time.Second
tabletPickerRetryDelay = 5 * time.Second
muTabletPickerRetryDelay sync.Mutex
)

Expand Down
6 changes: 6 additions & 0 deletions go/vt/wrangler/traffic_switcher.go
Original file line number Diff line number Diff line change
Expand Up @@ -743,14 +743,19 @@ func (ts *trafficSwitcher) waitForCatchup(ctx context.Context, filteredReplicati
return ts.forAllUids(func(target *tsTarget, uid uint32) error {
ts.wr.Logger().Infof("uid: %d, target master %s, target position %s, shard %s", uid,
target.master.AliasString(), target.position, target.si.String())
fmt.Printf("uid: %d, target master %s, target position %s, shard %s\n", uid,
target.master.AliasString(), target.position, target.si.String())
bls := target.sources[uid]
source := ts.sources[bls.Shard]
ts.wr.Logger().Infof("waiting for keyspace:shard: %v:%v, source position %v, uid %d",
ts.targetKeyspace, target.si.ShardName(), source.position, uid)
fmt.Printf("waiting for keyspace:shard: %v:%v, source position %v, uid %d\n",
ts.targetKeyspace, target.si.ShardName(), source.position, uid)
if err := ts.wr.tmc.VReplicationWaitForPos(ctx, target.master.Tablet, int(uid), source.position); err != nil {
return err
}
ts.wr.Logger().Infof("position for keyspace:shard: %v:%v reached, uid %d", ts.targetKeyspace, target.si.ShardName(), uid)
fmt.Printf("position for keyspace:shard: %v:%v reached, uid %d\n", ts.targetKeyspace, target.si.ShardName(), uid)
if _, err := ts.wr.tmc.VReplicationExec(ctx, target.master.Tablet, binlogplayer.StopVReplication(uid, "stopped for cutover")); err != nil {
log.Infof("error marking stopped for cutover on %s, uid %d", target.master.AliasString(), uid)
return err
Expand All @@ -765,6 +770,7 @@ func (ts *trafficSwitcher) waitForCatchup(ctx context.Context, filteredReplicati
var err error
target.position, err = ts.wr.tmc.MasterPosition(ctx, target.master.Tablet)
ts.wr.Logger().Infof("Position for target master %s, uid %v: %v", target.master.AliasString(), uid, target.position)
fmt.Printf("Position for target master %s, uid %v: %v\n", target.master.AliasString(), uid, target.position)
return err
})
}
Expand Down
64 changes: 1 addition & 63 deletions test/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,29 +35,7 @@
"RetryMax": 0,
"Tags": []
},
"unit": {
"File": "",
"Args": [],
"Command": [
"tools/unit_test_runner.sh"
],
"Manual": false,
"Shard": -1,
"RetryMax": 0,
"Tags": []
},
"unit_race": {
"File": "",
"Args": [],
"Command": [
"make",
"unit_test_race"
],
"Manual": false,
"Shard": 5,
"RetryMax": 0,
"Tags": []
},

"backup": {
"File": "unused.go",
"Args": ["vitess.io/vitess/go/test/endtoend/backup/vtctlbackup"],
Expand Down Expand Up @@ -222,28 +200,6 @@
"site_test"
]
},
"merge_sharding": {
"File": "unused.go",
"Args": ["vitess.io/vitess/go/test/endtoend/sharding/mergesharding/int"],
"Command": [],
"Manual": false,
"Shard": 22,
"RetryMax": 0,
"Tags": [
"worker_test"
]
},
"merge_sharding_bytes": {
"File": "unused.go",
"Args": ["vitess.io/vitess/go/test/endtoend/sharding/mergesharding/string"],
"Command": [],
"Manual": false,
"Shard": 22,
"RetryMax": 0,
"Tags": [
"worker_test"
]
},
"mysqlctl": {
"File": "unused.go",
"Args": ["vitess.io/vitess/go/test/endtoend/mysqlctl"],
Expand Down Expand Up @@ -528,24 +484,6 @@
"Shard": 22,
"RetryMax": 0,
"Tags": []
},
"vreplication_cellalias": {
"File": "unused.go",
"Args": ["vitess.io/vitess/go/test/endtoend/vreplication", "-run", "CellAlias"],
"Command": [],
"Manual": false,
"Shard": 23,
"RetryMax": 0,
"Tags": []
},
"vreplication_basic": {
"File": "unused.go",
"Args": ["vitess.io/vitess/go/test/endtoend/vreplication", "-run", "Basic"],
"Command": [],
"Manual": false,
"Shard": 24,
"RetryMax": 0,
"Tags": []
}
}
}