Always back off on image fetch failure

Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
This commit is contained in:
Cameron Diver 2019-02-13 15:43:18 +00:00
parent c6d20a598b
commit d9177404b5
No known key found for this signature in database
GPG Key ID: 49690ED87032539F

View File

@ -136,11 +136,7 @@ export class Images extends (EventEmitter as {
} catch (e) {
if (!NotFoundError(e)) {
if (!(e instanceof ImageDownloadBackoffError)) {
this.imageFetchLastFailureTime[image.name] = process.hrtime();
this.imageFetchFailures[image.name] =
this.imageFetchFailures[image.name] != null
? this.imageFetchFailures[image.name] + 1
: 1;
this.addImageFailure(image.name);
}
throw e;
}
@ -173,6 +169,7 @@ export class Images extends (EventEmitter as {
// processing
this.logger.logSystemEvent(LogTypes.deltaStillProcessingError, {});
} else {
this.addImageFailure(image.name);
this.logger.logSystemEvent(LogTypes.downloadImageError, {
image,
error: err,
@ -232,6 +229,14 @@ export class Images extends (EventEmitter as {
);
}
private addImageFailure(imageName: string, time = process.hrtime()) {
this.imageFetchLastFailureTime[imageName] = time;
this.imageFetchFailures[imageName] =
this.imageFetchFailures[imageName] != null
? this.imageFetchFailures[imageName] + 1
: 1;
}
private matchesTagOrDigest(
image: Image,
dockerImage: NormalisedDockerImage,