[Bug 1815129] Re: apt segfaults when generating cache file
Heitor R. Alves de Siqueira
1815129 at bugs.launchpad.net
Wed Feb 13 11:42:40 UTC 2019
Tested on apt-1.0.1ubuntu2.20 from trusty-proposed. Tried reproducing
according to the test case from description, and verified that apt-cache
does not crash:
ubuntu at apt-stress:~/stress-ng$ dpkg -l | grep apt
ii apt 1.0.1ubuntu2.20
(while having stress-ng running)
ubuntu at apt-stress:~/stress-ng$ for i in `seq 1 10000`;do apt-cache policy vsftpd;done
E: Couldn't make mmap of 30021560 bytes - MMap-mmap (12: Cannot allocate memory)
E: The package lists or status file could not be parsed or opened.
** Tags removed: verification-needed verification-needed-trusty
** Tags added: verification-done-trusty
** Tags added: verification-needed
--
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/1815129
Title:
apt segfaults when generating cache file
Status in apt package in Ubuntu:
Fix Released
Status in apt source package in Trusty:
Fix Committed
Status in apt package in Debian:
Fix Released
Bug description:
[Impact]
apt crashes (core dump) during cache creation
[Description]
When executing apt-cache several times on a memory constrained system, apt-cache can sometimes crash with a core dump file. This is related to mmap() failing allocations during cache generation, according to an upstream bug report (803417).
There is an upstream patch for this bug (6789e01e do not segfault in cache generation on mmap failure) and it's included in the apt package for other series (see below), so we only need to backport it to Trusty.
Upstream commit: https://salsa.debian.org/apt-
team/apt/commit/6789e01e9370b3b7f65d52138c5657eaa712b4d1
$ git describe --contains 6789e01e9370
1.1_exp16~5
$ rmadison apt
apt | 1.0.1ubuntu2 | trusty | source, ...
apt | 1.0.1ubuntu2.19 | trusty-security | source, ...
apt | 1.0.1ubuntu2.19 | trusty-updates | source, ...
apt | 1.2.10ubuntu1 | xenial | source, ...
apt | 1.6.1 | bionic | source, ...
apt | 1.7.0 | cosmic | source, ...
apt | 1.8.0~rc2 | disco | source, ...
[Test Case]
1) Deploy a Trusty (14.04 LTS) vm w/ 128M
2) Fetch latest stress-ng src code
2.1) git clone git://kernel.ubuntu.com/cking/stress-ng
2.2) cd stress-ng
2.3) make clean
2.4) make
3) Stress the mmap() with stress-ng
3.1) ./stress-ng --brk 2 --mmap 5 --vm 1 --mmap-bytes 90%
4) Disable swap (if any)
4.1) swapoff -a
5) for i in `seq 1 10000`;do apt-cache policy vsftpd;done
...
vsftpd:
Installed: (none)
Candidate: 3.0.2-1ubuntu2.14.04.1
Version table:
3.0.2-1ubuntu2.14.04.1 0
500 http://us.archive.ubuntu.com/ubuntu/ trusty-updates/main amd64 Packages
3.0.2-1ubuntu2 0
500 http://us.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages
Segmentation fault (core dumped)
Segmentation fault (core dumped)
Segmentation fault (core dumped)
Segmentation fault (core dumped)
Segmentation fault (core dumped)
Segmentation fault (core dumped)
...
[Regression Potential]
The regression potential for this should be low, as it's a change in the failure path for memory allocations. This shouldn't be triggered during normal usage, and we'll thoroughly test the patched package with autopkgtests and perform scripted runs in memory-constrained systems with stress-ng.
We also have a confirmation from an impacted user that the upstream patch fixes their issue without further problems.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1815129/+subscriptions
More information about the foundations-bugs
mailing list