Summary: | hsh не удаётся создать chroot | ||||||
---|---|---|---|---|---|---|---|
Product: | Sisyphus | Reporter: | Aleksei Nikiforov <darktemplaralt> | ||||
Component: | pam | Assignee: | placeholder <placeholder> | ||||
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus | ||||
Severity: | normal | ||||||
Priority: | P3 | CC: | at, evg, glebfm, ldv, placeholder, rider, sem | ||||
Version: | unstable | ||||||
Hardware: | all | ||||||
OS: | Linux | ||||||
Attachments: |
|
У вас UID >= 43G/64, не делайте так без необходимости. Файл этот создаёт useradd из пакета shadow >= 4.5, при этом $ rpmquery -f /var/log/tallylog file /var/log/tallylog is not owned by any package useradd хорошо бы исправить, для hasher это notabug. Дима, useradd тут не при чём. Алексей работает под доменным пользователем. Точнее не так. useradd наверное при чём. Но не делать UID таким большим сложно. (В ответ на комментарий №1) > Файл этот создаёт useradd из пакета shadow >= 4.5, при этом > $ rpmquery -f /var/log/tallylog > file /var/log/tallylog is not owned by any package Это pam_tally2(8) и принадлежать этот файл должен пакету pam, видимо. > useradd хорошо бы исправить, для hasher это notabug. useradd просто запускает /sbin/pam_tally2, который и создает этот файл. Но, видимо, действительно не нужно этого делать если файла не существует. (In reply to comment #4) > (В ответ на комментарий №1) > > Файл этот создаёт useradd из пакета shadow >= 4.5, при этом > > $ rpmquery -f /var/log/tallylog > > file /var/log/tallylog is not owned by any package > > Это pam_tally2(8) и принадлежать этот файл должен пакету pam, видимо. Ещё один %ghost? > useradd хорошо бы исправить, для hasher это notabug. > > useradd просто запускает /sbin/pam_tally2, который и создает этот файл. Но, > видимо, действительно не нужно этого делать если файла не существует. Или пропатчить /sbin/pam_tally2, чтобы в режиме --reset=0 файл не создавался, если его ещё нет. Я предлагаю просто удалять логи в чруте хэшера перед его архивированием. Они всё равно не нужны там. Если нет возражений, я сделаю патч. hasher используется не только для сборки пакетов. А для чего ещё он используется? Там логи точно нужны? Для создания чрутов используется. Повторю вопрос: там логи точно нужны при этом? Там нужны имена и права доступа. Но /var/log/tallylog там не нужен в любом случае, он не должен был создаваться. Зафиксим /sbin/pam_tally2 linux-pam-1.3.0.0.23.94f5-alt2 -> sisyphus: Thu Nov 09 2017 Dmitry V. Levin <ldv@altlinux> 1.3.0.0.23.94f5-alt2 - /sbin/pam_tally2 --reset: avoid creating a missing tallylog file (closes: #34035). - Packaged %ghost /var/log/tallylog file. |
Created attachment 7238 [details] hasher.log.bz2 При неопределённых условиях hasher не может создать chroot. В чруте оказывается огромный sparse файл /var/log/tally, размером более 40 Gb, но фактически занимающем только несколько блоков на файловой системе (т.е. около нескольких килобайт), и сам файл полностью пустой. $ hsh-shell ~/hsh-sandboxes/sisyphus-x86_64/hasher -bash-3.2$ ls -lash /var/log/tallylog 8.0K -rw------- 1 rooter rooter 43G Oct 20 11:17 /var/log/tallylog На других системах этот файл /var/log/tally также присутствует, но занимает обычно лишь несколько килобайт, и также пустой. В итоге вызов hasher завершается со следующим сообщением: hsh-initroot: First time initialization complete. hsh-initroot: RPM database archivation complete. cpio: var/log/tallylog: field width not sufficient for storing file size hsh-initroot: Chroot archivation failed. В приложениях полный лог запуска hasher для создания нового чрута и сборки пакета в нём. Удаление логов в чруте или их truncate перед созданием архива должен помочь решить данную проблему.