Skip to content

Git.exe Processes Hanging / Not Cleaning Up #18734

@atom0s

Description

@atom0s

Gitea Version

1.16.1

Git Version

2.35.1.windows.2

Operating System

Windows Server 2012 R2

How are you running Gitea?

  • Using the prebuilt package for 1.16.1 - gitea-1.16.1-windows-4.0-amd64.exe
  • Running via IIS with a forward proxy to pass traffic to the Gitea instance.
  • Gitea is running as a system service.

Database

MySQL

Can you reproduce the bug on the Gitea demo site?

No

Log Gist

No response

Description

When running for an extended period of time, we are noticing that git.exe instances are left open/hanging. After about 25-30 instances are left open, the site just starts throwing 500 errors. It becomes impossible to do anything on the site outside of viewing the main page and admin panel.

This issue seems to be an exact copy of this: #17138

I am seeing the same thing.

Monitor page shows tons of entries for things like this:

C:\Program Files\Git\cmd\git.exe -c credential.helper= -c protocol.version=2 -c uploadpack.allowfilter=true check-attr --stdin -z --cached linguist-vendored linguist-generated linguist-language gitlab-language -- [repo_path: PATH\TO\REPO\HERE.git]

There are also other monitored processes stuck:

GET: /PATH/TO/REPO/HERE/commits/commit/COMMIT_HASH_HERE/path/to/file.h?lang=pt-BR
3 hours ago
  C:\Program Files\Git\cmd\git.exe cat-file --batch-check [repo_path: PATH\TO\REPO\HERE.git] (modules/context/repo.go:559)
  3 hours ago
  C:\Program Files\Git\cmd\git.exe cat-file --batch [repo_path: PATH\TO\REPO\HERE.git] (modules/context/repo.go:559)
  3 hours ago
GET: /PATH/TO/REPO/HERE/commit/COMMIT_HASH_HERE.diff
2 hours ago
  C:\Program Files\Git\cmd\git.exe cat-file --batch [repo_path: PATH\TO\REPO\HERE.git] (modules/context/repo.go:559)
  2 hours ago
  C:\Program Files\Git\cmd\git.exe cat-file --batch-check [repo_path: PATH\TO\REPO\HERE.git] (modules/context/repo.go:559)
  2 hours ago
C:\Program Files\Git\cmd\git.exe cat-file --batch [repo_path: PATH\TO\REPO\HERE.git] (modules/git/repo_base_nogogit.go:41)

And so on. The main one is the first reported entry, there are lots of those ones.

This is a bit rough to diagnose as it does not happen immediately. It takes a few hours before we start seeing the instances begin hanging.

Screenshots

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