Skip to content

Commit 8f01324

Browse files
Better detection for AllInSync condition for DC2DC sync status (#1417)
1 parent bdec82d commit 8f01324

File tree

2 files changed

+10
-9
lines changed

2 files changed

+10
-9
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
- (Feature) ArangoMember Removal Priority
2323
- (Feature) Add --deployment.feature.init-containers-copy-resources (default enabled)
2424
- (Feature) Add maxBackups option to ArangoBackupPolicy
25+
- (Improvement) Better detection for AllInSync condition for DC2DC sync status
2526

2627
## [1.2.32](https://github.com/arangodb/kube-arangodb/tree/1.2.32) (2023-08-07)
2728
- (Feature) Backup lifetime - remove Backup once its lifetime has been reached

pkg/replication/sync_inspector.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -248,21 +248,21 @@ func (dr *DeploymentReplication) inspectIncomingSynchronizationStatus(destStatus
248248

249249
var totalShardsFromStatus, shardsInSync int
250250
dbs := make(map[string]api.DatabaseSynchronizationStatus, 0)
251-
for _, s := range destStatus.Shards {
252-
db := dbs[s.Database]
251+
for _, shard := range destStatus.Shards {
252+
db := dbs[shard.Database]
253253
db.ShardsTotal++
254254
totalShardsFromStatus++
255-
if s.Status == client.SyncStatusRunning {
255+
if shard.Status == client.SyncStatusRunning {
256256
db.ShardsInSync++
257257
shardsInSync++
258-
} else if s.Status == client.SyncStatusFailed && len(db.Errors) < maxReportedIncomingSyncErrorsPerDatabase {
258+
} else if shard.Status == client.SyncStatusFailed && len(db.Errors) < maxReportedIncomingSyncErrorsPerDatabase {
259259
db.Errors = append(db.Errors, api.DatabaseSynchronizationError{
260-
Collection: s.Collection,
261-
Shard: strconv.Itoa(s.ShardIndex),
262-
Message: fmt.Sprintf("shard sync failed: %s", s.StatusMessage),
260+
Collection: shard.Collection,
261+
Shard: strconv.Itoa(shard.ShardIndex),
262+
Message: fmt.Sprintf("shard sync failed: %s", shard.StatusMessage),
263263
})
264264
}
265-
dbs[s.Database] = db
265+
dbs[shard.Database] = db
266266
}
267267

268268
var totalShards = destStatus.TotalShardsCount
@@ -276,7 +276,7 @@ func (dr *DeploymentReplication) inspectIncomingSynchronizationStatus(destStatus
276276
}
277277
return api.SynchronizationStatus{
278278
Progress: progress,
279-
AllInSync: destStatus.Status == client.SyncStatusRunning,
279+
AllInSync: destStatus.Status == client.SyncStatusRunning && shardsInSync == totalShards,
280280
Databases: dbs,
281281
Error: "",
282282
}

0 commit comments

Comments
 (0)