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@apt-stress:~/stress-ng$ dpkg -l | grep apt
ii  apt                                     1.0.1ubuntu2.20

(while having stress-ng running)
ubuntu@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
Touch seeded packages, 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

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