Bug 22528 - Dynamic MMap ran out of room when Reading Package Lists
: Dynamic MMap ran out of room when Reading Package Lists
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/apt)
: unstable
: all Linux
: P3 critical
Assigned To:
:
:
:
:
: 22527 30541 30689 31410
  Show dependency tree
 
Reported: 2009-12-14 06:54 by
Modified: 2015-10-29 00:31 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2009-12-14 06:54:28
The same problem holds for apt-0.5.15lorg2-alt30 (with rpm-4.0.4-alt98.17).

I did the same test ("apt-get update") after resoring the lists of the CD from
the archive.

+++ This bug was initially created as a clone of Bug #22527 +++

Created an attachment (id=4122) [details]
/etc/apt/

apt-0.5.15lorg2-alt29

I switched from branch 5.0 to Sisyphus, and ran "update". The I tried to start
apt-shell, but it fails:

# cd /etc/apt/
[root@localhost apt]# git checkout sisy-internet 
Switched to branch 'sisy-internet'
[root@localhost apt]# apt-shell 
Reading Package Lists... Done
Building Dependency Tree... Done
Welcome to the APT shell. Type "help" for more information.
apt> update 
Ign cdrom://ALT Linux 4.1.1-RC Desktop (Thymus) build 2008-11-15 ALTLinux
release
Get:1 rsync://ftp.altlinux.org i586 release [727B]
Get:2 rsync://ftp.altlinux.org noarch release [726B]
Fetched 1453B in 0s (2168B/s)
Get:1 rsync://ftp.altlinux.org i586/classic pkglist [3692kB]
Get:2 rsync://ftp.altlinux.org i586/classic release [143B] 
Get:3 rsync://ftp.altlinux.org noarch/classic pkglist [2061kB]
Get:4 rsync://ftp.altlinux.org noarch/classic release [145B]
Fetched 5753kB in 8s (643kB/s)                                                  
Reading Package Lists... Error!
There are broken packages. Run `check' to see them.
You can try to fix them automatically with `install --fix-broken'0.
E: Dynamic MMap ran out of room
E: Error occured while processing libicfs (CollectFileProvides)
E: Problem with MergeFileProvides
/var/lib/apt/lists/ftp.altlinux.org_ALTLinux_Sisyphus_i586_base_pkglist.classic
E: The package lists or status file could not be parsed or opened.
apt> 
[root@localhost apt]# apt-shell 
Reading Package Lists... Error!
E: Dynamic MMap ran out of room
E: Error occured while processing libicfs (CollectFileProvides)
E: Problem with MergeFileProvides
/var/lib/apt/lists/ftp.altlinux.org_ALTLinux_Sisyphus_i586_base_pkglist.classic
E: The package lists or status file could not be parsed or opened.
[root@localhost apt]# df
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda6              11G  7.5G  3.4G  69% /
udevfs                5.0M  100K  5.0M   2% /dev
shmfs                1004M     0 1004M   0% /dev/shm
tmpfs                1004M  8.0K 1004M   1% /tmp
/dev/sda7              43G   41G  1.9G  96% /home
/dev/sda2              26G   22G  3.8G  86% /mnt/disk
/dev/sda5              11G  549M   11G   5% /var
[root@localhost apt]# free -m
             total       used       free     shared    buffers     cached
Mem:          2006        795       1210          0          1        497
-/+ buffers/cache:        297       1708
Swap:         4000          0       4000
[root@localhost apt]#
------- Comment #1 From 2009-12-14 06:58:59 -------
The problem is true for apt-0.5.15lorg2-alt30 with rpm-4.0.4-alt98.24, too.
------- Comment #2 From 2009-12-14 07:03:04 -------
A similar situation appeared before:
https://bugzilla.altlinux.org/show_bug.cgi?id=16900 .
------- Comment #3 From 2009-12-14 07:19:18 -------
Setting APT::Cache-Limit helps -- thanks
http://lists.altlinux.org/pipermail/sisyphus/2008-March/328458.html :

[root@localhost ~]# apt-get -o APT::Cache-Limit=$(( 1024 * 1024 * 1024 / 2 ))
update 
Ign cdrom://ALT Linux 4.1.1-RC Desktop (Thymus) build 2008-11-15 ALTLinux
release
Get:1 rsync://ftp.altlinux.org i586 release [727B]
Get:2 rsync://ftp.altlinux.org noarch release [726B]
Fetched 1453B in 0s (3052B/s)
Get:1 rsync://ftp.altlinux.org i586/classic pkglist [3712kB]
Get:2 rsync://ftp.altlinux.org i586/classic release [143B]
Get:3 rsync://ftp.altlinux.org noarch/classic pkglist [2065kB]
Get:4 rsync://ftp.altlinux.org noarch/classic release [145B]
Fetched 5777kB in 6s (915kB/s)                                                  
Reading Package Lists... Done
Building Dependency Tree... Done
[root@localhost ~]# 

