From 95278287f4e1eeaf5d96749d6fc9bfc53fb400d0 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 10 Sep 2015 19:00:51 +0200 Subject: avoid using global PendingError to avoid failing too often too soon MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Our error reporting is historically grown into some kind of mess. A while ago I implemented stacking for the global error which is used in this commit now to wrap calls to functions which do not report (all) errors via return, so that only failures in those calls cause a failure to propergate down the chain rather than failing if anything (potentially totally unrelated) has failed at some point in the past. This way we can avoid stopping the entire acquire process just because a single source produced an error for example. It also means that after the acquire process the cache is generated – even if the acquire process had failures – as we still have the old good data around we can and should generate a cache for (again). There are probably more instances of this hiding, but all these looked like the easiest to work with and fix with reasonable (aka net-positive) effects. --- test/integration/test-apt-update-ims | 3 +++ 1 file changed, 3 insertions(+) (limited to 'test/integration/test-apt-update-ims') diff --git a/test/integration/test-apt-update-ims b/test/integration/test-apt-update-ims index 33b4ed1b9..ed89cd342 100755 --- a/test/integration/test-apt-update-ims +++ b/test/integration/test-apt-update-ims @@ -97,6 +97,7 @@ signreleasefiles msgmsg 'expired InRelease' EXPECT='Hit:1 http://localhost:8080 unstable InRelease +Reading package lists... E: Release file for http://localhost:8080/dists/unstable/InRelease is expired (invalid since). Updates for this repository will not be applied.' echo 'Acquire::GzipIndexes "0";' > rootdir/etc/apt/apt.conf.d/02compressindex runtest 'failure' @@ -107,6 +108,7 @@ msgmsg 'expired Release/Release.gpg' EXPECT='Ign:1 http://localhost:8080 unstable InRelease 404 Not Found Hit:2 http://localhost:8080 unstable Release +Reading package lists... E: Release file for http://localhost:8080/dists/unstable/Release is expired (invalid since). Updates for this repository will not be applied.' find aptarchive -name 'InRelease' -delete echo 'Acquire::GzipIndexes "0";' > rootdir/etc/apt/apt.conf.d/02compressindex @@ -120,6 +122,7 @@ EXPECT="Ign:1 http://localhost:8080 unstable InRelease Hit:2 http://localhost:8080 unstable Release Ign:3 http://localhost:8080 unstable Release.gpg 404 Not Found +Reading package lists... W: The data from 'http://localhost:8080 unstable Release' is not signed. Packages from that repository can not be authenticated. E: Release file for http://localhost:8080/dists/unstable/Release is expired (invalid since). Updates for this repository will not be applied." find aptarchive -name 'Release.gpg' -delete -- cgit v1.2.3