Bug 44428 - Пустая ошибка при малых значениях ulimit
Summary: Пустая ошибка при малых значениях ulimit
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: control++ (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: alexey
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-11-24 17:49 MSK by Anton Zhukharev
Modified: 2023-08-11 13:29 MSK (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Anton Zhukharev 2022-11-24 17:49:45 MSK
Система из образа: 3cc064c3410e8763c2b7bbd8d0af4936  alt-server-10.0-x86_64.iso.

Шаги воспроизведения:
1. Установить из образа систему с профилем "Минимальная установка"
2. Добавить репозитории checkinstall в /etc/apt/sources.list
2. Установить пакеты:

    # apt-get install -y control++{,-checkinstall,-wl} {,i586-}libcontrol++

3. Добавить новый режим (выполнить указанные команды от пользователя root):

cat >> /etc/control++/control++.conf << EOF
[new_mode]
ulimits = test_u1
permissions = test_p1
scripts = test_s1
EOF

cat > /etc/control++/ulimits/test_u1 << EOF
*       soft    core    0
*       soft    nproc   512
root    soft    nproc   512
*       hard    nproc   512
EOF

cat > /etc/control++/permissions/test_p1 << EOF
[file]
path = /root/test_f1
owner = user
group = user
mode = rwx------
EOF

mkdir -p /etc/control++/scripts/test_s1
touch /etc/control++/scripts/test_s1/do
chmod +x /etc/control++/scripts/test_s1/do

touch /root/test_f1

id user || useradd user

4. И выполнить команду:

    # control++ new_mode --plain

================================================================================
Фактический результат:

Setting 'new_mode' mode:
Current mode is unknown, restoring will not be performed
Setting 'new_mode' mode for the 'ulimits' unit [DONE]
        - [ERROR]
Setting 'new_mode' mode for the 'permissions' unit [DONE]
Setting 'new_mode' mode for the 'scripts' unit
Applying 'test_s1' mode of the scripts unit [DONE]
[DONE]
Mode set OK
Current  mode is 'new_mode'

(ошибка без описания).

================================================================================
Ожидаемый результат: сообщение об ошибки с какой-нибудь информацией.

================================================================================
Дополнительные исследования:

* если выполнить следующий код, то ошибка не возникает:

if [ "$(ulimit -n)" -lt 16384 ]; then
        echo "*    - nofile 16384" >> /etc/security/limits.d/control++.conf
        echo "root - nofile 16384" >> /etc/security/limits.d/control++.conf
fi

* также воспроизводится на p10
Comment 1 alexey 2023-08-11 13:29:23 MSK
С последней версией control++ (0.21.1-alt2) и libcontrol++ (0.29.1-alt1) в дистрибутиве на основе Сизифа данное поведение у меня воспроизвести не получается. По всей видимости, внесённые с тех пор улучшения исправили и это.