Probably, the default limit is too low; I haven't modified it:

# fgrep -i limit -r /etc/apt/
#
------- Comment #4 From 2009-12-14 14:58:32 -------
> I switched from branch 5.0 to Sisyphus, and ran "update".
Could you try to rpm -Uvh apt/libapt from 5.0/branch first?
------- Comment #5 From 2009-12-14 20:44:52 -------
Is it a bug #16900 dup?
------- Comment #6 From 2010-10-25 13:43:36 -------
(In reply to comment #5)
> Is it a bug #16900 dup?

No, it isn't.
------- Comment #7 From 2010-11-14 21:56:10 -------
Так планируется багу-то закрывать? Или как-то отразить, что выпущена сборка apt
* Чтв Ноя 04 2010 Dmitry V. Levin <ldv@altlinux.org> 0.5.15lorg2-alt34
- Increased default APT::Cache-Limit up to 48M.
------- Comment #8 From 2010-11-14 22:08:20 -------
workarounded in apt-0.5.15lorg2-alt34
------- Comment #9 From 2014-11-18 14:07:07 -------
FYI: There may appear a similar problem with the number of versions:
https://bugzilla.altlinux.org/show_bug.cgi?id=30482 . (I haven't tried to find
a solution for that one.)
------- Comment #10 From 2014-12-23 11:24:59 -------
It happens again with the current apt and Sisyphus (on x86-64) :(

Perhaps, it's time to increase the limit again?

# apt-get update 
Получено: 1 http://ftp.altlinux.org x86_64 release [914B]
Получено: 2 http://ftp.altlinux.org noarch release [708B]
Получено: 3 http://ftp.altlinux.org x86_64-i586 release [573B]
Получено 2195B за 0s (46,1kB/s).
Найдено http://ftp.altlinux.org x86_64/classic pkglist
Найдено http://ftp.altlinux.org x86_64/classic release
Найдено http://ftp.altlinux.org noarch/classic pkglist
Найдено http://ftp.altlinux.org noarch/classic release
Найдено http://ftp.altlinux.org x86_64-i586/classic pkglist
Найдено http://ftp.altlinux.org x86_64-i586/classic release
Чтение списков пакетов... Ошибка!
E: Dynamic MMap ran out of room
E: При обработке i586-libsundance10.32bit (NewVersion1) возникла ошибка
E: Ошибка с MergeList
/var/lib/apt/lists/ftp.altlinux.org_pub_distributions_ALTLinux_Sisyphus_x86%5f64-i586_base_pkglist.classic
E: Невозможно прочитать список пакетов или файл статуса.
# fgrep -i limit -r /etc/apt
# rpm -q apt
apt-0.5.15lorg2-alt49
# apt-repo
rpm [alt] http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus x86_64
classic
rpm [alt] http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus noarch
classic
rpm [alt] http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus
x86_64-i586 classic
#
------- Comment #11 From 2015-01-28 21:44:32 -------
This can be reproduced only after removing the cached stuff:

[root@ovicaa ~]# rm -fv /var/cache/apt/*.bin
удалён «/var/cache/apt/pkgcache.bin»
удалён «/var/cache/apt/srcpkgcache.bin»
[root@ovicaa ~]# apt-get update 
Получено: 1 http://ftp.altlinux.org x86_64 release [914B]
Получено: 2 http://ftp.altlinux.org noarch release [709B]
Получено: 3 http://ftp.altlinux.org x86_64-i586 release [573B]
Получено 2196B за 0s (7820B/s).
Найдено http://ftp.altlinux.org x86_64/classic pkglist
Найдено http://ftp.altlinux.org x86_64/classic release
Найдено http://ftp.altlinux.org noarch/classic pkglist
Найдено http://ftp.altlinux.org noarch/classic release
Найдено http://ftp.altlinux.org x86_64-i586/classic pkglist
Найдено http://ftp.altlinux.org x86_64-i586/classic release
Чтение списков пакетов... Ошибка!
E: Dynamic MMap ran out of room
E: При обработке i586-librados2.32bit (NewVersion1) возникла ошибка
E: Ошибка с MergeList
/var/lib/apt/lists/ftp.altlinux.org_pub_distributions_ALTLinux_Sisyphus_x86%5f64-i586_base_pkglist.classic
E: Невозможно прочитать список пакетов или файл статуса.
[root@ovicaa ~]# apt-get update 
Получено: 1 http://ftp.altlinux.org x86_64 release [914B]
Получено: 2 http://ftp.altlinux.org noarch release [709B]
Получено: 3 http://ftp.altlinux.org x86_64-i586 release [573B]
Получено 2196B за 10s (213B/s).
Найдено http://ftp.altlinux.org x86_64/classic pkglist                          
Найдено http://ftp.altlinux.org x86_64/classic release                          
Найдено http://ftp.altlinux.org noarch/classic pkglist                          
Найдено http://ftp.altlinux.org noarch/classic release
Найдено http://ftp.altlinux.org x86_64-i586/classic pkglist
Найдено http://ftp.altlinux.org x86_64-i586/classic release
Чтение списков пакетов... Ошибка!                   
E: Dynamic MMap ran out of room
E: При обработке i586-librados2.32bit (NewVersion1) возникла ошибка
E: Ошибка с MergeList
/var/lib/apt/lists/ftp.altlinux.org_pub_distributions_ALTLinux_Sisyphus_x86%5f64-i586_base_pkglist.classic
E: Невозможно прочитать список пакетов или файл статуса.
[root@ovicaa ~]# apt-get -o APT::Cache-Limit=$(( 64 * 1024 * 1024 )) update
Получено: 1 http://ftp.altlinux.org x86_64 release [914B]
Получено: 2 http://ftp.altlinux.org noarch release [709B]
Получено: 3 http://ftp.altlinux.org x86_64-i586 release [573B]
Получено 2196B за 1s (2085B/s).
Найдено http://ftp.altlinux.org x86_64/classic pkglist
Найдено http://ftp.altlinux.org x86_64/classic release
Найдено http://ftp.altlinux.org noarch/classic pkglist
Найдено http://ftp.altlinux.org noarch/classic release
Найдено http://ftp.altlinux.org x86_64-i586/classic pkglist
Найдено http://ftp.altlinux.org x86_64-i586/classic release
Чтение списков пакетов... Ошибка!
E: Dynamic MMap ran out of room
E: При обработке i586-librados2.32bit (NewVersion1) возникла ошибка
E: Ошибка с MergeList
/var/lib/apt/lists/ftp.altlinux.org_pub_distributions_ALTLinux_Sisyphus_x86%5f64-i586_base_pkglist.classic
E: Невозможно прочитать список пакетов или файл статуса.
[root@ovicaa ~]# apt-get -o APT::Cache-Limit=$(( 80 * 1024 * 1024 )) update
Получено: 1 http://ftp.altlinux.org x86_64 release [914B]
Получено: 2 http://ftp.altlinux.org noarch release [709B]
Получено: 3 http://ftp.altlinux.org x86_64-i586 release [573B]
Получено 2196B за 0s (11,1kB/s).
Найдено http://ftp.altlinux.org x86_64/classic pkglist
Найдено http://ftp.altlinux.org x86_64/classic release
Найдено http://ftp.altlinux.org noarch/classic pkglist
Найдено http://ftp.altlinux.org noarch/classic release
Найдено http://ftp.altlinux.org x86_64-i586/classic pkglist
Найдено http://ftp.altlinux.org x86_64-i586/classic release
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
[root@ovicaa ~]#
------- Comment #12 From 2015-02-03 20:52:07 -------
Только что словил на сизифе:
# apt-get update
Получено: 1 http://ftp.altlinux.org x86_64 release [914B]
Получено: 2 http://ftp.altlinux.org noarch release [709B]
Получено 1623B за 0s (6746B/s).    
Получено: 1 http://ftp.altlinux.org x86_64/classic pkglist [17,4MB]             
Получено: 2 http://ftp.altlinux.org x86_64/classic release [147B]
Получено: 3 http://ftp.altlinux.org noarch/classic pkglist [4130kB]
Получено: 4 http://ftp.altlinux.org noarch/classic release [147B]
Получено 21,5MB за 12s (1763kB/s).                                              
Чтение списков пакетов... Ошибка!
E: Dynamic MMap ran out of room
E: При обработке python-module-django1.4-tests (NewVersion1) возникла ошибка
E: Ошибка с MergeList
/var/lib/apt/lists/_raid_Sisyphus_noarch_base_pkglist.classic
E: Невозможно прочитать список пакетов или файл статуса.
------- Comment #13 From 2015-02-11 15:39:16 -------
http://git.altlinux.org/tasks/140211/
------- Comment #14 From 2015-02-12 16:42:27 -------
Attention to all who care of installers:
this change will double libapt memory requirements.

I'm quite sure some installers are not ready for this yet.
------- Comment #15 From 2015-02-12 17:09:15 -------
Может, необязательно по экспоненте всё же?
------- Comment #16 From 2015-02-12 19:48:48 -------
(В ответ на комментарий №15)
> Может, необязательно по экспоненте всё же?

Может, необязательно...
------- Comment #17 From 2015-02-12 19:57:03 -------
Решать проблему по-другому? Сделать запись в apt.conf либо для инсталлятора,
либо для использования в уже установленной системе?

Может быть, пусть maintainer-ы инсталляторов пропишут свои минимальные
требования в apt.conf (если это работает). Просто им виднее, сколько им хватит.
Текущему Sisyphus надо больше. Поддерживать значения для инсталляторов в месте,
независимом от инсталляторов, ведь неудобно будет.
------- Comment #18 From 2015-02-12 19:58:33 -------
Для p7 тоже надо больше, и эта цифра заметно выросла с момента появления
бранча.

А нельзя ли сделать этот параметр динамическим ?
------- Comment #19 From 2015-02-12 20:10:22 -------
Я чего-то не понимаю?
Почему не срабатывает лимит?

И использование памяти всегда одинаковое, вне зависимости от установленного
лимита.

# apt-get -o APT::Cache-Limit=1024 update
Get:1 http://mirror.yandex.ru x86_64 release [915B]  
Get:2 http://mirror.yandex.ru x86_64-i586 release [573B]
Get:3 http://mirror.yandex.ru noarch release [709B]
Fetched 2197B in 0s (3711B/s)
Hit http://mirror.yandex.ru x86_64/classic pkglist
Hit http://mirror.yandex.ru x86_64/classic release
Hit http://mirror.yandex.ru x86_64-i586/classic pkglist
Hit http://mirror.yandex.ru x86_64-i586/classic release
Hit http://mirror.yandex.ru noarch/classic pkglist
Hit http://mirror.yandex.ru noarch/classic release
Reading Package Lists... Done
Building Dependency Tree... Done
------- Comment #20 From 2015-02-12 20:32:48 -------
(В ответ на комментарий №19)
> Я чего-то не понимаю?
> Почему не срабатывает лимит?
> 
> И использование памяти всегда одинаковое, вне зависимости от установленного
> лимита.
> 
> # apt-get -o APT::Cache-Limit=1024 update
> Get:1 http://mirror.yandex.ru x86_64 release [915B]  
> Get:2 http://mirror.yandex.ru x86_64-i586 release [573B]
> Get:3 http://mirror.yandex.ru noarch release [709B]
> Fetched 2197B in 0s (3711B/s)
> Hit http://mirror.yandex.ru x86_64/classic pkglist
> Hit http://mirror.yandex.ru x86_64/classic release
> Hit http://mirror.yandex.ru x86_64-i586/classic pkglist
> Hit http://mirror.yandex.ru x86_64-i586/classic release
> Hit http://mirror.yandex.ru noarch/classic pkglist
> Hit http://mirror.yandex.ru noarch/classic release
> Reading Package Lists... Done
> Building Dependency Tree... Done

У меня в первую очередь проявлялось, когда были обновления базы. А в такой
ситучации, как выше, бывало, и не выскакивала проблема.
------- Comment #21 From 2015-02-12 20:34:13 -------
(В ответ на комментарий №18)
> Для p7 тоже надо больше, и эта цифра заметно выросла с момента появления
> бранча.

В p7 хотелось бы иметь возможность переключиться на Sisyphus без проблем, т.е.
требование такое же.
------- Comment #22 From 2015-02-12 20:34:36 -------
надо посмотреть, может быть там выбирается максимальное значение из всех
существующих?

[root@riderbook ~]# rm -f
/var/lib/apt/lists/mirror.yandex.ru_altlinux_Sisyphus_*
[root@riderbook ~]# apt-get -o APT::Cache-Limit=1000 update
Get:1 http://mirror.yandex.ru x86_64 release [915B]
Get:2 http://mirror.yandex.ru x86_64-i586 release [573B]
Get:3 http://mirror.yandex.ru noarch release [709B]
Fetched 2197B in 0s (6718B/s)
Get:1 http://mirror.yandex.ru x86_64/classic pkglist [17.4MB]
Get:2 http://mirror.yandex.ru x86_64/classic release [147B]                     
Get:3 http://mirror.yandex.ru x86_64-i586/classic pkglist [12.8MB]              
Get:4 http://mirror.yandex.ru x86_64-i586/classic release [152B]                
Get:5 http://mirror.yandex.ru noarch/classic pkglist [4154kB]                   
Get:6 http://mirror.yandex.ru noarch/classic release [147B]                     
Fetched 34.4MB in 26s (1287kB/s)                                                
Reading Package Lists... Done
Building Dependency Tree... Done
[root@riderbook ~]#
------- Comment #23 From 2015-02-12 21:13:08 -------
после того, как хоть один раз хеши скачаются - параметр  APT::Cache-Limit= уже
ни на что не влияет, даже если содержимое /var/cache/apt/ будет очищено.

И опытным путём выяснил, что даже если дать параметр близкий к бесконечности -
объём потребляемой apt'ом памяти не увеличивается до бесконечности. Т.е. - это
всё-таки похоже верхняя граница размеров кеша, не влияет ни на что.
------- Comment #24 From 2015-02-21 22:29:07 -------
(In reply to comment #14)
> Attention to all who care of installers:
> this change will double libapt memory requirements.

rider@ reports different conclusions from some tests.

> I'm quite sure some installers are not ready for this yet.

It's a pity there is no automatic testing of the installation of automatically
prepared distros in virtual machines (with limited resources). Then we could
quickly see the facts (which installer got broken on which machine with the new
apt)...
------- Comment #25 From 2015-02-22 16:46:28 -------
Добавлю ещё слёз:
вчера встретил человечка в Боровске, который вообще к Linux не имеет никакого
отношения.
Оказывается, он себе поставил Simply 7 и получил как раз это сообщение об
ошибке при попытке накатить обновления.
Как думаете, что он сделал дальше ?
Вместо того, что бы погуглить - человек менял репозитории и даже переустановил
систему, и это ничего не помогало. Говорит уже собрался убунту ставить, если б
меня не встретил.

Ребята, вообще нашими дистрибутивами оказывается простые смертные пользуются,
не только админы и программеры. Надо понимать это, когда идёт речь про
исправление ошибок.
------- Comment #26 From 2015-03-21 09:36:29 -------
Ребята, вообще нашими дистрибутивами оказывается простые смертные пользуются,
не только админы и программеры. Надо понимать это.

Вот и я простной смертный подвис сейчас,не знаю что делать.Решил перейти на
сезиф,и вот.....


root@comp-celeron-cpu-d8743f ~]# apt-repo
rpm [alt] http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus i586
classic
rpm [alt] http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus noarch
classic
[root@comp-celeron-cpu-d8743f ~]# apt-get update
Получено: 1 http://ftp.altlinux.org i586 release [915B]
Получено: 2 http://ftp.altlinux.org noarch release [709B]
Получено 1624B за 4s (361B/s).
Найдено http://ftp.altlinux.org i586/classic pkglist
Найдено http://ftp.altlinux.org i586/classic release
Найдено http://ftp.altlinux.org noarch/classic pkglist
Найдено http://ftp.altlinux.org noarch/classic release
Чтение списков пакетов... Ошибка!
E: Dynamic MMap ran out of room
E: При обработке python3-module-pyxmpp2 (NewVersion1) возникла ошибка
E: Ошибка с MergeList
/var/lib/apt/lists/ftp.altlinux.org_pub_distributions_ALTLinux_Sisyphus_noarch_base_pkglist.classic
E: Невозможно прочитать список пакетов или файл статуса.
[root@comp-celeron-cpu-d8743f ~]#
------- Comment #27 From 2015-03-21 23:05:47 -------
(В ответ на комментарий №26)
> E: Dynamic MMap ran out of room
http://www.altlinux.org/Apt/TroubleShooting
------- Comment #28 From 2015-10-28 23:03:18 -------
В Сизифе сейчас уже починили так:

* Вт мар 31 2015 Gleb F-Malinovskiy <glebfm@altlinux.org> 0.5.15lorg2-alt50
- Increased default APT::Cache-Limit:
 + up to 96M on 64bit systems.
 + up to 80M on 32bit systems.
------- Comment #29 From 2015-10-28 23:26:51 -------
В Сизифе сейчас уже починили так:

* Вт мар 31 2015 Gleb F-Malinovskiy <glebfm@altlinux.org> 0.5.15lorg2-alt50
- Increased default APT::Cache-Limit:
 + up to 96M on 64bit systems.
 + up to 80M on 32bit systems.