Public bug reported:

[Impact]
Downloading many packages on archive.ubuntu.com or some other mirrors seems to 
close the connection after every 100 or so packages. APT prior to 1.7.0~rc1 
(commit df696650b7a8c58bbd92e0e1619e956f21010a96), treats a connection closure 
with a 200 response as meaning that the server does not support pipelining, 
hence disabling it for any further downloads.

With high speed connections at higher latency, this can cause a severe
reduction in usable bandwidth. For example, I saw speeds drop from 40
MB/s to 15 MB/s due to this.

The fix ensures that we continue pipelining if the previous connection
to the server successfully retrieved at least 3 files with pipelining
enabled.

[Test case]
Pick a package that would cause a large number (200/300 packages of packages to 
be installed). I used plasma-desktop and xubuntu-desktop, for example. Run apt 
install -d $package. Ensure that after the first 101 packages the progress does 
not slow down - you should not see a lot "working" in the progress output. The 
speed should be substantially higher.

Requirements:
* High speed, medium-high latency connection (e.g. 400 Mbit/s at 30 ms RTT is 
enough)
* Not a terribly slow CPU, as we'd get slowed down by hashing otherwise

[Regression potential]
This fix is isolated to code enabling/disabling pipelining on subsequent 
connections. It could cause more pipelining to be tried on servers who are not 
particularly good at it, but can deal with 3 items correctly.

** Affects: apt (Ubuntu)
     Importance: Undecided
         Status: Fix Released

** Affects: apt (Ubuntu Xenial)
     Importance: Undecided
         Status: Triaged

** Affects: apt (Ubuntu Bionic)
     Importance: Undecided
         Status: Triaged

** Changed in: apt (Ubuntu)
       Status: New => Fix Released

** Also affects: apt (Ubuntu Bionic)
   Importance: Undecided
       Status: New

** Also affects: apt (Ubuntu Xenial)
   Importance: Undecided
       Status: New

** Changed in: apt (Ubuntu Xenial)
       Status: New => Triaged

** Changed in: apt (Ubuntu Bionic)
       Status: New => Triaged

-- 
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/1794957

Title:
  pipelining on archive.u.c aborts after 101 packages

Status in apt package in Ubuntu:
  Fix Released
Status in apt source package in Xenial:
  Triaged
Status in apt source package in Bionic:
  Triaged

Bug description:
  [Impact]
  Downloading many packages on archive.ubuntu.com or some other mirrors seems 
to close the connection after every 100 or so packages. APT prior to 1.7.0~rc1 
(commit df696650b7a8c58bbd92e0e1619e956f21010a96), treats a connection closure 
with a 200 response as meaning that the server does not support pipelining, 
hence disabling it for any further downloads.

  With high speed connections at higher latency, this can cause a severe
  reduction in usable bandwidth. For example, I saw speeds drop from 40
  MB/s to 15 MB/s due to this.

  The fix ensures that we continue pipelining if the previous connection
  to the server successfully retrieved at least 3 files with pipelining
  enabled.

  [Test case]
  Pick a package that would cause a large number (200/300 packages of packages 
to be installed). I used plasma-desktop and xubuntu-desktop, for example. Run 
apt install -d $package. Ensure that after the first 101 packages the progress 
does not slow down - you should not see a lot "working" in the progress output. 
The speed should be substantially higher.

  Requirements:
  * High speed, medium-high latency connection (e.g. 400 Mbit/s at 30 ms RTT is 
enough)
  * Not a terribly slow CPU, as we'd get slowed down by hashing otherwise

  [Regression potential]
  This fix is isolated to code enabling/disabling pipelining on subsequent 
connections. It could cause more pipelining to be tried on servers who are not 
particularly good at it, but can deal with 3 items correctly.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1794957/+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