actions / checkout

Action for checking out a repo
https://github.com/features/actions
MIT License
5.93k stars 1.76k forks source link

checkout@v4: remote: git: 'lariat' is not a git command #1916

Closed leongross closed 1 week ago

leongross commented 1 month ago

In the u-root project we use (presumably) the latest version of checkout@v4 in our CI. The CI failed once with the following error:

 remote: git: 'lariat' is not a git command. See 'git --help'.        
  remote: aborting due to possible repository corruption on the remote side.
  Error: fatal: protocol error: bad pack header
  The process '/usr/bin/git' failed with exit code 128
  Waiting 13 seconds before trying again
  /usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +fa57918e80ab835d92553a72110f9e56adcd43f1:refs/remotes/pull/3111/merge
  remote: git: 'lariat' is not a git command. See 'git --help'.        
  remote: aborting due to possible repository corruption on the remote side.
  Error: fatal: protocol error: bad pack header
  The process '/usr/bin/git' failed with exit code 128
  Waiting 10 seconds before trying again
  /usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +fa57918e80ab835d92553a72110f9e56adcd43f1:refs/remotes/pull/3111/merge
  remote: git: 'lariat' is not a git command. See 'git --help'.        
  remote: aborting due to possible repository corruption on the remote side.
  Error: fatal: protocol error: bad pack header
  Error: The process '/usr/bin/git' failed with exit code 128

After re-running the ci (more precisely git commit --amend --no-edit && git push -f)

doowb commented 1 month ago

I came here because I'm getting the exact same error in a workflow that's triggered by a cron schedule. The run that ran 1 hour earlier was successful using the same git fetch command and sha. Could this be on GitHub's server side?

/edit: just found this: https://www.githubstatus.com/incidents/q3xqwmcxzkqq

alynn-coefficient commented 1 month ago

Appears to be a symptom of this incident: https://www.githubstatus.com/incidents/q3xqwmcxzkqq

leongross commented 1 month ago

The issue seems to be resolved, but it seems as if there was some race condition that should be fixed, so I keep this issue open.

joshmgross commented 1 week ago

👋 This was due to a GitHub status incident and not directly an issue with this action or how it functions.

leongross commented 1 week ago

But can you explain how the command line that was executed was changed? This seems to have the potential to execute arbitrary commands on the runner which in fact could be considered a security risk.

joshmgross commented 1 week ago

@leongross these are commands run on the remote Git server, not on the runner itself.

The status incident has more details

The root cause was traced to a bug in a build script for a component that runs on the file servers that host git repository data. The build script incurred an error that did not cause the overall build process to fail, resulting in a faulty set of artifacts being deployed to production.

https://www.githubstatus.com/incidents/q3xqwmcxzkqq

Danstiv commented 1 week ago

@leongross see also https://github.com/orgs/community/discussions/139743#discussioncomment-10959902

leongross commented 1 week ago

I see, thank you for clarifying.