From: Peter Marko Date: Tue, 11 Jul 2023 06:36:28 +0000 (+0200) Subject: cve-update-nvd2-native: retry all errors and sleep between retries X-Git-Tag: lucaceresoli/bug-15201-perf-libtraceevent-missing~392 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=88dad8f198baa80af5ab576498f4df6ed639d551;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git cve-update-nvd2-native: retry all errors and sleep between retries Last couple days it is not possible to update NVD DB as servers are returning lot of errors. Mostly "HTTP Error 503: Service Unavailable" is observed but sporadially also some others. Retrying helps in most cases, so extend retries to all errors. Additionally add sleep which is recommended by NVD between requests. These retries are already implemented between successful requests, but giving servers time between failed ones is important, too. Signed-off-by: Peter Marko Signed-off-by: Richard Purdie --- diff --git a/meta/recipes-core/meta/cve-update-nvd2-native.bb b/meta/recipes-core/meta/cve-update-nvd2-native.bb index c85df23f598..e2584d21b3d 100644 --- a/meta/recipes-core/meta/cve-update-nvd2-native.bb +++ b/meta/recipes-core/meta/cve-update-nvd2-native.bb @@ -119,6 +119,7 @@ def nvd_request_next(url, api_key, args): import urllib.parse import gzip import http + import time headers = {} if api_key: @@ -140,13 +141,9 @@ def nvd_request_next(url, api_key, args): r.close() - except UnicodeDecodeError: - # Received garbage, retry - bb.debug(2, "CVE database: received malformed data, retrying (request: %s)" %(full_request)) - pass - except http.client.IncompleteRead: - # Read incomplete, let's try again - bb.debug(2, "CVE database: received incomplete data, retrying (request: %s)" %(full_request)) + except Exception as e: + bb.debug(2, "CVE database: received error (%s), retrying (request: %s)" %(e, full_request)) + time.sleep(6) pass else: return raw_data