Patch verified through this sequence:

Add "deb http://archive.ubuntu.com/ubuntu trusty-proposed multiverse
restricted main universe" to /etc/apt/sources.list

apt-get update
apt-get install apt=1.0.1ubuntu2.15
apt-get upgrade  <- Accept all from maintainer

After that sequence, the apt-get update works without failure, even when
one of the mirrors is partly broken.

-- 
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 Committed

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

Reply via email to