Bug 24479 - Падает при установке большого количества пакетов
Summary: Падает при установке большого количества пакетов
Status: REOPENED
Alias: None
Product: Sisyphus
Classification: Development
Component: etckeeper (show other bugs)
Version: unstable
Hardware: all Linux
: P3 minor
Assignee: Vitaly Chikunov
QA Contact: qa-sisyphus
URL:
Keywords:
: 28816 (view as bug list)
Depends on:
Blocks:
 
Reported: 2010-11-02 11:21 MSK by Denis Pynkin
Modified: 2018-04-23 21:19 MSK (History)
11 users (show)

See Also:


Attachments
список пакетов для установки (46.90 KB, text/plain)
2010-11-27 23:35 MSK, Denis Pynkin
no flags Details
лог установки по списку (159.39 KB, text/plain)
2010-11-27 23:37 MSK, Denis Pynkin
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Denis Pynkin 2010-11-02 11:21:46 MSK
вылетает с ошибкой:
0 будет обновлено, 1693 новых установлено, 1 пакетов будет удалено и 0 не будет обновлено.
Необходимо получить 0B/1741MB архивов.
После распаковки потребуется дополнительно 4388MB дискового пространства.
E: Ошибка записи - write (32 Обрыв канала)
E: Ошибка выполнения скрипта if [ -x /usr/sbin/etckeeper ]; then /usr/sbin/etckeeper pre-install; fi

уменьшение количества до 768 не помогло, при 433 - нормально.

если надо, могу приложить списки пакетов до установки и список обновления.

Система: x86_64, свежесобранная локально бета Кентавра
Comment 1 Vitaly Lipatov 2010-11-24 16:07:17 MSK
Ну в данном случае etckeeper мешает продолжению работы apt.
В качестве проверки можно пакет etckeeper предварительно удалить.
Когда подтвердиться, багу стоит перевесить на etckeeper. Причин я пока не понял.
Comment 2 Vitaly Lipatov 2010-11-27 21:57:56 MSK
У меня на многих системах при попытке apt-get dist-upgrade выводится

E: Ошибка записи - write (32 Обрыв канала)
E: Ошибка выполнения скрипта if [ -x /usr/sbin/etckeeper ]; then
/usr/sbin/etckeeper pre-install; fi

Не помогает даже удаление /usr/sbin/etckeeper, приходится пакет удалять
Comment 3 Evgenii Terechkov 2010-11-27 22:57:44 MSK
У меня такого никогда не проявлялось (несколько машин, но они до Сизифа относительно меньшими пачками обновляются).

2dans@: Приложите пожалуйста вывод следующих команд:
#rpm -q etckeeper
#ls -laR /etc/etckeeper

и список пакетов до установки и устанавливаемых, если есть возможность.

2lav@: непонятно, как может удаление /usr/sbin/etckeeper не помочь (в свете процитированного хука апта: "if [ -x /usr/sbin/etckeeper ]; then /usr/sbin/etckeeper pre-install; fi"). Что происходит, если делать dist-upgrade с удалённым /usr/sbin/etckeeper? Во время тестирования у меня этот хук в таком случае отрабатывал молча и без ошибок.
Comment 4 Denis Pynkin 2010-11-27 23:33:26 MSK
По версии и содержимому etckeeper - могу только то, что есть на данный момент. имеет смысл?
установочный компакт был собран из текущего на момент сборки (2010-11-01) сизифа.

список, который был _до_ установки приложить не смогу, а вот список и вывод от apt-get я приложу. кстати, прошу обратить внимание, что уменьшение количества пакетов помогает только после определенного предела, такое ощещение, что где-то используется конструкция с передачей параметров в виде 'script list_of_packages"

PS если поможет: для переезда с x86_32 на x86_64 сделал на 32-б машине 'rpm -qa',  а на 64-b скормил этот список сразу после установки. список тоже приложу.

