Bug 27407

Summary: OOM в installer
Product: Simply Linux Reporter: vx8400 <vx8400>
Component: installerAssignee: Mikhail Efremov <sem>
Status: CLOSED FIXED QA Contact: Andrey Cherepanov <cas>
Severity: major    
Priority: P3 CC: aen, dd1email, glebfm, mike
Version: 6.0   
Hardware: x86   
OS: Linux   
Bug Depends on: 27786    
Bug Blocks:    
Attachments:
Description Flags
oom в dmesg
none
Патч на livecd-install, 'cp -a' вместо unsquashfs
none
Патч на livecd-install (кентавр 7альфа), 'cp -a' вместо unsquashfs
none
OOM в livecd-installer (кентавр 7 альфа)
none
0.7.4-alt1 patch (the previous one was hand edited and didn't apply) none

Description vx8400 2012-06-05 20:42:43 MSK
Created attachment 5477 [details]
oom в dmesg

При установке Simply Linux 6.0.1 c образа altlinux-6.0.1-simply-i586-ru-live-cd.iso
на машину с 248M RAM установщик ловит OOM на шаге "установка пакетов" (после разметки диска), переходит к установке загрузчика и завершается без сообщений об ошибках. Вывод dmesg прилагается.

swap-раздел размером 218M был создан при автоматической разметке диска. Ошибки нет, если при RAM = 248M назначить руками swap = 512M.

Так как дистрибутив хорошо работает при RAM=128--256M, желательно делать бОльший swap при автоматической разбивке и предупреждать при ручной разбивке, что swap-раздела < 512M не хватает.
Comment 1 Michael Shigorin 2012-06-06 14:04:38 MSK
Можно попробовать передать параметр lowmem -- при этом squash будет монтироваться прямо с носителя без копирования на рамдиск (см. propagator/tools.c).
Comment 2 vx8400 2012-06-06 14:31:09 MSK
(В ответ на комментарий №1)
> Можно попробовать передать параметр lowmem 

Не помогает. unsquashfs так же убило по OOM.
Comment 3 Michael Shigorin 2012-06-06 20:13:43 MSK
Тогда прошу постановку задачи.  Дело в том, что есть экспериментальная работа по портированию Simply на mkimage-profiles и systemd, она ещё довольно далека от завершения, но промежуточные результаты могут оказаться уже подходящими.

В m-p предпринимаются особые меры по экономичности второй стадии (см. features.in/cleanup/, если вдруг интересно).
Comment 4 vx8400 2012-06-06 22:55:45 MSK
(В ответ на комментарий №3)
> В m-p предпринимаются особые меры по экономичности второй стадии (см.
> features.in/cleanup/, если вдруг интересно).

А вот наивный вопрос: 
unsquashfs распаковывает в /mnt/destination тот же /image/live, который в liveCD уже смонтирован в /.ro? Если так, тогда почему вместо unsquashfs -ll /image/live  не копировать из /.ro нужные файлы в /mnt/destination?
Comment 5 vx8400 2012-06-09 21:00:27 MSK
Created attachment 5485 [details]
Патч на livecd-install, 'cp -a' вместо unsquashfs

(В ответ на комментарий №3)
> В m-p предпринимаются особые меры по экономичности второй стадии (см.
> features.in/cleanup/, если вдруг интересно).

cp -a /.ro/* /mnt/destination вместо `unsquashfs /image/live  ...' помогает. 

См. примерный патч на livecd-install. Пропатченный livecd-install отработал без видимых ошибок (установщик запускался не из live-cd, а из установленной на жесткий диск системы).
Comment 6 vx8400 2012-09-28 12:21:45 MSK
ping
Comment 7 vx8400 2012-09-30 17:18:51 MSK
Created attachment 5576 [details]
 Патч на livecd-install (кентавр 7альфа), 'cp -a' вместо unsquashfs

Проблема воспроизводится в альфа-версии Кентавра 7: 
ftp://beta.altlinux.org/centaurus/altlinux-6.9.0-20120928-centaurus-i586-ru-install-dvd5.iso

При RAM=256M и swap=256M unsquashfs вылетает по OOM (см. dmesg.oom.p7.log).
Лечится приложенным патчем на livecd-install. 
Патч проверен на liveCD по ссылке выше. 
Перед запуском "установки на жесткий диск" /usr/lib/alterator/bakend3/livecd-install был заменен на пропатченный.

При RAM=256M и небольшом свопе еще можно получить пригодную к использованию систему. 
Например, Gnome3 вполне рабочий в "fallback mode". Поэтому инсталлятор имеет смысл исправить, чтобы снизить его требования к памяти.
Comment 8 vx8400 2012-09-30 17:21:17 MSK
Created attachment 5577 [details]
OOM в livecd-installer (кентавр 7 альфа)
Comment 9 Michael Shigorin 2012-09-30 23:03:35 MSK
Спасибо, постараюсь проверить.

2 boyarsh: если успеешь раньше, тоже хорошо :)
Comment 10 Michael Shigorin 2012-12-25 02:18:10 MSK
Created attachment 5683 [details]
0.7.4-alt1 patch (the previous one was hand edited and didn't apply)

Сделали сегодня две реализации -- вариант с tar и оценкой прогресса по блокам при распаковке получился довольно быстрым (т.е. упирается в диск/CPU) и дошёл всего до 102% (что похоже на оверхед и разницу в оценке tar относительно du -sb --apparent-size), вариант с df -i и cp -av | sed -n "0~$((total / 100))p" тоже довольно быстр, но добегает до 114%.

Добавить мне особо нечего, оно всё в виде разобранных набросков -- поэтому пока вешаю прикладывающийся патч для 0.7.4-alt1.
Comment 11 Mikhail Efremov 2013-02-15 19:27:44 MSK
Fixed in 6.991.0.
Comment 12 Mikhail Efremov 2013-02-15 19:28:13 MSK
.