Bug 50485 - Не меняется периодичность запроса пользовательского таймера gpupdate-user.timer
Summary: Не меняется периодичность запроса пользовательского таймера gpupdate-user.timer
Status: CLOSED NOTABUG
Alias: None
Product: Sisyphus
Classification: Development
Component: gpupdate (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Valery Sinelnikov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-05-28 16:55 MSK by Nikolai Zurabishvili
Modified: 2024-05-30 16:44 MSK (History)
5 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Nikolai Zurabishvili 2024-05-28 16:55:40 MSK
gpupdate-0.10.0-alt1

Стенды (обновлены до сизифа):

Workstation 10.2 x86-64 - клиент
Server 10.2 office x86-64 - dc

Условия: Развернутый Samba сервер на AltLinux и введенные в домен AltLinux клиенты

Шаги:
1. Выполнить на клиенте # gpupdate-setup enable
2. Зайти доменным пользователем и проверить статус 

$ systemctl --user status gpupdate-user.service
○ gpupdate-user.service - gpupdate in userspace
     Loaded: loaded (/usr/lib/systemd/user/gpupdate-user.service; disabled; preset: disabled)
     Active: inactive (dead)
TriggeredBy: ● gpupdate-user.timer

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

Ожидаемый результат: enabled

Доп: # gpupdate-setup enable не добавляет gpupdate-user.service в автозагрузку из-за того что в /usr/lib/python3/site-packages/gpoa/gpupdate-setup указано disable:
...
def enable_gp(policy_name, backend_type):
    '''
    Consistently enable group policy services
    '''
    cmd_set_gpupdate_policy = ['/usr/sbin/control', 'system-policy', 'gpupdate']
    cmd_gpoa_nodomain = ['/usr/sbin/gpoa', '--nodomain', '--loglevel', '5']
    cmd_enable_gpupdate_service = ['/bin/systemctl', 'enable', 'gpupdate.service']
    cmd_enable_gpupdate_user_service = ['/bin/systemctl', '--global', 'disable', 'gpupdate-user.service'] 
    cmd_enable_gpupdate_timer = ['/bin/systemctl', 'enable', 'gpupdate.timer']
...

В версии gpupdate-0.9.12.2-alt2 gpupdate-setup enable корректно работал
Comment 1 Danila Skachedubov 2024-05-28 17:46:27 MSK
Добрый вечер, данная особенность сделана преднамеренно во избежание повторного запуска gpupdate-user.service.
Первичный запуск gpupdate осуществляется за счет механизма PAM. Необходимость самого сервиса обусловлена его периодическим запуском с помощью gpupdate-user.timer, который в свою очередь находится в состоянии enable.
Comment 2 Nikolai Zurabishvili 2024-05-28 17:50:48 MSK
(Ответ для Danila Skachedubov на комментарий #1)
> Добрый вечер, данная особенность сделана преднамеренно во избежание
> повторного запуска gpupdate-user.service.
> Первичный запуск gpupdate осуществляется за счет механизма PAM.
> Необходимость самого сервиса обусловлена его периодическим запуском с
> помощью gpupdate-user.timer, который в свою очередь находится в состоянии
> enable.

Можете тогда уточнить пожалуйста шаги того как изменить периодичность запуска пользовательского таймера gpupdate-user.timer потому что при gpupdate-user.service disabled после изменения переменной OnUnitActiveSec=60min допустим на OnUnitActiveSec=2min в /usr/lib/systemd/user/gpupdate-user.timer и выполнения команды $ systemctl --user daemon-reload таймер не меняется и остается выставленным по умолчанию на 60 минут
Comment 3 Nikolai Zurabishvili 2024-05-28 17:56:33 MSK
В документации указано https://www.altlinux.org/%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%BE%D0%B2%D1%8B%D0%B5_%D0%BF%D0%BE%D0%BB%D0%B8%D1%82%D0%B8%D0%BA%D0%B8

Изменить периодичность запуска пользовательского таймера можно в /usr/lib/systemd/user/gpupdate-user.timer. По умолчанию таймер gpupdate-user.timer запустится после входа пользователя в систему, а затем будет запускаться каждый час пока активен сеанс соответствующего пользователя. Просмотреть статус пользовательского таймера:

$ systemctl --user status gpupdate-user.timer
Примечание: Чтобы изменения, внесённые в файл /usr/lib/systemd/user/gpupdate-user.timer, вступили в силу следует выполнить команду:
$ systemctl --user daemon-reload



Однако после команды $ systemctl --user daemon-reload изменения не вступают в силу
Comment 4 Danila Skachedubov 2024-05-28 17:57:50 MSK
Не получилось воспроизвести, возможно, Вам необходимо выполнить команду:
$ systemctl --global restart gpupdate-user.timer
Comment 5 Nikolai Zurabishvili 2024-05-28 18:12:18 MSK
(Ответ для Danila Skachedubov на комментарий #4)
> Не получилось воспроизвести, возможно, Вам необходимо выполнить команду:
> $ systemctl --global restart gpupdate-user.timer

$ systemctl --global restart gpupdate-user.timer
--global is not supported for this operation.
Comment 6 Danila Skachedubov 2024-05-28 18:20:54 MSK
Склоняюсь, что у Вас он переопределен.
Попробуйте --user.
Comment 7 Nikolai Zurabishvili 2024-05-28 18:29:55 MSK
(Ответ для Danila Skachedubov на комментарий #6)
> Склоняюсь, что у Вас он переопределен.
> Попробуйте --user.

$ systemctl --user restart gpupdate-user.timer
$ systemctl --user status gpupdate-user.timer
● gpupdate-user.timer - Run gpupdate-user every hour
     Loaded: loaded (/usr/lib/systemd/user/gpupdate-user.timer; enabled; preset>
     Active: active (waiting) since Tue 2024-05-28 18:23:55 MSK; 33s ago
    Trigger: Tue 2024-05-28 19:22:17 MSK; 57min left
   Triggers: ● gpupdate-user.service

таймер все равно показывает что каждые 60 мин будет запускаться вместо указанных в 
 /usr/lib/systemd/user/gpupdate-user.timer
[Unit]
Description=Run gpupdate-user every hour

[Timer]
OnStartupSec=60min
OnUnitActiveSec=2min

[Install]
WantedBy=timers.target
Comment 8 Nikolai Zurabishvili 2024-05-29 11:44:55 MSK
Периодичность не меняется также если выполнять настройку по шагам из https://www.altlinux.org/Групповые_политики/Периодичность_запроса_конфигураций

После $ systemctl --user daemon-reload (или $ systemctl --user restart gpupdate-user.timer) таймер остается triggered по умолчанию (60 мин), хотя и указано что используется override.conf

$ systemctl --user status gpupdate-user.timer
● gpupdate-user.timer - Run gpupdate-user every hour
     Loaded: loaded (/usr/lib/systemd/user/gpupdate-user.timer; enabled; preset: disabled)
    Drop-In: /etc/systemd/user/gpupdate-user.timer.d
             └─override.conf
     Active: active (waiting) since Wed 2024-05-29 11:36:45 MSK; 1s ago
    Trigger: Wed 2024-05-29 12:22:43 MSK; 45min left
   Triggers: ● gpupdate-user.service


$ cat /etc/systemd/user/gpupdate-user.timer.d/override.conf
[Timer]
OnUnitActiveSec = 10min

При этом периодичность системного таймера корректно меняется как с помощью override.conf так и без него (например если просто поменять значение в /usr/lib/systemd/system/gpupdate.timer) :


$ systemctl status gpupdate.timer 
● gpupdate.timer - Run gpupdate every hour
     Loaded: loaded (/usr/lib/systemd/system/gpupdate.timer; enabled; preset: disabled)
    Drop-In: /etc/systemd/system/gpupdate.timer.d
             └─override.conf
     Active: active (waiting) since Wed 2024-05-29 11:40:45 MSK; 2min 27s ago
    Trigger: Wed 2024-05-29 11:50:46 MSK; 7min left
   Triggers: ● gpupdate.service
$ cat /etc/systemd/system/gpupdate.timer.d/override.conf 
[Timer]
OnUnitActiveSec = 10min
Comment 9 Danila Skachedubov 2024-05-29 17:37:06 MSK
Да только что проверил, это поведение с systemd-249.17(P10), аналогично не поменялось время, указанное в OnUnitActiveSec. Решил проверить на версии  systemd-254.10(sisyphus), такой проблемы нет ,видимо, это все таки баг systemd.
Comment 10 Alexander Makeenkov 2024-05-30 09:21:15 MSK
(Ответ для Danila Skachedubov на комментарий #9)
> Решил проверить на версии systemd-254.10(sisyphus), такой проблемы нет

Nikolai Zurabishvili, у тебя в сизифе воспроизводится?
Comment 11 Nikolai Zurabishvili 2024-05-30 14:49:19 MSK
На текущей версии systemd-255.6-alt2 ошибка воспроизводится в сизифе
Comment 12 Danila Skachedubov 2024-05-30 15:21:53 MSK
Проверил на двух машинах, работает и там и там.
Приложите шаги воспроизведения и вывод команд:
1)# systemctl status --user gpupdate-user.timer
2)# systemctl cat --user gpupdate-user.timer
Comment 13 Nikolai Zurabishvili 2024-05-30 15:37:31 MSK
(Ответ для Danila Skachedubov на комментарий #12)
> Проверил на двух машинах, работает и там и там.
> Приложите шаги воспроизведения и вывод команд:
> 1)# systemctl status --user gpupdate-user.timer
> 2)# systemctl cat --user gpupdate-user.timer


Стенды (обновлены до сизифа ):

KWorkstation 10.3 x86-64 - клиент
Server 10.2 office x86-64 - dc

Условия:
В GPUI включить поддержку экспериментальных групповых политик и механизм копирования ini файлов и управления локальными каталогами:

Компьютер -> Административные шаблоны -> Групповые политики -> Экспериментальные групповые политики -> Включено
Компьютер -> Административные шаблоны -> Групповые политики -> Механизмы GPUpdate:
Управление созданием Ini-файлов -> Включено
Управление созданием Ini-файлов для пользователей -> Включено
Компьютер -> Административные шаблоны -> Система ALT -> Групповые политики -> Механизмы GPUpdate:

Управление локальными каталогами -> Включено
Управление локальными каталогами для пользователей -> Включено
Настроить групповую политику создания каталога:

Перейти в раздел Компьютер - Настройки -  Настройки системы - Папки

Создать папки
- /etc/systemd/system/gpupdate.timer.d
- /etc/systemd/user/gpupdate-user.timer.d

Настроить групповую политику создания INI-файла:

В gpui перейти в раздел Компьютер - Настройки -  Настройки системы - Ini файлы

Добавить Ini файлы
- /etc/systemd/system/gpupdate.timer.d/override.conf
- /etc/systemd/user/gpupdate-user.timer.d/override.conf
 

в поле «Действие» выбрать пункт «Обновить»
в поле «Путь к файлу» указать /etc/systemd/system/gpupdate.timer.d/override.conf (и /etc/systemd/user/gpupdate-user.timer.d/override.conf для пользовательского таймера)
в поле «Имя секции» указать Timer
в поле «Имя свойства» указать OnUnitActiveSec
в поле «Значение свойства» указать периодичность запроса, например 10 минут: 10min

Шаги:
1) Применить групповые политики на клиенте
$ gpupdate
Выполнить команды (или перезагрузить компьютер):
# systemctl daemon-reload
$ systemctl --user daemon-reload 
2) Убедиться, что политика применилась как для пользовательского так и для системного таймера
# cat /etc/systemd/system/gpupdate.timer.d/override.conf
[Timer]
OnUnitActiveSec = 10min

# cat /etc/systemd/user/gpupdate-user.timer.d/override.conf
[Timer]
OnUnitActiveSec = 10min


Ожидаемый результат: Успешное применение политик (таймеры поменяли значение)

Фактический результат: периодичность системного таймера поменялась, периодичность пользовательского таймера gpupdate-user.timer не изменилась:

$ systemctl --user daemon-reload
[testuser@siskwork ~]$ systemctl --user status gpupdate-user.timer

● gpupdate-user.timer - Run gpupdate-user every hour
     Loaded: loaded (/usr/lib/systemd/user/gpupdate-user.timer; enabled; preset: disabled)
    Drop-In: /etc/systemd/user/gpupdate-user.timer.d
             └─override.conf
     Active: active (waiting) since Thu 2024-05-30 15:33:50 MSK; 25s ago
    Trigger: Thu 2024-05-30 16:33:50 MSK; 59min left
   Triggers: ● gpupdate-user.service

$ cat /etc/systemd/user/gpupdate-user.timer.d/override.conf 
[Timer]
OnUnitActiveSec = 10min

$ systemctl cat --user gpupdate-user.timer
# /usr/lib/systemd/user/gpupdate-user.timer
[Unit]
Description=Run gpupdate-user every hour

[Timer]
OnStartupSec=60min
OnUnitActiveSec=60min

[Install]
WantedBy=timers.target

# /etc/systemd/user/gpupdate-user.timer.d/override.conf
[Timer]
OnUnitActiveSec = 10min
Comment 14 Danila Skachedubov 2024-05-30 15:57:33 MSK
Перезапустить таймер не помогает?
$ systemctl restart --user gpupdate-user.timer
Comment 15 Nikolai Zurabishvili 2024-05-30 15:59:00 MSK
(Ответ для Danila Skachedubov на комментарий #14)
> Перезапустить таймер не помогает?
> $ systemctl restart --user gpupdate-user.timer

Как я уже писал в https://bugzilla.altlinux.org/show_bug.cgi?id=50485#c8 и в https://bugzilla.altlinux.org/show_bug.cgi?id=50485#c7 не помогает
Comment 16 Danila Skachedubov 2024-05-30 16:44:58 MSK
Попробовал на версиях 253, 254, 255 systemd. Работает везде. В любом случает к gpupdate это не относится, о чем говорит вывод:
$ systemctl cat --user gpupdate-user.timer
# /usr/lib/systemd/user/gpupdate-user.timer
[Unit]
Description=Run gpupdate-user every hour

[Timer]
OnStartupSec=60min
OnUnitActiveSec=60min

[Install]
WantedBy=timers.target

# /etc/systemd/user/gpupdate-user.timer.d/override.conf
[Timer]
OnUnitActiveSec = 10min

Проверяйте systemd. Баг закрываю.