From bbabac140d3e63ae592e6338bef5b74afe703e9d Mon Sep 17 00:00:00 2001 From: Iain Lane Date: Mon, 21 Jan 2019 11:20:27 +0000 Subject: [PATCH] Repair requests without testpkg-version We're supposed to synthesise an "unknown" version for these, but a bug in the worker meant we didn't do that in some cases and these leaked into swift. Let's repair it client-side. --- britney2/policies/autopkgtest.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/britney2/policies/autopkgtest.py b/britney2/policies/autopkgtest.py index dc53a74..729991c 100644 --- a/britney2/policies/autopkgtest.py +++ b/britney2/policies/autopkgtest.py @@ -528,7 +528,14 @@ class AutopkgtestPolicy(BasePolicy): try: with tarfile.open(None, 'r', tar_bytes) as tar: exitcode = int(tar.extractfile('exitcode').read().strip()) - srcver = tar.extractfile('testpkg-version').read().decode().strip() + try: + srcver = tar.extractfile('testpkg-version').read().decode().strip() + except KeyError as e: + if exitcode in (4, 12, 20): + # repair it + srcver = "%s unknown" % (src) + else: + raise (ressrc, ver) = srcver.split() testinfo = json.loads(tar.extractfile('testinfo.json').read().decode()) except (KeyError, ValueError, tarfile.TarError) as e: