Bug 31721

Summary: LXC:: нельзя создать контейнер, как минимум, из шаблона altlinux
Product: Sisyphus Reporter: Gleb Kulikov <glebus>
Component: losetupAssignee: Alexey Gladkov <legion>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: boyarsh, evg, glebfm, ldv, legion, mike, placeholder
Version: unstable   
Hardware: all   
OS: Linux   

Description Gleb Kulikov 2016-01-20 11:17:51 MSK
Из-за пакета losetup нельзя создать контейнер LXC, как минимум, из шаблона altlinux:

при установке система не даёт прав на запись /lib/udev/devices и не даёт создать там loop0...loop3

Для того, чтобы контейнер было возможно создать, приходится подкладывать пересобранный пакет, в спеке (util-linux.spec) которого удалены строки

mkdir -p %buildroot/lib/udev/devices
touch %buildroot/lib/udev/devices/loop{0,1,2,3}

%attr(0660, root, disk) %dev(b, 7, 0) /lib/udev/devices/loop0
%attr(0660, root, disk) %dev(b, 7, 1) /lib/udev/devices/loop1
%attr(0660, root, disk) %dev(b, 7, 2) /lib/udev/devices/loop2
%attr(0660, root, disk) %dev(b, 7, 3) /lib/udev/devices/loop3
Comment 1 Dmitry V. Levin 2016-01-21 16:39:52 MSK
(In reply to comment #0)
> Из-за пакета losetup нельзя создать контейнер LXC, как минимум, из шаблона
> altlinux:

Какой контейнер LXC? Из какого шаблона altlinux?

> при установке система не даёт прав на запись /lib/udev/devices и не даёт
> создать там loop0...loop3

Какая система? Почему не даёт?
Comment 2 Gleb Kulikov 2016-01-22 11:54:38 MSK
(В ответ на комментарий №1)

> Какой контейнер LXC? 

любой (контейнер уровня ОС)

> Из какого шаблона altlinux?

штатного

Кстати, ещё проблемных пакетов привалило :(

Теперь не только losetup.

Последний образ (/var/cache/lxc), из которого удаётся создать контейнер,датируется 2015.10.20.

И я не могу согласиться, что ошибка несущественна: lxc штука удобная и весьма широко используется (у меня, например :) )

> 
> > при установке система не даёт прав на запись /lib/udev/devices и не даёт
> > создать там loop0...loop3
> 
> Какая система? Почему не даёт?

базовая. контейнеру не дают прав на изменение подмонтированных системных каталогов базовой системы, что разумно :)

[root@gleb lxc]# lxc-create -n gitlab.000 -t altlinux -B btrfs

Downloading altlinux minimal ...
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Выбрано systemd для 'systemd-units'
Следующие дополнительные пакеты будут установлены:
  acl agetty .............

206: dbus                    ################################################################################### [ 80%]
Failed to generate UUID: Could not open /dev/urandom: No such file or directory
error: execution of %post scriptlet from dbus-1.10.6-alt1 failed, exit status 1

E: Произошли ошибки при выполнении транзакции
Failed to download the rootfs, aborting.
Failed to download 'altlinux base'
failed to install altlinux
lxc-create: lxccontainer.c: create_run_template: 1197 container creation template for gitlab.000 failed
lxc-create: lxc_create.c: main: 274 Error creating container gitlab.000


уточнение: сейчас (по состоянию на  2016.01.22) *повторный* вызов lxc-create, уже после того, как будет создан кэш /var/ccahe/lxc/altlinux, СОЗДАЁТ контейнер. Ранее (после 2015.10.20) приходилось подменять losetup пересобранным пакетом.

На первый взгляд, контейнер работает, проверяю подробнее. Что сходу не нравится:

(1) наверное, это нормально, но ранее подобного не было:

Failed to reset devices.list on /machine.slice/machine-lxc\x2dgitlab.000.scope: Operation not permitted
Failed to reset devices.list on /machine.slice/machine-lxc\x2dgitlab.000.scope/system.slice: Operation not permitted
[  OK  ] Created slice System Slice.
Failed to reset devices.list on /machine.slice/machine-lxc\x2dgitlab.000.scope/system.slice/system-getty.slice: Operation not permitted

(2)

Failed to reset devices.list on /machine.slice/machine-lxc\x2dgitlab.000.scope/system.slice/systemd-journald.service: Operation not permitted
         Starting Journal Service...
