Bug 47624 - hasher-privd[940466]: join_caller_cgroup: cgroup: not version 2
Summary: hasher-privd[940466]: join_caller_cgroup: cgroup: not version 2
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: hasher-priv (show other bugs)
Version: unstable
Hardware: x86 Linux
: P5 normal
Assignee: Dmitry V. Levin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-09-18 13:43 MSK by Vitaly Chikunov
Modified: 2024-03-22 12:38 MSK (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vitaly Chikunov 2023-09-18 13:43:18 MSK
После запуска контейнера (с nixos) через machinectl (systemd-nspawn) hasher-privd перестает работать с ошибками вида:

  $ gear-hsh --commit 2>&1 |& tee log
  hasher-priv: xrecvmsg: recvmsg: unexpected EOF
  hasher-priv: recv_response: failed to receive header in response to run
  hsh-rmchroot: Failed to remove files owned by user2.

  ...
  hsh-initroot: Unpack of setup-2.2.18-alt1.noarch.rpm failed.

В журнале появляется ошибка:

  hasher-privd[940466]: join_caller_cgroup: cgroup: not version 2

Причина в том что в cgroup появляется "лишняя" строка `1:name=systemd:/`, которую не выносит hasher-priv:

  $ cat /proc/self/cgroup
  1:name=systemd:/
  0::/user.slice/user-500.slice/session-7.scope

Может можно как-то улучшить совместимость hasher-priv с systemd?
Comment 1 Vladislav Babenko 2024-03-22 12:38:56 MSK
(Ответ для Vitaly Chikunov на комментарий #0)
> После запуска контейнера (с nixos) через machinectl (systemd-nspawn)
> hasher-privd перестает работать с ошибками вида:
> 
>   $ gear-hsh --commit 2>&1 |& tee log
>   hasher-priv: xrecvmsg: recvmsg: unexpected EOF
>   hasher-priv: recv_response: failed to receive header in response to run
>   hsh-rmchroot: Failed to remove files owned by user2.
> 
>   ...
>   hsh-initroot: Unpack of setup-2.2.18-alt1.noarch.rpm failed.
> 
> В журнале появляется ошибка:
> 
>   hasher-privd[940466]: join_caller_cgroup: cgroup: not version 2
> 
> Причина в том что в cgroup появляется "лишняя" строка `1:name=systemd:/`,
> которую не выносит hasher-priv:
> 
>   $ cat /proc/self/cgroup
>   1:name=systemd:/
>   0::/user.slice/user-500.slice/session-7.scope
> 
> Может можно как-то улучшить совместимость hasher-priv с systemd?

Я думаю, тут нужно, с другой стороны, подходить и разрешать cgroup2 в контейнере.
Включил поддержку cgroup2, примонтировал и всё собралось без ошибок.
wsl2: https://stackoverflow.com/questions/73021599/how-to-enable-cgroup-v2-in-wsl2

Я не уверен, что это ошибка hasher-privd, максимум, м.б. просто добавил на отдельную проверку контейнера (сейчас он проверяет это при запуске демона), не запрет, а дополнительную проверку на доступ к cgroups2.