ISSUE - Sequential execution failure - Lock auto created between git commands

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,


Using a script we run the following set of git commands:

git branch -a

git remote -v

git stash push --all --include-untracked

git checkout test_git_ver

git remote -v

git fetch

git status --branch --porcelain=v1 -u

git checkout test_git_ver_workspace




After upgrading the git version to - 2.47.2, we started getting the following error:

error: cannot lock ref 'HEAD': Unable to create '.../.git/HEAD.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 update HEAD




Investigating the issue on our side, we found that the failure occurs when running the last command - 
git checkout test_git_ver_workspace.

As well, we noticed that after the "git fetch" command there is an auto maintenance execution, it looks like there was a change between git versions and now there is an additional flag --detach added to maintenance.
Therefore, we suspect that as a result of git fetch a maintenance detached (background) process is created, running in parallel to the general script, creating a lock file that fails the script.


Attached trace logs.


This script was running for multiple versions without any issue, it looks like the changes introduce a regression.

Please assist in resolving the issue.




Best regards,
Yonatan Roth
Palo Alto Networks

Trace logs:


12:54:52.400869 run-command.c:666       trace: run_command: git rev-list --objects --stdin --not --exclude-hidden=fetch --all --quiet --alternate-refs

12:54:52.400936 run-command.c:758       trace: start_command: /usr/local/libexec/git-core/git rev-list --objects --stdin --not --exclude-hidden=fetch --all --quiet --alternate-refs

12:54:52.483329 run-command.c:1534      run_processes_parallel: preparing to run up to 1 tasks

12:54:52.483384 run-command.c:1561      run_processes_parallel: done

12:54:52.483395 run-command.c:666       trace: run_command: git maintenance run --auto --no-quiet --detach

12:54:52.483475 run-command.c:758       trace: start_command: /usr/local/libexec/git-core/git maintenance run --auto --no-quiet --detach

12:54:52.494826 git.c:479               trace: built-in: git maintenance run --auto --no-quiet --detach

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux