The issue appeared after updating to git v2.43.0, now git fetch would cause segmentation fault when commit graph is enabled. Though I only observed this issue in a repo with two submodules, regardless of whether the submodules are checked out or not. Meanwhile most other repos without submodules worked fine. > 15:57:10.660377 run-command.c:726 child_start[2] git maintenance run --auto --no-quiet > 15:57:10.665870 common-main.c:55 version 2.43.0 > 15:57:10.666265 common-main.c:56 start /opt/homebrew/opt/git/libexec/git-core/git maintenance run --auto --no-quiet > 15:57:10.666469 repository.c:143 worktree /path/to/repo/sub/module2 > 15:57:10.666649 git.c:464 cmd_name maintenance (_run_dashed_/_run_git_alias_/pull/fetch/fetch/maintenance) > 15:57:10.668232 git.c:723 exit elapsed:0.003405 code:0 > 15:57:10.668241 trace2/tr2_tgt_normal.c:127 atexit elapsed:0.003415 code:0 > 15:57:10.668611 run-command.c:979 child_exit[2] pid:46018 code:0 elapsed:0.008227 > 15:57:10.668635 git.c:723 exit elapsed:1.837179 code:0 > 15:57:10.668639 trace2/tr2_tgt_normal.c:127 atexit elapsed:1.837182 code:0 > 15:57:10.669007 run-command.c:979 child_exit[3] pid:46006 code:0 elapsed:1.843739 > 15:57:10.671522 usage.c:80 error fetch died of signal 11 > error: fetch died of signal 11 > 15:57:10.671645 run-command.c:979 child_exit[1] pid:45980 code:139 elapsed:5.292927 > 15:57:10.671658 git.c:723 exit elapsed:5.337363 code:1 > 15:57:10.671663 trace2/tr2_tgt_normal.c:127 atexit elapsed:5.337368 code:1 > 15:57:10.672048 run-command.c:979 child_exit[1] pid:45978 code:1 elapsed:5.345050 > 15:57:10.672099 git.c:819 exit elapsed:5.355644 code:1 > 15:57:10.672105 trace2/tr2_tgt_normal.c:127 atexit elapsed:5.355649 code:1 Subsequent `git fetch` would then fail due to the left over lock file: > 15:57:19.059375 run-command.c:726 child_start[2] git maintenance run --auto --no-quiet > 15:57:19.065689 common-main.c:55 version 2.43.0 > 15:57:19.066027 common-main.c:56 start /opt/homebrew/opt/git/libexec/git-core/git maintenance run --auto --no-quiet > 15:57:19.066206 repository.c:143 worktree /path/to/repo/sub/module2 > 15:57:19.066387 git.c:464 cmd_name maintenance (_run_dashed_/_run_git_alias_/pull/fetch/fetch/maintenance) > 15:57:19.067888 git.c:723 exit elapsed:0.003122 code:0 > 15:57:19.067896 trace2/tr2_tgt_normal.c:127 atexit elapsed:0.003131 code:0 > 15:57:19.068239 run-command.c:979 child_exit[2] pid:46076 code:0 elapsed:0.008852 > 15:57:19.068276 git.c:723 exit elapsed:1.661854 code:0 > 15:57:19.068281 trace2/tr2_tgt_normal.c:127 atexit elapsed:1.661858 code:0 > 15:57:19.068714 run-command.c:979 child_exit[3] pid:46065 code:0 elapsed:1.667321 > 15:57:19.069327 usage.c:61 error Unable to create '/path/to/repo/.git/objects/info/commit-graphs/commit-graph-chain.lock': File exists. > > Another git process seems to be running in this repository, e.g. > an editor opened by 'git commit'. Please make sure all processes > are terminated then try again. If it still fails, a git process > may have crashed in this repository earlier: > remove the file manually to continue. > fatal: Unable to create '/path/to/repo/.git/objects/info/commit-graphs/commit-graph-chain.lock': File exists. As a workaround, I disabled fetch.writeCommitGraph to get fetch work again.