Skip to content

maintenance stuck forever in commit-graph #5956

@kkmuffme

Description

@kkmuffme

Existing issues matching what you're seeing

  • I was not able to find an open or closed issue matching what I'm seeing

Git for Windows version

git version 2.51.0.windows.1
cpu: x86_64
built from commit: 4d21a77b98af5cf479d8b6f863c2aa94257cd4e1
sizeof-long: 4
sizeof-size_t: 8
shell-path: D:/git-sdk-64-build-installers/usr/bin/sh
feature: fsmonitor--daemon
libcurl: 8.15.0
OpenSSL: OpenSSL 3.2.4 11 Feb 2025
zlib: 1.3.1
SHA-1: SHA1_DC
SHA-256: SHA256_BLK
default-ref-format: files
default-hash: sha1

Windows version

Windows 11

Windows CPU architecture

x86_64 (64-bit)

Additional Windows version information

Options set during installation

Editor Option: VIM
Custom Editor Path:
Default Branch Option:
Path Option: Cmd
SSH Option: ExternalOpenSSH
Tortoise Option: false
CURL Option: OpenSSL
CRLF Option: CRLFCommitAsIs
Bash Terminal Option: MinTTY
Git Pull Behavior Option: FFOnly
Use Credential Manager: Enabled
Performance Tweaks FSCache: Enabled
Enable Symlinks: Disabled
Enable FSMonitor: Disabled

However these are only the install, I currently have Symlinks and FSMonitor enabled and working

Other interesting things

I posted this here, since the same repo under linux does not seem to have this problem.
I have the same repo cloned (and maintenance enabled) multiple times on the device, and the same issue happens in all of them

Terminal/shell

bash

Commands that trigger the issue

git config maintenance.commit-graph.schedule hourly
git config gc.autoDetach false
git config maintenance.autoDetach false
git config maintenance.gc.enabled false
git config gc.writeCommitGraph false
# next lines are probably irrelevant, just here for completeness
git config maintenance.prefetch.schedule hourly
git config maintenance.loose-objects.schedule hourly
git config maintenance.incremental-repack.schedule hourly
git maintenance start

Expected behaviour

maintenance and commit-graph should run and finish

Actual behaviour

maintenance is started automatically, I see

git -C C:/path/to/repo maintenance run --schedule=hourly

However, it gets stuck (= blocked/doing nothing) at:

git commit-graph write --split --reachable --progress

with 0 CPU time forever
Additionally, because the .git\objects\maintenance.lock is created, no maintenance will happen at all and it's stuck forever (actually it will crash/restart computer at some point, which means that maintenance doesn't run at all bc maintenance.lock still exists)

Deleting that lock file and manually running the commit-graph command in the repo works perfectly fine and finishes too.

Repository

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions