Advertising

* Fixes failure to download the Package index file when using
mirror:// URL in sources.list and the archive fails to profile
a file. APT would try the next archive in the list for .deb
packages but did not retry when the index file failed to download.
(LP: #1625667)
-- Louis Bouchard <louis.bouch...@ubuntu.com> Tue, 20 Sep 2016
17:02:03 +0200
** Changed in: apt (Ubuntu Trusty)
Status: Fix Committed => Fix Released
--
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, 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:
Fix Released
Status in apt source package in Trusty:
Fix Released
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
--
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help : https://help.launchpad.net/ListHelp