Bug 47289

Summary: Ошибка при вызове функции sysctl.assign
Product: Sisyphus Reporter: Vladimir Mokrozub <mogaba>
Component: saltAssignee: Andrey Cherepanov <cas>
Status: CLOSED WORKSFORME QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: arbars, mike, monastirskiyii, sem, svmoskalen, valintinr
Version: unstable   
Hardware: x86   
OS: Linux   
See Also: http://bugzilla.altlinux.org/show_bug.cgi?id=48008
Attachments:
Description Flags
sed -i 's/_sysctl, "-w"/_sysctl, "-v", "-w"/' salt/modules/linux_sysctl.py none

Description Vladimir Mokrozub 2023-08-18 14:54:44 MSK
При вызове на миньоне функции sysctl.assign вываливается ошибка:

$ salt-call sysctl.assign kernel.sysrq 0
Error running 'sysctl.assign': sysctl -w failed:

При этом параметр ядра изменяется успешно.

Насколько я понял, это связано с тем, что функция assign() в модуле /usr/lib/python3/site-packages/salt/modules/linux_sysctl.py проверяет вывод "sysctl -w", сравнивая его с переданными аргуменатми. Но в Альте она по умолчанию не выводит ничего, если завершилась успешно; для вывода установленных параметров нужно указать ключ -v:

$ sysctl -v -w
Comment 1 Монастырский Илья 2023-08-22 17:33:59 MSK
Версия пакета: 
salt-3006.1-alt1

Стенды: 
Alt Kworkstation 10.1 x86-64
Alt Education XFCE/KDE 10.1 x86-64
Alt Workstation 10.1 x86-64
Alt Server 10.1 x86-64

Ошибка воспроизводится

Также проверил на версии salt-3006.2-alt1 из задания 327248 - ошибка воспроизвелась

В Sisyphus не проверялось
Comment 2 Монастырский Илья 2023-08-22 18:23:39 MSK
Проверил ошибку в Sisyphus - ошибка воспроизводится

Стенды (обновлены до Sisyphus)
Alt Kworkstation 10.1 x86-64
Alt Education XFCE 10.1 x86-64
Alt Workstation 10.1 x86-64

Версии пакетов:
salt-minion-3006.2-alt1
salt-master-3006.2-alt1
Comment 3 Michael Shigorin 2023-10-15 08:47:06 MSK
Created attachment 14791 [details]
sed -i 's/_sysctl, "-w"/_sysctl, "-v", "-w"/' salt/modules/linux_sysctl.py

Думаю, в salt следует применять именно sysctl -v -w вне зависимости от исхода bug 48008, поскольку в sysctl(8) поведение -w без -v/-q в части вывода или молчания не определено (посмотрел -- в явном виде у нас это не меняется).

Поскольку код апстримный, об изменении недокументированного поведения sysctl из procps-ng стоит сообщить апстриму (http://github.com/saltstack/salt/issues).

sed-патч (только вызов, не комментарий/диагностика):

sed -i 's/_sysctl, "-w"/_sysctl, "-v", "-w"/' ./salt/modules/linux_sysctl.py

root-патч:

sed -i 's/_sysctl, "-w"/_sysctl, "-v", "-w"/' /usr/lib/python3/site-packages/salt/modules/linux_sysctl.py

Пробные задания (сейчас версии в сизифе и p10 одинаковы, но python3 различны):
http://git.altlinux.org/tasks/331813/ (sisyphus)
http://git.altlinux.org/tasks/331814/ (p10)

PS: Владимир, а мы Вас (или Вашего помощника) давно уж заждались на http://altlinux.org/join -- чтоб не ждать, а сразу исправлять, раз уж нашли :-)
Comment 4 Монастырский Илья 2023-10-25 18:57:35 MSK
Версия пакета: 
salt-3006.3-alt3.2

Ошибка больше не воспроизводится