Skip to content

Commit 85a5327

Browse files
committed
gh-849: To check the cluster replication type based on cluster spec instead of masterdb spec
1 parent fc23394 commit 85a5327

File tree

2 files changed

+22
-17
lines changed

2 files changed

+22
-17
lines changed

cmd/sentinel/cmd/sentinel.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1010,10 +1010,11 @@ func (s *Sentinel) updateCluster(cd *cluster.ClusterData, pis cluster.ProxiesInf
10101010
} else {
10111011
// if synchronous replication is enabled, only choose new master in the synchronous replication standbys.
10121012
var bestNewMasterDB *cluster.DB
1013-
if curMasterDB.Spec.SynchronousReplication {
1013+
if *cd.Cluster.Spec.SynchronousReplication {
10141014
commonSyncStandbys := util.CommonElements(curMasterDB.Status.SynchronousStandbys, curMasterDB.Spec.SynchronousStandbys)
10151015
if len(commonSyncStandbys) == 0 {
10161016
log.Warnw("cannot choose synchronous standby since there are no common elements between the latest master reported synchronous standbys and the db spec ones", "reported", curMasterDB.Status.SynchronousStandbys, "spec", curMasterDB.Spec.SynchronousStandbys)
1017+
bestNewMasterDB = bestNewMasters[0]
10171018
} else {
10181019
for _, nm := range bestNewMasters {
10191020
if util.StringInSlice(commonSyncStandbys, nm.UID) {

cmd/sentinel/cmd/sentinel_test.go

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -597,10 +597,11 @@ func TestUpdateCluster(t *testing.T) {
597597
UID: "cluster1",
598598
Generation: 1,
599599
Spec: &cluster.ClusterSpec{
600-
ConvergenceTimeout: &cluster.Duration{Duration: cluster.DefaultConvergenceTimeout},
601-
InitTimeout: &cluster.Duration{Duration: cluster.DefaultInitTimeout},
602-
SyncTimeout: &cluster.Duration{Duration: cluster.DefaultSyncTimeout},
603-
MaxStandbysPerSender: cluster.Uint16P(cluster.DefaultMaxStandbysPerSender),
600+
ConvergenceTimeout: &cluster.Duration{Duration: cluster.DefaultConvergenceTimeout},
601+
InitTimeout: &cluster.Duration{Duration: cluster.DefaultInitTimeout},
602+
SyncTimeout: &cluster.Duration{Duration: cluster.DefaultSyncTimeout},
603+
MaxStandbysPerSender: cluster.Uint16P(cluster.DefaultMaxStandbysPerSender),
604+
SynchronousReplication: cluster.BoolP(false),
604605
},
605606
Status: cluster.ClusterStatus{
606607
CurrentGeneration: 1,
@@ -685,10 +686,11 @@ func TestUpdateCluster(t *testing.T) {
685686
UID: "cluster1",
686687
Generation: 1,
687688
Spec: &cluster.ClusterSpec{
688-
ConvergenceTimeout: &cluster.Duration{Duration: cluster.DefaultConvergenceTimeout},
689-
InitTimeout: &cluster.Duration{Duration: cluster.DefaultInitTimeout},
690-
SyncTimeout: &cluster.Duration{Duration: cluster.DefaultSyncTimeout},
691-
MaxStandbysPerSender: cluster.Uint16P(cluster.DefaultMaxStandbysPerSender),
689+
ConvergenceTimeout: &cluster.Duration{Duration: cluster.DefaultConvergenceTimeout},
690+
InitTimeout: &cluster.Duration{Duration: cluster.DefaultInitTimeout},
691+
SyncTimeout: &cluster.Duration{Duration: cluster.DefaultSyncTimeout},
692+
MaxStandbysPerSender: cluster.Uint16P(cluster.DefaultMaxStandbysPerSender),
693+
SynchronousReplication: cluster.BoolP(false),
692694
},
693695
Status: cluster.ClusterStatus{
694696
CurrentGeneration: 1,
@@ -1127,10 +1129,11 @@ func TestUpdateCluster(t *testing.T) {
11271129
UID: "cluster1",
11281130
Generation: 1,
11291131
Spec: &cluster.ClusterSpec{
1130-
ConvergenceTimeout: &cluster.Duration{Duration: cluster.DefaultConvergenceTimeout},
1131-
InitTimeout: &cluster.Duration{Duration: cluster.DefaultInitTimeout},
1132-
SyncTimeout: &cluster.Duration{Duration: cluster.DefaultSyncTimeout},
1133-
MaxStandbysPerSender: cluster.Uint16P(cluster.DefaultMaxStandbysPerSender),
1132+
ConvergenceTimeout: &cluster.Duration{Duration: cluster.DefaultConvergenceTimeout},
1133+
InitTimeout: &cluster.Duration{Duration: cluster.DefaultInitTimeout},
1134+
SyncTimeout: &cluster.Duration{Duration: cluster.DefaultSyncTimeout},
1135+
MaxStandbysPerSender: cluster.Uint16P(cluster.DefaultMaxStandbysPerSender),
1136+
SynchronousReplication: cluster.BoolP(false),
11341137
},
11351138
Status: cluster.ClusterStatus{
11361139
CurrentGeneration: 1,
@@ -1215,10 +1218,11 @@ func TestUpdateCluster(t *testing.T) {
12151218
UID: "cluster1",
12161219
Generation: 1,
12171220
Spec: &cluster.ClusterSpec{
1218-
ConvergenceTimeout: &cluster.Duration{Duration: cluster.DefaultConvergenceTimeout},
1219-
InitTimeout: &cluster.Duration{Duration: cluster.DefaultInitTimeout},
1220-
SyncTimeout: &cluster.Duration{Duration: cluster.DefaultSyncTimeout},
1221-
MaxStandbysPerSender: cluster.Uint16P(cluster.DefaultMaxStandbysPerSender),
1221+
ConvergenceTimeout: &cluster.Duration{Duration: cluster.DefaultConvergenceTimeout},
1222+
InitTimeout: &cluster.Duration{Duration: cluster.DefaultInitTimeout},
1223+
SyncTimeout: &cluster.Duration{Duration: cluster.DefaultSyncTimeout},
1224+
MaxStandbysPerSender: cluster.Uint16P(cluster.DefaultMaxStandbysPerSender),
1225+
SynchronousReplication: cluster.BoolP(false),
12221226
},
12231227
Status: cluster.ClusterStatus{
12241228
CurrentGeneration: 1,

0 commit comments

Comments
 (0)