diff options
author | Igor D.C <igor.duarte.cardoso@intel.com> | 2020-09-24 22:01:35 +0000 |
---|---|---|
committer | Igor D.C <igor.duarte.cardoso@intel.com> | 2020-09-25 05:31:13 +0000 |
commit | 6498e883dcbc005b32f86f8a57c96950c359d98e (patch) | |
tree | a136c1f715efc6f4ba0afb11e5996fd5ad47c72f /src/rsync/pkg | |
parent | ab8142dfc0f54bfc140e240fe558ac5be8d60ea5 (diff) |
If getAppContextStatus fails, cancel waitForDone
And log error appropriately.
Essentially, add basic error handling and return from waitForDone.
It is possible to trigger this error easily by having an rsync client
wipe out etcd right after issuing an InvokeUninstallApp, as demonstrated
by DCM (before it was adapted to use the new asynchronous rsync).
Issue-ID: MULTICLOUD-1143
Change-Id: Id5c0d8da928738cb3cdc862eaefdb91db2eadf5f
Signed-off-by: Igor D.C <igor.duarte.cardoso@intel.com>
Diffstat (limited to 'src/rsync/pkg')
-rw-r--r-- | src/rsync/pkg/context/context.go | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/rsync/pkg/context/context.go b/src/rsync/pkg/context/context.go index 4b886ec7..35e6c4e2 100644 --- a/src/rsync/pkg/context/context.go +++ b/src/rsync/pkg/context/context.go @@ -536,7 +536,13 @@ func waitForDone(ac appcontext.AppContext) { logutils.Info("Wait for done watcher running..", logutils.Fields{}) count = 0 } - acStatus, _ := getAppContextStatus(ac) + acStatus, err := getAppContextStatus(ac) + if err != nil { + logutils.Error("Failed to get the app context status", logutils.Fields{ + "error": err, + }) + return + } if acStatus.Status == appcontext.AppContextStatusEnum.Instantiated || acStatus.Status == appcontext.AppContextStatusEnum.InstantiateFailed { return |