From: Phillip Wood Date: Mon, 14 Aug 2023 11:27:37 GMT Subject: Re: [PATCH v2 7/8] maintenance: fix systemd schedule overlaps Message-ID: <055a1132-fe35-4f83-ae7c-16d84ca42f2c@gmail.com> In-Reply-To: <86c4255d63d7f38b7a4811e5667404bce04f77f8.1691699987.git.gitgitgadget@gmail.com> Hi Stolee On 10/08/2023 21:39, Derrick Stolee via GitGitGadget wrote: > From: Derrick Stolee > > 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 > Signed-off-by: Derrick Stolee > --- > 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: