--- Begin Message ---
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
--- End Message ---
--- Begin Message ---
Hi,
On Thu, Jan 26, 2012 at 11:11, Helge Hafting <helge.hafting@hist.no> wrote:
> 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.
you have better information, as you are in the better position to decide how
much memory APT should take. Especially as you have chosen to decide
how big this limit should be. Remove the APT::Cache-Limit from your settings
completely and APT will happily eat as much RAM as it needs to - in the hope
that you have enough RAM available.
The manpage will tell you more about these options.
I am therefore closing this bug, even through i have to grant that previously
this setting was (mis)used sometimes to work around some limits, but these
limits are gone since squeeze - and workarounds can be expected to cause
problems later on, but overriding (possibly) valid user settings isn't
a good way to workaround the used workarounds.
Best regards
David Kalnischkies
--- End Message ---