[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#657439: apt: "MMap ran out of room" is bad. Please auto-adjust "Cache-limit"



Package: apt
Version: 0.8.15.9
Severity: wishlist

Dear Maintainer,
*** Please consider answering these questions, where appropriate ***

   * What led up to the situation?
I ran "apt-get upgrade"

   * What exactly did you do (or not do) that was effective (or
     ineffective)?
The crash message suggested how to fix it. But this ought to be automatic.

   * What was the outcome of this action?
E: Dynamic MMap ran out of room. Please increase the size of APT::Cache-Limit. Current value: 32505856. (man 5 apt.conf)
Reading package lists... Error!
E: Unable to increase the size of the MMap as the limit of 32000000 bytes is already reached. E: Dynamic MMap ran out of room. Please increase the size of APT::Cache-Limit. Current value: 32505856. (man 5 apt.conf)
E: Error occurred while processing darkplaces (NewVersion2)
E: Problem with MergeList /var/lib/apt/lists/ftp.fi.debian.org_debian_dists_unstable_main_binary-amd64_Packages
E: The package lists or status file could not be parsed or opened.

   * What outcome did you expect instead?
The system upgrading itself.

*** End of the template - remove these lines ***
As a programmer, I understand what happened. But it seems like a design bug to me.

There is a mmap limit in the config, and the admin is told how to increase it
when the limit disrupts the system.

This limit seems to have no use - because the admin has no real choice here. He MUST
increase the limit, or stop using "apt-get upgrade". So the code might as
well do this automatically: Set the mmap limit based on the size of
files to process. If that is not feasible, use a loop that double the
limit and retry processing until it works. This approach may of course
end badly on a memory constrained system, but that just means apt-get
cannot be used on such a system.

Telling users to make mandatory changes that can
be done programmatically is not user-friendly.

Unless there is a hidden risk - but a system that will crash from memory overuse will crash anyway - it won't matter if it is
a program or the user that increase the limit.

I solved my problem by doubling the limit, but I don't know
if that will be enough forever, or what the maximum limit
on this machine is. I don't have "better information" than
the software has.

-- Package-specific info:

-- apt-config dump --

APT "";
APT::Architecture "amd64";
APT::Build-Essential "";
APT::Build-Essential:: "build-essential";
APT::Install-Recommends "1";
APT::Install-Suggests "0";
APT::Authentication "";
APT::Authentication::TrustCDROM "true";
APT::NeverAutoRemove "";
APT::NeverAutoRemove:: "^firmware-linux.*";
APT::NeverAutoRemove:: "^linux-firmware$";
APT::NeverAutoRemove:: "^linux-image.*";
APT::NeverAutoRemove:: "^kfreebsd-image.*";
APT::NeverAutoRemove:: "^linux-restricted-modules.*";
APT::NeverAutoRemove:: "^linux-ubuntu-modules-.*";
APT::NeverAutoRemove:: "^gnumach$";
APT::NeverAutoRemove:: "^gnumach-image.*";
APT::Never-MarkAuto-Sections "";
APT::Never-MarkAuto-Sections:: "metapackages";
APT::Never-MarkAuto-Sections:: "restricted/metapackages";
APT::Never-MarkAuto-Sections:: "universe/metapackages";
APT::Never-MarkAuto-Sections:: "multiverse/metapackages";
APT::Never-MarkAuto-Sections:: "oldlibs";
APT::Never-MarkAuto-Sections:: "restricted/oldlibs";
APT::Never-MarkAuto-Sections:: "universe/oldlibs";
APT::Never-MarkAuto-Sections:: "multiverse/oldlibs";
APT::Cache-Limit "64000000";
APT::Architectures "";
APT::Architectures:: "amd64";
Dir "/";
Dir::State "var/lib/apt/";
Dir::State::lists "lists/";
Dir::State::cdroms "cdroms.list";
Dir::State::mirrors "mirrors/";
Dir::State::extended_states "extended_states";
Dir::State::status "/var/lib/dpkg/status";
Dir::Cache "var/cache/apt/";
Dir::Cache::archives "archives/";
Dir::Cache::srcpkgcache "srcpkgcache.bin";
Dir::Cache::pkgcache "pkgcache.bin";
Dir::Etc "etc/apt/";
Dir::Etc::sourcelist "sources.list";
Dir::Etc::sourceparts "sources.list.d";
Dir::Etc::vendorlist "vendors.list";
Dir::Etc::vendorparts "vendors.list.d";
Dir::Etc::main "apt.conf";
Dir::Etc::netrc "auth.conf";
Dir::Etc::parts "apt.conf.d";
Dir::Etc::preferences "preferences";
Dir::Etc::preferencesparts "preferences.d";
Dir::Etc::trusted "trusted.gpg";
Dir::Etc::trustedparts "trusted.gpg.d";
Dir::Bin "";
Dir::Bin::methods "/usr/lib/apt/methods";
Dir::Bin::dpkg "/usr/bin/dpkg";
Dir::Media "";
Dir::Media::MountPath "/media/apt";
Dir::Log "var/log/apt";
Dir::Log::Terminal "term.log";
Dir::Log::History "history.log";
Dir::Ignore-Files-Silently "";
Dir::Ignore-Files-Silently:: "~$";
Dir::Ignore-Files-Silently:: "\.disabled$";
Dir::Ignore-Files-Silently:: "\.bak$";
Dir::Ignore-Files-Silently:: "\.dpkg-[a-z]+$";
Dir::Ignore-Files-Silently:: "\.save$";
Dir::Ignore-Files-Silently:: "\.orig$";
Acquire "";
Acquire::cdrom "";
Acquire::cdrom::mount "/media/cdrom/";
Acquire::Languages "";
Acquire::Languages:: "en";
Acquire::Languages:: "none";
Acquire::Languages:: "da";
Acquire::Languages:: "nb";
Unattended-Upgrade "";
Unattended-Upgrade::Origins-Pattern "";
Unattended-Upgrade::Origins-Pattern:: "origin=Debian,archive=stable,label=Debian-Security";
DPkg "";
DPkg::Pre-Install-Pkgs "";
DPkg::Pre-Install-Pkgs:: "/usr/sbin/dpkg-preconfigure --apt || true";
DPkg::Post-Invoke "";
DPkg::Post-Invoke:: "if [ -x /usr/bin/debsums ]; then /usr/bin/debsums --generate=nocheck -sp /var/cache/apt/archives; fi"; DPkg::Post-Invoke:: "which dzhandle >/dev/null && dzhandle restart-pending-instances || true";
CommandLine "";
CommandLine::AsString "apt-config dump";

-- /etc/apt/preferences --

Package:*
Pin: release a=stable
Pin-Priority:800

Package: *
Pin: release a=testing
Pin-Priority: 900

Package: *
Pin: release a=unstable
Pin-Priority: 800

Package: *
Pin: release a=experimental
Pin-Priority: 700

Package: *
Pin: release o=Debian
Pin-Priority: -10

-- /etc/apt/sources.list --

#
# deb cdrom:[Debian GNU/Linux 4.0 r1 _Etch_ - Official amd64 NETINST Binary-1 20070820-20:16]/ etch contrib main

#deb cdrom:[Debian GNU/Linux 4.0 r1 _Etch_ - Official amd64 NETINST Binary-1 20070820-20:16]/ etch contrib main

#Debian
deb http://ftp.fi.debian.org/debian/ stable main contrib non-free
deb http://ftp.fi.debian.org/debian/ testing main contrib non-free
deb http://ftp.fi.debian.org/debian/ unstable main contrib non-free
#deb http://ftp.fi.debian.org/debian/ experimental main contrib non-free

#deb-src http://ftp.fi.debian.org/debian/ etch main
#Debian multimedia
#deb http://www.debian-multimedia.org stable main non-free
#deb http://www.debian-multimedia.org testing main non-free
#deb http://www.debian-multimedia.org sid main non-free
#deb http://www.debian-multimedia.org experimental main

#deb http://security.debian.org/ etch/updates main contrib
#deb-src http://security.debian.org/ etch/updates main contrib

#initng:
#deb http://debian.space-based.de/debs/ experimental main

#libdvdcss
#deb http://download.videolan.org/pub/videolan/debian sid main

#Stable nvidia drivers no longer in the usual repositories
#deb http://snapshot.debian.net/archive pool nvidia-graphics-drivers
#deb-src http://snapshot.debian.net/archive pool nvidia-graphics-drivers


-- System Information:
Debian Release: wheezy/sid
  APT prefers testing
  APT policy: (900, 'testing'), (800, 'unstable'), (800, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 3.2.0-1-amd64 (SMP w/2 CPU cores)
Locale: LANG=nb_NO.UTF-8, LC_CTYPE=nb_NO.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages apt depends on:
ii  debian-archive-keyring  2010.08.28
ii  gnupg                   1.4.11-3
ii  libc6                   2.13-24
ii  libgcc1                 1:4.6.2-11
ii  libstdc++6              4.6.2-11
ii  zlib1g                  1:1.2.3.4.dfsg-3

apt recommends no packages.

Versions of packages apt suggests:
ii  apt-doc     <none>
ii  aptitude    0.6.4-1.2
ii  bzip2       1.0.6-1
ii  dpkg-dev    1.16.1.2
ii  lzma        <none>
ii  python-apt  0.8.0
ii  synaptic    0.75.4

-- debconf-show failed



Reply to: