From a634f17605830d629a549d84e6147981e8c6d09e Mon Sep 17 00:00:00 2001 From: Eochs Date: Thu, 1 Mar 2018 16:36:38 -0800 Subject: [PATCH] Leave sync-tag unchanged if LogEvent returns an error We want to ensure at-least-once delivery of events to Weave Cloud, so if notifying the upstream fails we retry on the next sync. The task of deduplicating events is left to the consumer. --- daemon/loop.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/daemon/loop.go b/daemon/loop.go index 226b534cb..483b12690 100644 --- a/daemon/loop.go +++ b/daemon/loop.go @@ -362,11 +362,15 @@ func (d *Daemon) doSync(logger log.Logger) (retErr error) { }, }); err != nil { logger.Log("err", err) + // Abort early to ensure at least once delivery of events + return err } for _, event := range noteEvents { if err = d.LogEvent(event); err != nil { logger.Log("err", err) + // Abort early to ensure at least once delivery of events + return err } } }