Skip to content

Commit c367852

Browse files
pks-tgitster
authored andcommitted
builtin/maintenance: fix locking race with refs and reflogs tasks
As explained in the preceding commit, git-gc(1) knows to detach only after it has already packed references and expired reflogs. This is done to avoid racing around their respective lockfiles. Adapt git-maintenance(1) accordingly and run the "pack-refs" and "reflog-expire" tasks in the foreground. Note that the "gc" task has the same issue, but the fix is a bit more involved there and will thus be done in a subsequent commit. Signed-off-by: Patrick Steinhardt <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 5bb4298 commit c367852

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
@@ -1587,12 +1587,12 @@ static const struct maintenance_task tasks[] = {
15871587
},
15881588
[TASK_PACK_REFS] = {
15891589
.name = "pack-refs",
1590-
.background = maintenance_task_pack_refs,
1590+
.foreground = maintenance_task_pack_refs,
15911591
.auto_condition = pack_refs_condition,
15921592
},
15931593
[TASK_REFLOG_EXPIRE] = {
15941594
.name = "reflog-expire",
1595-
.background = maintenance_task_reflog_expire,
1595+
.foreground = maintenance_task_reflog_expire,
15961596
.auto_condition = reflog_expire_condition,
15971597
},
15981598
[TASK_WORKTREE_PRUNE] = {

0 commit comments

Comments
 (0)