Skip to content

Commit c97ec03

Browse files
derrickstoleegitster
authored andcommitted
maintenance: fix systemd schedule overlaps
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. Signed-off-by: Derrick Stolee <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent daa7870 commit c97ec03

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

builtin/gc.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2350,11 +2350,11 @@ static int systemd_timer_write_timer_file(enum schedule_priority schedule,
23502350

23512351
switch (schedule) {
23522352
case SCHEDULE_HOURLY:
2353-
schedule_pattern = xstrfmt("*-*-* *:%02d:00", minute);
2353+
schedule_pattern = xstrfmt("*-*-* 1..23:%02d:00", minute);
23542354
break;
23552355

23562356
case SCHEDULE_DAILY:
2357-
schedule_pattern = xstrfmt("*-*-* 0:%02d:00", minute);
2357+
schedule_pattern = xstrfmt("Tue..Sun *-*-* 0:%02d:00", minute);
23582358
break;
23592359

23602360
case SCHEDULE_WEEKLY:

0 commit comments

Comments
 (0)