From a00cefa5f810d6575af758721152f04e65c3fd2d Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Wed, 13 May 2020 17:20:36 +0200
Subject: [PATCH] fix(terraform): gracefully handle EAI_AGAIN

---
 lib/datasource/terraform-module/index.ts   | 7 ++++++-
 lib/datasource/terraform-provider/index.ts | 7 ++++++-
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/lib/datasource/terraform-module/index.ts b/lib/datasource/terraform-module/index.ts
index 0295c742e5..62498efef9 100644
--- a/lib/datasource/terraform-module/index.ts
+++ b/lib/datasource/terraform-module/index.ts
@@ -2,7 +2,7 @@ import is from '@sindresorhus/is';
 import { logger } from '../../logger';
 import * as globalCache from '../../util/cache/global';
 import { Http } from '../../util/http';
-import { GetReleasesConfig, ReleaseResult } from '../common';
+import { DatasourceError, GetReleasesConfig, ReleaseResult } from '../common';
 
 export const id = 'terraform-module';
 
@@ -111,6 +111,11 @@ export async function getReleases({
       });
       return null;
     }
+    const failureCodes = ['EAI_AGAIN'];
+    // istanbul ignore if
+    if (failureCodes.includes(err.code)) {
+      throw new DatasourceError(err);
+    }
     logger.warn(
       { err, lookupName },
       'Terraform registry failure: Unknown error'
diff --git a/lib/datasource/terraform-provider/index.ts b/lib/datasource/terraform-provider/index.ts
index 10d609efe1..abe32ad04a 100644
--- a/lib/datasource/terraform-provider/index.ts
+++ b/lib/datasource/terraform-provider/index.ts
@@ -1,7 +1,7 @@
 import { logger } from '../../logger';
 import * as globalCache from '../../util/cache/global';
 import { Http } from '../../util/http';
-import { GetReleasesConfig, ReleaseResult } from '../common';
+import { DatasourceError, GetReleasesConfig, ReleaseResult } from '../common';
 
 export const id = 'terraform-provider';
 
@@ -69,6 +69,11 @@ export async function getReleases({
       });
       return null;
     }
+    const failureCodes = ['EAI_AGAIN'];
+    // istanbul ignore if
+    if (failureCodes.includes(err.code)) {
+      throw new DatasourceError(err);
+    }
     logger.warn(
       { err, lookupName },
       'Terraform registry failure: Unknown error'
-- 
GitLab