Failed to reset devices.list on /machine.slice/machine-lxc\x2dgitlab.000.scope/system.slice/dev-hugepages.mount: Operation not permitted
         Mounting Huge Pages File System...
Failed to reset devices.list on /machine.slice/machine-lxc\x2dgitlab.000.scope/system.slice/sys-kernel-debug.mount: Operation not permitted
         Mounting Debug File System...
Failed to reset devices.list on /machine.slice/machine-lxc\x2dgitlab.000.scope/system.slice/systemd-remount-fs.service: Operation not permitted
         Starting Remount Root and Kernel File Systems...
Failed to reset devices.list on /machine.slice/machine-lxc\x2dgitlab.000.scope/system.slice/dev-mqueue.mount: Operation not permitted
         Mounting POSIX Message Queue File System...
Failed to reset devices.list on /machine.slice/machine-lxc\x2dgitlab.000.scope/system.slice/sys-fs-fuse-connections.mount: Operation not permitted
         Mounting FUSE Control File System...
Failed to reset devices.list on /machine.slice/machine-lxc\x2dgitlab.000.scope/system.slice/altlinux-kmsg-loglevel.service: Operation not permitted
         Starting Set default kernel console loglevel...
Failed to reset devices.list on /machine.slice/machine-lxc\x2dgitlab.000.scope/system.slice/proc-meminfo.mount: Operation not permitted
Failed to reset devices.list on /machine.slice/machine-lxc\x2dgitlab.000.scope/system.slice/dev-ptmx.mount: Operation not permitted
Failed to reset devices.list on /machine.slice/machine-lxc\x2dgitlab.000.scope/system.slice/proc-sys-net-ipv4.mount: Operation not permitted
Failed to reset devices.list on /machine.slice/machine-lxc\x2dgitlab.000.scope/system.slice/proc-sys-net-ipv6.mount: Operation not permitted
Failed to reset devices.list on /machine.slice/machine-lxc\x2dgitlab.000.scope/system.slice/dev-tty1.mount: Operation not permitted
Failed to reset devices.list on /machine.slice/machine-lxc\x2dgitlab.000.scope/system.slice/-.mount: Operation not permitted
Failed to reset devices.list on /machine.slice/machine-lxc\x2dgitlab.000.scope/init.scope: Operation not permitted
Comment 3 Alexey Gladkov 2016-01-22 12:42:22 MSK
> Теперь не только losetup.
> 
> Последний образ (/var/cache/lxc), из которого удаётся создать
> контейнер,датируется 2015.10.20.
> 
> И я не могу согласиться, что ошибка несущественна: lxc штука удобная и весьма
> широко используется (у меня, например :) )

...

> уточнение: сейчас (по состоянию на  2016.01.22) *повторный* вызов lxc-create,
> уже после того, как будет создан кэш /var/ccahe/lxc/altlinux, СОЗДАЁТ
> контейнер. Ранее (после 2015.10.20) приходилось подменять losetup пересобранным
> пакетом.
> 
> На первый взгляд, контейнер работает, проверяю подробнее.

Я запутался. Выше вы пишите, что ошибка в losetup мешает создавать контейнеры. Теперь вы пишите, контейнер создаётся и работает. У меня складывается ощущение, что проблема в шаблоне altlinux, а не в пакете.
Comment 4 Gleb Kulikov 2016-01-23 11:53:12 MSK
(В ответ на комментарий №3)

> Я запутался. Выше вы пишите, что ошибка в losetup мешает создавать контейнеры.
> Теперь вы пишите, контейнер создаётся и работает. У меня складывается ощущение,
> что проблема в шаблоне altlinux, а не в пакете.

я тоже запутался. До вчершнего обновления, контейнеры не создавались из-за losetup. Похоже, что с последним обновлением проблема ушла (нужно ещё проверять).
 
Насчёт проблемы в шаблоне --- не знаю. Очевидно, что попытка изменить из контейнера системные области будет неуспешной. Является ли попадание в шаблон пакетов, безусловно изменяющих системные области, багом --- я не знаю.
Comment 5 Michael Shigorin 2016-01-23 13:28:35 MSK
(В ответ на комментарий №4)
> Похоже, что с последним обновлением проблема ушла (нужно ещё проверять).
WORKSFORU? :)
Comment 6 Alexey Gladkov 2017-04-02 21:45:01 MSK
Файлы /lib/udev/devices/loop* убраны из пакета.