From 934b1dc9c430d8882246b88e0d7df9f86e79266c Mon Sep 17 00:00:00 2001 From: Stefan Martinov Date: Fri, 25 Oct 2019 16:37:05 +0200 Subject: [PATCH] fix: add update log queue rejection --- repo/loader.go | 2 +- repo/repo.go | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/repo/loader.go b/repo/loader.go index 67a3268..e483cd7 100644 --- a/repo/loader.go +++ b/repo/loader.go @@ -223,7 +223,7 @@ func (repo *Repo) tryUpdate() (repoRuntime int64, err error) { return ur.repoRuntime, ur.err default: Log.Info("update request accepted, will be processed after the previous update") - return 0, nil + return 0, errUpdateRejected } } diff --git a/repo/repo.go b/repo/repo.go index ee26b27..719d7e3 100644 --- a/repo/repo.go +++ b/repo/repo.go @@ -255,13 +255,15 @@ func (repo *Repo) Update() (updateResponse *responses.Update) { updateResponse.Success = false updateResponse.Stats.NumberOfNodes = -1 updateResponse.Stats.NumberOfURIs = -1 - // let us try to restore the world from a file - Log.Error("could not update repository:", zap.Error(updateErr)) - // Log.Info(ansi.Yellow + "BUFFER LENGTH AFTER ERROR: " + strconv.Itoa(len(repo.jsonBuf.Bytes())) + ansi.Reset) - updateResponse.ErrorMessage = updateErr.Error() + // let us try to restore the world from a file + // Log.Info(ansi.Yellow + "BUFFER LENGTH AFTER ERROR: " + strconv.Itoa(len(repo.jsonBuf.Bytes())) + ansi.Reset) // only try to restore if the update failed during processing + if updateErr != errUpdateRejected { + updateResponse.ErrorMessage = updateErr.Error() + Log.Error("could not update repository:", zap.Error(updateErr)) + restoreErr := repo.tryToRestoreCurrent() if restoreErr != nil { Log.Error("failed to restore preceding repo version", zap.Error(restoreErr))