diff --git a/britney2/policies/autopkgtest.py b/britney2/policies/autopkgtest.py index 43fed24..e248208 100644 --- a/britney2/policies/autopkgtest.py +++ b/britney2/policies/autopkgtest.py @@ -852,7 +852,19 @@ 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: + # We have some buggy results in Ubuntu's swift that break a + # full reimport. Sometimes we fake up the exit code (when + # we want to convert tmpfails to permanent fails), but an + # early bug meant we sometimes didn't include a + # testpkg-version. + 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: