[Bug 1794957] [NEW] pipelining on archive.u.c aborts after 101 packages
Julian Andres Klode
1794957 at bugs.launchpad.net
Fri Sep 28 11:07:44 UTC 2018
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
Foundations Bugs, 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
More information about the foundations-bugs
mailing list