Created attachment 20501 [details] Расписание в samba-tool Версия пакета: samba-dc-4.21.9-alt2 Стенды: * 2 контроллера домена Samba * Управляющая машина Windows Server 2019 (введена как клиент) При использовании пресетов/установки расписания межсайтовой репликации заметил большую разницу во времени между расписанием в выводе # samba-tool sites connection schedule show DC2 и расписанием репликации в Windows. При этом проблем с синхронизацией времени не наблюдается: # timedatectl Local time: Чт 2026-01-15 19:04:38 MSK Universal time: Чт 2026-01-15 16:04:38 UTC RTC time: Чт 2026-01-15 16:04:38 Time zone: Europe/Moscow (MSK, +0300) System clock synchronized: yes NTP service: active RTC in local TZ: no PS C:\Users\Administrator> Get-TimeZone Id : Russian Standard Time DisplayName : (UTC+03:00) Москва, Санкт-Петербург StandardName : RTZ 2 (зима) DaylightName : RTZ 2 (лето) BaseUtcOffset : 03:00:00 SupportsDaylightSavingTime : True PS C:\Users\Administrator> Get-Date 15 января 2026 г. 19:03:42 Шаги воспроизведения: 1. # samba-tool sites connection schedule preset DC2 none && \ samba-tool sites connection schedule preset DC2 weekends 2. Просмотреть расписание в Active Directory на управляющей машине Windows Фактический результат: Разница между расписанием 14 часов (Windows отстаёт). При управлении расписанием через samba-tool получается не то, что ожидаешь увидеть. Справедлива и обратная ситуация, когда расписание устанавливается через средства администрирования Windows, а расписание смотришь в samba-tool. Дополнительно: Помимо смещения по времени, таблицу различаются и по внешнему виду. Она была бы намного читабельнее, если бы вместо часов в заголовках (1,2,3...24) отображались периоды (0:00-1:00,1:00-2:00...23:00-0:00). Так было бы понятнее, к примеру, при использовании # samba-tool sites connection schedule set в такой-то период будет совершенно 4, 2 или 1 репликация за час.
Created attachment 20502 [details] То же самое расписание в Windows
Проблема проявляется и в Windows AD. Есть предположение, что в schedule_data воскресенье имеет нулевой индекс, в то время как в исходном коде данный индекс имеет понедельник. Плюс, не совсем понятно, учитывается ли здесь UTC и часовой пояс. Из-за этого выражения в функции show_schedule byte_pos = (day_idx * 24 + hour + 7) % len(schedule_data) и set_schedule_slot data_index = (day_index * 24 + hour_index + 7) % len(schedule_data) некорректно обрабатывается маска расписания репликации. Прикрепляю файл schedule-with-table.patch, в котором эти предположения были учтены, а также была видоизменена таблица, чтобы в заголовках были периоды (аналогично тому, что в Windows). В результате, вывод расписания стал одинаковым как на КД, так и на управляющей машине Windows.
Created attachment 20520 [details] Изменения в schedule.py