[Bug 1921626] Re: size mismatch error if request of unknown size is larger than others
Launchpad Bug Tracker
1921626 at bugs.launchpad.net
Thu Jul 1 22:28:14 UTC 2021
This bug was fixed in the package apt - 1.6.14
---------------
apt (1.6.14) bionic; urgency=medium
* RunScripts: Do not reset SIGQUIT and SIGINT to SIG_DFL (LP: #1898026)
* Fix downloads of unsized files that are largest in pipeline (LP: #1921626),
and warn about packages without size (option Acquire::AllowUnsizedPackages)
* JSON hooks 0.2 and assorted JSON bugfixes (LP: #1926150)
- encoder fixes:
+ json: Escape strings using \u escape sequences, add test
+ json: Actually pop states
+ json: Encode NULL strings as null
- json: Flush standard file descriptors before calling hooks
(this avoids output from hooks in middle of apt output)
- Minor fixes to include and C++ namespaces
- non-code changes:
+ test/json: Make the test hook more reliable
+ Fix a typo in json-hooks-protocol.md (thanks to Brian Murray)
- semantic changes (new fields, hooks, and protocol 0.2):
+ json: Add origins fields to version
+ upgrade: Add JSON hook support (AptCli::Hooks::Upgrade)
+ json: Add `package-list` and `statistics` install hooks
+ json: Hook protocol 0.2 (added upgrade,downgrade,reinstall modes)
+ Fix a typo in json-hooks-protocol.md (thanks to Brian Murray)
* Avoid infinite loop on EOF on media change prompt (LP: #1928687)
-- Julian Andres Klode <juliank at ubuntu.com> Tue, 15 Jun 2021 16:12:38
+0200
** Changed in: apt (Ubuntu Bionic)
Status: Fix Committed => Fix Released
--
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/1921626
Title:
size mismatch error if request of unknown size is larger than others
Status in apt package in Ubuntu:
Fix Released
Status in apt source package in Bionic:
Fix Released
Status in apt source package in Focal:
Fix Released
Status in apt source package in Groovy:
New
Status in apt source package in Hirsute:
Fix Released
Bug description:
[Impact]
Downloads fail if:
- there is at least one package each with Size and no size on a mirror
- a package without a Size field is larger than a package with a Size field that's currently in the pipeline
Also, this was silent, we need to add an error so people fix repos.
For hirsute and earlier, this is a warning; for hirsute+1 it's an
error so people's CI fails on them and doesn't "succeed with warnings"
[Test plan]
We have included a test case in the apt integration tests, which
downloads three packages a, b, c where b is largest and has no Size
field. With 2.2.2, it fails; with 2.2.3 it succceeds.
We have also added a test case that a warning is shown.
[Where problems could occur]
Problems can only occur if you try to download packages without a Size field, as that is the only place code changes (adding code guarded with if ... Size ... == 0; 0 being unknown size).
[Other changes]
2.2.3 includes the same change as 2.2.2ubuntu1
[Original bug report]
1) Ubuntu 18.04.5 LTS
2) apt 1.6.12ubuntu0.2
3) What you expected to happen
I set a custom set of repositories in /etc/apt/sources.list and then I
run "apt install <list of packages>". I expect the command to download
and install the packages.
4) What happened instead
"apt install ..." fails during the download phase with "File has
unexpected size ...."
5) What I've established trying to debug the issue:
- Disabling http pipelining resolves the issue: "apt -oAcquire::http::Pipeline-Depth=0 install ..."
- All the packages, and repo metadata in the referenced repositories is correct
- The issue is easily reproducible in my setup with different repositories
- tcpdump shows that requests and responses are in the correct order, and contain the correct data
More details about the issue:
https://projects.theforeman.org/issues/32178
With all the above in mind, it appears that this must be a bug in apt's http pipeline handling.
It seem that apt is trying to match a request to do wrong response, and size doesn't match.
I've attached an example log, where the error pops up for multiple
packages, and they all appear to be compared to one size (86464
bytes). That size is correct for one of the package being downloaded,
but somehow apt is trying to match to multiple other packages.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1921626/+subscriptions
More information about the foundations-bugs
mailing list