Skip to content

git upload-pack killed by OOM inside Gitea during clone #35996

@linxin2020

Description

@linxin2020

Description

Hello, I am running Gitea as a Git server (via Docker).
After some period of normal operation, clients start seeing clone failures such as:

remote: Enumerating objects: 134026, done.
remote: Counting objects: 100% (134026/134026), done.
remote: aborting due to possible repository corruption on the remote side.
fatal: early EOF
fatal: fetch-pack: invalid index-pack output

Gitea’s log shows:

Fail to serve RPC(upload-pack): exit status 128 - error: pack-objects died of signal 9
error: git upload-pack: git-pack-objects died with error.
fatal: git upload-pack: aborting due to possible repository corruption on the remote side.

And the host kernel log shows the real cause — the Git process is killed by OOM:

[322411.286959] oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),cpuset=user.slice,mems_allowed=0,global_oom,task_memcg=/system.slice/docker-58fd86992e09dd1fd155af8577a8615ac6fdb6f65a7f8547d675ddf1facf87eb.scope,task=git,pid=118696,uid=1000
[322411.286969] Out of memory: Killed process 118696 (git) total-vm:10875968kB, anon-rss:7934252kB, file-rss:128kB, shmem-rss:0kB, UID:1000 pgtables:18708kB oom_score_adj:0

I am using the gitea mirror open source repository: https://swiftshader.googlesource.com/SwiftShader.git. This repository is relatively large, about 2.8G; however, according to the kernel log, 7.9G of memory has been allocated, but the task still cannot be completed.
I'm not sure if it's a bug in gitea or git.
I am currently using the default configuration and am not sure if I can reduce memory usage by modifying the configuration.

Gitea Version

1.25.1

Can you reproduce the bug on the Gitea demo site?

No

Log Gist

No response

Screenshots

No response

Git Version

2.49.1

Operating System

Ubuntu 22.04 LTS

How are you running Gitea?

I run gitea on Ubuntu through Docker;
After discovering the issue, I upgraded gitea to the latest version, but the problem persisted.

Database

SQLite

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions