Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPavlo Strokov <pstrokov@gitlab.com>2020-09-03 10:06:11 +0300
committerPavlo Strokov <pstrokov@gitlab.com>2020-09-03 10:06:11 +0300
commit1778ca2b3ec501e836c25c10c232378b9747a142 (patch)
tree45e40a2e4543419740b0eaef01b591f6520dd9d3 /internal/praefect/replicator.go
parentbada8ad88dd4303364d0d190d32c871025bc5da5 (diff)
Replication job acknowledge removes 'completed' and 'dead' events.
Benchmark refactored as 'maxRuns' parameter has no effect on execution time. Log entry added to track events that would be removed on acknowledgment. Closes: https://gitlab.com/gitlab-org/gitaly/-/issues/2941
Diffstat (limited to 'internal/praefect/replicator.go')
-rw-r--r--internal/praefect/replicator.go23
1 files changed, 13 insertions, 10 deletions
diff --git a/internal/praefect/replicator.go b/internal/praefect/replicator.go
index 416c31cf3..60e5a3a76 100644
--- a/internal/praefect/replicator.go
+++ b/internal/praefect/replicator.go
@@ -556,23 +556,26 @@ func (r ReplMgr) startHealthUpdate(ctx context.Context, logger logrus.FieldLogge
}
func (r ReplMgr) handleNodeEvent(ctx context.Context, logger logrus.FieldLogger, shard nodes.Shard, target nodes.Node, event datastore.ReplicationEvent) datastore.JobState {
- logger = logger.WithFields(logrus.Fields{
+ ctxLogger := logger.WithFields(logrus.Fields{
logWithReplJobID: event.ID,
logWithCorrID: getCorrelationID(event.Meta),
})
- logger.Info("processing replication job")
- err := r.processReplicationEvent(ctx, event, shard, target.GetConnection())
- if err == nil {
- return datastore.JobStateCompleted
- }
+ ctxLogger.Info("processing replication job")
+
+ if err := r.processReplicationEvent(ctx, event, shard, target.GetConnection()); err != nil {
+ ctxLogger.WithError(err).Error("replication job failed")
- logger.WithError(err).Error("replication job failed")
+ if event.Attempt <= 0 {
+ logger.WithField("event", event).Info("handled event would be deleted")
+ return datastore.JobStateDead
+ }
- if event.Attempt <= 0 {
- return datastore.JobStateDead
+ return datastore.JobStateFailed
}
- return datastore.JobStateFailed
+ logger.WithField("event", event).Info("handled event would be deleted")
+
+ return datastore.JobStateCompleted
}
func (r ReplMgr) processReplicationEvent(ctx context.Context, event datastore.ReplicationEvent, shard nodes.Shard, targetCC *grpc.ClientConn) error {