PPS есть еще полный strace этого дела, если надо, но логи 8M в сжатом виде - ценность сомнительна.
Comment 5 Denis Pynkin 2010-11-27 23:35:36 MSK
Created attachment 4677 [details]
список пакетов для установки
Comment 6 Denis Pynkin 2010-11-27 23:37:13 MSK
Created attachment 4678 [details]
лог установки по списку
Comment 7 Evgenii Terechkov 2010-11-28 15:18:14 MSK
Судя по приведённому "скриншоту" apt останавливается сразу перед установкой/обновлением пакетов, на хуке etckeeper pre-install. Этот хук должен запускаться по такой цепочке: etckeeper -> pre-installl.d/* -> list-installed.d/* и операция "|" используется в ней лишь в двух местах:

1) /usr/sbin/etckeeper:
for script in $ETCKEEPER_CONF_DIR/$command.d/*;do
 [ -x "$script" ] || continue
 [ ! -d "$script" ] || continue
 echo "$script" | grep -E "^$ETCKEEPER_CONF_DIR/$command.d/[-a-zA-Z0-9]+$" >/dev/null 2>&1 || continue

т.е. ищутся все хуки для запуска в /e/e/pre-install.d/*. Поэтому и спрашиваю вывод ls -laR /etc/etckeeper/, на случай если там что-то странное.

2) 50list-installed:
  rpm -qa --queryformat "%{name} %{version} %{arch}\n" | sort

здесь я подвоха не жду в приложенных списках ничего подозрительного не заметил.

Насколько мне известно, имена пакетов, участвующих в транзакции apt-а самим etckeeper никак не отрабатываются. Возможно, установлены другие пакеты, пытающиеся такой список обработать? За это говорит и отсутствие реакции на удаление /usr/sbin/etckeeper.
Comment 8 Evgenii Terechkov 2010-11-28 15:32:20 MSK
не дописал...

Какие ещё стоят хуки к апту (/etc/apt/apt.conf.d/*)?

Вообще, расскажите, как воспроизвести проблему (в т.ч. как скармливали список). Я сейчас пытаюсь поиграться со свежей бетой Центавра в VB, но пока безуспешно.
Comment 9 Evgenii Terechkov 2010-11-28 16:14:57 MSK
Ага, вроде воспроизвёл в VB при попытке (пере)установки кучи пакетов. Буду разбираться...
Comment 10 Evgenii Terechkov 2010-12-01 15:56:21 MSK
Обходится в 0.50-alt5.1

Хотя ставить систему скармливанием `rpm -qa` apt-у это, конечно, извращение :-)
Comment 11 Denis Pynkin 2013-04-08 16:07:45 MSK
*** Bug 28816 has been marked as a duplicate of this bug. ***
Comment 12 Denis Pynkin 2013-04-08 16:08:39 MSK
Похоже на регрессию
Comment 13 Denis Pynkin 2013-04-08 16:36:12 MSK
(В ответ на комментарий №12)
> Похоже на регрессию

Комментирование строчек в apt.conf помогает.
Comment 14 Evgenii Terechkov 2013-04-08 20:08:01 MSK
Если имеется ввиду /etc/apt/apt.conf.d/etckeeper, то попробуйте в нём первую строчку заменить на 
RPM::Pre-Install-Pkgs { "if [ -x /usr/bin/etckeeper ]; then etckeeper pre-install </dev/null; fi"; };
Comment 15 Sergey V Turchin 2016-02-20 12:38:28 MSK
При обновлении с p7 до Sisyphus etc не сохранил, а ,скорее, испортил систему.
Comment 16 Anton Farygin 2016-02-20 12:42:13 MSK
Если б сам не увидел - не поверил.
Воспроизводится на "ура" - кентавр 7, поставить и настроить etckeeper, обновить до Sisyphus
Comment 17 Michael Shigorin 2018-04-23 21:19:24 MSK
Напоролся при большом обновлении на sisyphus_e2k;
спасибо https://forum.altlinux.org/index.php?topic=29698.0 за наводку.