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