Bug 34035 - hsh не удаётся создать chroot
: hsh не удаётся создать chroot
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/pam)
: unstable
: all Linux
: P3 normal
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2017-10-20 14:28 by
Modified: 2017-11-09 06:47 (History)


Attachments
hasher.log.bz2 (7.92 KB, application/x-bzip)
2017-10-20 14:28, Aleksei Nikiforov
no flags Details


Note

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


Description From 2017-10-20 14:28:36
Created an attachment (id=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 перед созданием архива должен помочь
решить данную проблему.
------- Comment #1 From 2017-10-21 10:23:05 -------
У вас 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.
------- Comment #2 From 2017-10-21 18:28:39 -------
Дима, useradd тут не при чём. Алексей работает под доменным пользователем.
------- Comment #3 From 2017-10-21 18:32:23 -------
Точнее не так. useradd наверное при чём. Но не делать UID таким большим сложно.
------- Comment #4 From 2017-10-23 20:37:43 -------
(В ответ на комментарий №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, который и создает этот файл. Но,
видимо, действительно не нужно этого делать если файла не существует.
------- Comment #5 From 2017-10-24 03:28:58 -------
(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 файл не создавался,
если его ещё нет.
------- Comment #6 From 2017-11-07 12:31:21 -------
Я предлагаю просто удалять логи в чруте хэшера перед его архивированием. Они
всё равно не нужны там. Если нет возражений, я сделаю патч.
------- Comment #7 From 2017-11-07 15:02:36 -------
hasher используется не только для сборки пакетов.
------- Comment #8 From 2017-11-07 15:03:49 -------
А для чего ещё он используется? Там логи точно нужны?
------- Comment #9 From 2017-11-07 15:33:11 -------
Для создания чрутов используется.
------- Comment #10 From 2017-11-07 15:36:03 -------
Повторю вопрос: там логи точно нужны при этом?
------- Comment #11 From 2017-11-07 15:38:23 -------
Там нужны имена и права доступа.
Но /var/log/tallylog там не нужен в любом случае, он не должен был создаваться.
------- Comment #12 From 2017-11-09 02:58:32 -------
Зафиксим /sbin/pam_tally2
------- Comment #13 From 2017-11-09 06:47:27 -------
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.