Skip to content

Commit 83598c4

Browse files
Lars Maierajanikow
authored andcommitted
When the member is terminated do not set cleaned out state when resigning. Added test for upgrade. (#450)
1 parent a4aae7b commit 83598c4

File tree

2 files changed

+19
-5
lines changed

2 files changed

+19
-5
lines changed

pkg/deployment/resources/pod_termination.go

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -141,8 +141,8 @@ func (r *Resources) prepareDBServerPodTermination(ctx context.Context, log zerol
141141
currentVersion := memberStatus.ArangoVersion
142142
if currentVersion != "" {
143143
if currentVersion.CompareTo("3.4.7") > 0 && currentVersion.CompareTo("3.5") < 0 {
144-
resignJobAvailable = true
145-
} else if currentVersion.CompareTo("3.5.0") > 0 {
144+
resignJobAvailable = true
145+
} else if currentVersion.CompareTo("3.5.0") > 0 {
146146
resignJobAvailable = true
147147
}
148148
}
@@ -216,11 +216,16 @@ func (r *Resources) prepareDBServerPodTermination(ctx context.Context, log zerol
216216
// At this point we have to set CleanedOut to true,
217217
// because we can no longer reason about the state in the agency and
218218
// bringing back the dbserver again may result in an cleaned out server without us knowing
219-
memberStatus.Conditions.Update(api.ConditionTypeCleanedOut, true, "Draining server failed", "")
220-
memberStatus.CleanoutJobID = ""
221-
if memberStatus.Phase == api.MemberPhaseDrain {
219+
if dbserverDataWillBeGone {
220+
memberStatus.Conditions.Update(api.ConditionTypeCleanedOut, true, "Draining server failed", "")
221+
memberStatus.CleanoutJobID = ""
222+
if memberStatus.Phase == api.MemberPhaseDrain {
223+
memberStatus.Phase = api.MemberPhaseCreated
224+
}
225+
} else if memberStatus.Phase == api.MemberPhaseResign {
222226
memberStatus.Phase = api.MemberPhaseCreated
223227
}
228+
224229
if err := updateMember(memberStatus); err != nil {
225230
return maskAny(err)
226231
}

tests/upgrade_test.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,15 @@ func TestUpgradeClusterRocksDB346Cto347C(t *testing.T) {
109109
})
110110
}
111111

112+
func TestUpgradeClusterRocksDB348Eto351E(t *testing.T) {
113+
runUpgradeTest(t, &upgradeTest{
114+
fromVersion: "3.4.8",
115+
toVersion: "3.5.1",
116+
toImage: "arangodb/enterprise-preview",
117+
shortTest: true,
118+
})
119+
}
120+
112121
type upgradeTest struct {
113122
fromVersion string
114123
toVersion string

0 commit comments

Comments
 (0)