Re: [PATCH v2 7/8] maintenance: fix systemd schedule overlaps
Hi Stolee
On 10/08/2023 21:39, Derrick Stolee via GitGitGadget wrote:
Show 17 quoted lines
> From: Derrick Stolee <derrickstolee@github.com>
>
> The 'git maintenance run' command prevents concurrent runs in the same
> repository using a 'maintenance.lock' file. However, when using systemd
> the hourly maintenance runs the same time as the daily and weekly runs.
> (Similarly, daily maintenance runs at the same time as weekly
> maintenance.) These competing commands result in some maintenance not
> actually being run.
>
> This overlap was something we could not fix until we made the recent
> change to not use the builting 'hourly', 'daily', and 'weekly' schedules
> in systemd. We can adjust the schedules such that:
>
> 1. Hourly runs avoid the 0th hour.
> 2. Daily runs avoid Monday.
>
> This will keep maintenance runs from colliding when using systemd.
Thanks for fixing this, the patch looks good
Best Wishes
Phillip
Show 23 quoted lines
> Signed-off-by: Derrick Stolee <derrickstolee@github.com>
> ---
> builtin/gc.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/builtin/gc.c b/builtin/gc.c
> index e52129e485c..6f8df366fbe 100644
> --- a/builtin/gc.c
> +++ b/builtin/gc.c
> @@ -2350,11 +2350,11 @@ static int systemd_timer_write_timer_file(enum schedule_priority schedule,
>
> switch (schedule) {
> case SCHEDULE_HOURLY:
> - schedule_pattern = xstrfmt("*-*-* *:%02d:00", minute);
> + schedule_pattern = xstrfmt("*-*-* 1..23:%02d:00", minute);
> break;
>
> case SCHEDULE_DAILY:
> - schedule_pattern = xstrfmt("*-*-* 0:%02d:00", minute);
> + schedule_pattern = xstrfmt("Tue..Sun *-*-* 0:%02d:00", minute);
> break;
>
> case SCHEDULE_WEEKLY: