Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BUG on Debian (11 and 12) prevents starting Sysbox-Mgr and so Sysbox #870

Open
amirhmoradi opened this issue Nov 15, 2024 · 0 comments
Open

Comments

@amirhmoradi
Copy link

amirhmoradi commented Nov 15, 2024

after a clean install of sysbox following documentation, i had this error preventing sysbox service to start:

level=fatal msg="failed to create sysbox-mgr: failed to setup subid allocator: failed to parse line # allocate SUB_UID_COUNT unused user IDs from the range SUB_UID_MIN to SUB_UID_MAX for... Nov 15 17:06:38 server-internal1 systemd[1]: sysbox-mgr.service: Main process exited, code=exited, status=1/FAILURE

and so the sysbox service could not start:

A dependency job for sysbox.service failed. See 'journalctl -xe' for details.

After an hour of investigation, i found out that the source code of sysbox-mgr here what trying to read the values for the required limits from /etc/login.def in a quite dump way.... where it did not check if the values are inside a comment line or in the beginning of a line as real vars. See the content of the file in Debian:

# If /etc/subuid exists, the commands useradd and newusers (unless the user already have subordinate user IDs)
# allocate SUB_UID_COUNT unused user IDs from the range SUB_UID_MIN to SUB_UID_MAX for each new user.
# The default values for SUB_UID_MIN, SUB_UID_MAX, SUB_UID_COUNT are respectively 100000, 600100000 and 65536.
SUB_UID_MIN       100000
SUB_UID_MAX       600100000
SUB_UID_COUNT     65536
SUB_GID_MIN       100000
SUB_GID_MAX       600100000
SUB_GID_COUNT     65536

You can see that the variables SUB_UID_MIN and SUB_UID_MAX are mentioned in the comment line above the variables block having 2 columns...

The solution was to clean the /etc/login.defs comment line from these variables... and VOILA, now sysbox can start correctly on debian 12 (bookworm).

I suggest this fix:
Instead of reading the vars from "anywhere" in the file, make sure to read them when they are the first string in a given line, then check if the line has a second 'column'... in the getSubidLimits function call @ctalledo

BTW, my env:

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux 12 (bookworm)
Release:	12
Codename:	bookworm
uname -a
Linux hetzner-de-internal1 6.1.0-27-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.115-1 (2024-11-01) x86_64 GNU/Linux

Regards.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant