[Bug 1625667] Re: Trusty: apt does not try next mirror if index file download fails with mirror:// source
Martin Pitt
martin.pitt at ubuntu.com
Tue Sep 27 09:04:03 UTC 2016
Hello Louis, or anyone else affected,
Accepted apt into trusty-proposed. The package will build now and be
available at https://launchpad.net/ubuntu/+source/apt/1.0.1ubuntu2.15 in
a few hours, and then in the -proposed repository.
Please help us by testing this new package. See
https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to
enable and use -proposed. Your feedback will aid us getting this update
out to other Ubuntu users.
If this package fixes the bug for you, please add a comment to this bug,
mentioning the version of the package you tested, and change the tag
from verification-needed to verification-done. If it does not fix the
bug for you, please add a comment stating that, and change the tag to
verification-failed. In either case, details of your testing will help
us make a better decision.
Further information regarding the verification process can be found at
https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in
advance!
** Changed in: apt (Ubuntu Trusty)
Status: In Progress => Fix Committed
** Tags added: verification-needed
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to apt in Ubuntu.
https://bugs.launchpad.net/bugs/1625667
Title:
Trusty: apt does not try next mirror if index file download fails with
mirror:// source
Status in apt package in Ubuntu:
Invalid
Status in apt source package in Trusty:
Fix Committed
Status in apt source package in Xenial:
Invalid
Bug description:
[SRU justification]
This fix is needed to allow correct archive mirroring functionality.
[Impact]
Without this fix, apt-get update and other apt commands requiring Package file access may fail when there are remote transient errors due to archive availability.
[Fix]
Use std::npos instead of 0 to test presence of "Translation" in ShortDesc.
[Test Case]
1) Setup three containers (archive1, archive2, archive3) with a reprepro configuration mirroring the ubuntu restricted archive (to save on space and time to replicate).
2) Add an apache webserver serving the reprepro archive over http on each container
3) Add the following mirrors.txt file to one of the webserver (archive1):
$ cat /var/www/html/mirrors.txt
http://archive1/ubuntu/
http://archive2/ubuntu/
http://archive3/ubuntu/
4) Add a client container. Add the IP adresses of the archive[1-3] containers to /etc/hosts. Alias the archive1 address to archive.ubuntu.com similar to the following :
$ cat /etc/hosts
127.0.0.1 localhost
10.0.4.182 archive1 mirrors.ubuntu.com
10.0.4.127 archive2
10.0.4.193 archive3
5) Add the following line to the /etc/apt/sources.list, commenting all other entries :
$ cat /etc/apt/sources.list
#deb http://archive.ubuntu.com/ubuntu trusty main
#deb http://archive.ubuntu.com/ubuntu trusty-updates main
#deb http://archive.ubuntu.com/ubuntu trusty universe
#deb http://archive.ubuntu.com/ubuntu trusty-updates universe
deb mirror://mirrors.ubuntu.com/mirrors.txt trusty restricted
6) Run
$ apt-get -oDebug::Acquire::mirror=true update
The log should display for the Packages file :
MirrorMethod::Fetch()
Failure to get http://10.0.4.193/ubuntu//dists/trusty/restricted/binary-amd64/Packages
Err http://10.0.4.193/ubuntu/ trusty/restricted amd64 Packages
With the fix you will see :
MirrorMethod::Fetch()
Failure to get http://10.0.4.193/ubuntu//dists/trusty/restricted/binary-amd64/Packages.gz
TryNextMirror: http://10.0.4.127/ubuntu//dists/trusty/restricted/binary-amd64/Packages.gz
[Regression]
None expected. Worse that can happen is a retry when none was done previously.
[Original description of the problem]
When using the mirror://mirrors.ubuntu.com/mirrors.txt functionality on Trusty, if the download of the index file fails, apt will not retry on another archive listed in mirrors.txt and will fail.
Running the following on Trusty leads to the following result :
sudo apt-get update -qq
W: Failed to fetch mirror://mirrors.ubuntu.com/mirrors.txt/dists/trusty-security/universe/binary-amd64/Packages 404 Not Found [Mirror: http://ftp.availo.se/ubuntu/]
W: Failed to fetch mirror://mirrors.ubuntu.com/mirrors.txt/dists/trusty-security/main/binary-i386/Packages 404 Not Found [Mirror: http://ftp.availo.se/ubuntu/]
W: Failed to fetch mirror://mirrors.ubuntu.com/mirrors.txt/dists/trusty-security/restricted/binary-i386/Packages 404 Not Found [Mirror: http://ftp.availo.se/ubuntu/]
W: Failed to fetch mirror://mirrors.ubuntu.com/mirrors.txt/dists/trusty-security/universe/binary-i386/Packages 404 Not Found [Mirror: http://ftp.availo.se/ubuntu/]
W: Failed to fetch mirror://mirrors.ubuntu.com/mirrors.txt/dists/trusty-updates/main/binary-amd64/Packages 404 Not Found [Mirror: http://ftp.availo.se/ubuntu/]
W: Failed to fetch mirror://mirrors.ubuntu.com/mirrors.txt/dists/trusty-updates/restricted/binary-amd64/Packages 404 Not Found [Mirror: http://ftp.availo.se/ubuntu/]
W: Failed to fetch mirror://mirrors.ubuntu.com/mirrors.txt/dists/trusty-updates/universe/binary-amd64/Packages 404 Not Found [Mirror: http://ftp.availo.se/ubuntu/]
W: Failed to fetch mirror://mirrors.ubuntu.com/mirrors.txt/dists/trusty-updates/main/binary-i386/Packages 404 Not Found [Mirror: http://ftp.availo.se/ubuntu/]
W: Failed to fetch mirror://mirrors.ubuntu.com/mirrors.txt/dists/trusty-updates/restricted/binary-i386/Packages 404 Not Found [Mirror: http://ftp.availo.se/ubuntu/]
W: Failed to fetch mirror://mirrors.ubuntu.com/mirrors.txt/dists/trusty-updates/universe/binary-i386/Packages 404 Not Found [Mirror: http://ftp.availo.se/ubuntu/]
E: Some index files failed to download. They have been ignored, or old ones used instead.
The same configuration works correctly on Xenial
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1625667/+subscriptions
More information about the foundations-bugs
mailing list