mirror of
https://github.com/go-gitea/gitea.git
synced 2026-03-12 10:39:38 -05:00
pre-receive takes a long time to finish on push #12190
Open
opened 2025-11-02 10:01:30 -06:00 by GiteaMirror
·
15 comments
No Branch/Tag Specified
main
release/v1.25
release/v1.24
release/v1.23
release/v1.22
release/v1.21
release/v1.20
release/v1.19
release/v1.18
release/v1.17
release/v1.16
release/v1.15
release/v1.14
release/v1.13
release/v1.12
release/v1.11
release/v1.10
release/v1.9
release/v1.8
v1.25.3
v1.25.2
v1.25.1
v1.25.0
v1.24.7
v1.25.0-rc0
v1.26.0-dev
v1.24.6
v1.24.5
v1.24.4
v1.24.3
v1.24.2
v1.24.1
v1.24.0
v1.23.8
v1.24.0-rc0
v1.25.0-dev
v1.23.7
v1.23.6
v1.23.5
v1.23.4
v1.23.3
v1.23.2
v1.23.1
v1.23.0
v1.23.0-rc0
v1.24.0-dev
v1.22.6
v1.22.5
v1.22.4
v1.22.3
v1.22.2
v1.22.1
v1.22.0
v1.23.0-dev
v1.22.0-rc1
v1.21.11
v1.22.0-rc0
v1.21.10
v1.21.9
v1.21.8
v1.21.7
v1.21.6
v1.21.5
v1.21.4
v1.21.3
v1.21.2
v1.20.6
v1.21.1
v1.21.0
v1.21.0-rc2
v1.21.0-rc1
v1.20.5
v1.22.0-dev
v1.21.0-rc0
v1.20.4
v1.20.3
v1.20.2
v1.20.1
v1.20.0
v1.19.4
v1.21.0-dev
v1.20.0-rc2
v1.20.0-rc1
v1.20.0-rc0
v1.19.3
v1.19.2
v1.19.1
v1.19.0
v1.19.0-rc1
v1.20.0-dev
v1.19.0-rc0
v1.18.5
v1.18.4
v1.18.3
v1.18.2
v1.18.1
v1.18.0
v1.17.4
v1.18.0-rc1
v1.19.0-dev
v1.18.0-rc0
v1.17.3
v1.17.2
v1.17.1
v1.17.0
v1.17.0-rc2
v1.16.9
v1.17.0-rc1
v1.18.0-dev
v1.16.8
v1.16.7
v1.16.6
v1.16.5
v1.16.4
v1.16.3
v1.16.2
v1.16.1
v1.16.0
v1.15.11
v1.17.0-dev
v1.16.0-rc1
v1.15.10
v1.15.9
v1.15.8
v1.15.7
v1.15.6
v1.15.5
v1.15.4
v1.15.3
v1.15.2
v1.15.1
v1.14.7
v1.15.0
v1.15.0-rc3
v1.14.6
v1.15.0-rc2
v1.14.5
v1.16.0-dev
v1.15.0-rc1
v1.14.4
v1.14.3
v1.14.2
v1.14.1
v1.14.0
v1.13.7
v1.14.0-rc2
v1.13.6
v1.13.5
v1.14.0-rc1
v1.15.0-dev
v1.13.4
v1.13.3
v1.13.2
v1.13.1
v1.13.0
v1.12.6
v1.13.0-rc2
v1.14.0-dev
v1.13.0-rc1
v1.12.5
v1.12.4
v1.12.3
v1.12.2
v1.12.1
v1.11.8
v1.12.0
v1.11.7
v1.12.0-rc2
v1.11.6
v1.12.0-rc1
v1.13.0-dev
v1.11.5
v1.11.4
v1.11.3
v1.10.6
v1.12.0-dev
v1.11.2
v1.10.5
v1.11.1
v1.10.4
v1.11.0
v1.11.0-rc2
v1.10.3
v1.11.0-rc1
v1.10.2
v1.10.1
v1.10.0
v1.9.6
v1.9.5
v1.10.0-rc2
v1.11.0-dev
v1.10.0-rc1
v1.9.4
v1.9.3
v1.9.2
v1.9.1
v1.9.0
v1.9.0-rc2
v1.10.0-dev
v1.9.0-rc1
v1.8.3
v1.8.2
v1.8.1
v1.8.0
v1.8.0-rc3
v1.7.6
v1.8.0-rc2
v1.7.5
v1.8.0-rc1
v1.9.0-dev
v1.7.4
v1.7.3
v1.7.2
v1.7.1
v1.7.0
v1.7.0-rc3
v1.6.4
v1.7.0-rc2
v1.6.3
v1.7.0-rc1
v1.7.0-dev
v1.6.2
v1.6.1
v1.6.0
v1.6.0-rc2
v1.5.3
v1.6.0-rc1
v1.6.0-dev
v1.5.2
v1.5.1
v1.5.0
v1.5.0-rc2
v1.5.0-rc1
v1.5.0-dev
v1.4.3
v1.4.2
v1.4.1
v1.4.0
v1.4.0-rc3
v1.4.0-rc2
v1.3.3
v1.4.0-rc1
v1.3.2
v1.3.1
v1.3.0
v1.3.0-rc2
v1.3.0-rc1
v1.2.3
v1.2.2
v1.2.1
v1.2.0
v1.2.0-rc3
v1.2.0-rc2
v1.1.4
v1.2.0-rc1
v1.1.3
v1.1.2
v1.1.1
v1.1.0
v1.0.2
v1.0.1
v1.0.0
v0.9.99
Labels
Clear labels
$20
$250
$50
$500
backport/done
💎 Bounty
docs-update-needed
good first issue
hacktoberfest
issue/bounty
issue/confirmed
issue/critical
issue/duplicate
issue/needs-feedback
issue/not-a-bug
issue/regression
issue/stale
issue/workaround
lgtm/need 2
modifies/api
modifies/translation
outdated/backport/v1.18
outdated/theme/markdown
outdated/theme/timetracker
performance/bigrepo
performance/cpu
performance/memory
performance/speed
pr/breaking
proposal/accepted
proposal/rejected
pr/wip
pull-request
reviewed/wontfix
💰 Rewarded
skip-changelog
status/blocked
topic/accessibility
topic/api
topic/authentication
topic/build
topic/code-linting
topic/commit-signing
topic/content-rendering
topic/deployment
topic/distribution
topic/federation
topic/gitea-actions
topic/issues
topic/lfs
topic/mobile
topic/moderation
topic/packages
topic/pr
topic/projects
topic/repo
topic/repo-migration
topic/security
topic/theme
topic/ui
topic/ui-interaction
topic/ux
topic/webhooks
topic/wiki
type/bug
type/deprecation
type/docs
type/enhancement
type/feature
type/miscellaneous
type/proposal
type/question
type/refactoring
type/summary
type/testing
type/upstream
Mirrored from GitHub Pull Request
Milestone
No items
No Milestone
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/gitea#12190
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @PulsarFX on GitHub (Dec 12, 2023).
Description
This is a windows service setup with gitea-1.21.1-gogit-windows-4.0-amd64
I've been tracing an issue with very long times for push to finish. It took ~12s on each try, although the changes are very small.
The repo is very small, too.
(All times in this description are measured from client side)
After lots of digging I am down to this essence:
C:\gitea\gitea-1.21.1-gogit-windows-4.0-amd64.exe hook --config=C:\gitea\custom\conf\app.ini pre-receiveI changed app.ini to
collected from from https://docs.gitea.com/installation/windows-service and #22370
I also changed the service account from the default "local system" to "network service" and back to "local system" with interactive enabled, but it doesn't fix it.
When I start gitea from cli, no 12,x seconds can be seen. Then it's constantly at around 1 second.
My question is: what does this process do or wait for:
C:\gitea\gitea-1.21.1-gogit-windows-4.0-amd64.exe hook --config=C:\gitea\custom\conf\app.ini pre-receiveis there a way to have it log its actions? A trace log from gitea with a slow push is at the gist address.
I am happy that I am down from 12-20seconds push times, just by using the right user name. I would even be more happy, to get rid of the spikes because of the pre-receive process. ;-)
Gitea Version
1.21.1-gogit-windows-4.0-amd64
Can you reproduce the bug on the Gitea demo site?
No
Log Gist
https://gist.github.com/PulsarFX/be9133b81c2c6d0db3a3c902b441edf1
Screenshots
This screenshot shows the git processes started by gitea, and the env.exe which starts the gitea exe again, via the pre-receive-hook scripts:

Git Version
2.43.0, Wire Protocol Version 2 Enabled
Operating System
win10
How are you running Gitea?
installed via nssm.exe as windows service
Database
SQLite
@lunny commented on GitHub (Dec 13, 2023):
I can find two slow log.
and
@PulsarFX commented on GitHub (Dec 13, 2023):
I think this is the birds eye view. The client is sitting and waiting for the server to return. All data has already been transfered.

In GitExtensions this looks like this:
First, the transfer is done and the cursor keeps on blinking for many seconds:
Then, finally it looks like this:

On our .net client the log looks like this:
From all the tests I've done so far, it looks like the delay comes from the pre-receive hook, when gitea starts itself again (shown in the first screenshot).
Is there a way to see what is happening in there? Or can I disable hooks alltogether?
My guess is, that it's a kind of timeout because of user restrictions, when gitea is run as windows service.
For reference, a perfect run looks like this:
In this scenario, the second gitea.exe shows up only fractions of time in ProcessExplorer or it's even to short to show up in the list at all.
I don't think the RUN_USER has any affect on this issue. Today it was 12s again when the service runs as Local System. When I use my account instead to start the windows service, it's 0,7s every time on each client.
Then also my user is executing the pre-receive:
C:\gitea\gitea-1.21.1-gogit-windows-4.0-amd64.exe hook --config=C:\gitea\custom\conf\app.ini pre-receive@PulsarFX commented on GitHub (Dec 18, 2023):
Is no one else experiencing this behaviour on a windows service? I found 2 or more tickets where problems with the windows service existed ( #15454 and #19053)
Currently I am running gitea with my user account, but this can't be the solution for this.
@lunny commented on GitHub (Dec 25, 2023):
Do you have real
pre-receivescripts in those repositories?@PulsarFX commented on GitHub (Dec 25, 2023):
No, these are naked hook repos
@PulsarFX commented on GitHub (Jan 11, 2024):
Is there something I can help with to investigate?
I just discovered, that using my domain user to run the service has a strong drawback: Windows can only run/start the service, if I am connected to our company vpn.
@lunny commented on GitHub (Jan 12, 2024):
Take a look at the logs again, it should not be related with Gitea's pre-receive hook handle. The consuming time is under the git command
and before Gitea's pre-receive invoked.
@PulsarFX commented on GitHub (Jan 12, 2024):
Which log do you mean? Is there another log, except what is set in app.ini?
To recap: gitea runs absoluteley fine, when I start it from CLI. It bogs, when it runs as windows service with the default local system user.
For me this is screaming: "access rights problem".
In
...\hooks\pre-receive.dthere is one file calledgiteawith this content:This is the same call as I can see in ProcessExplorer sitting around, when it bogs.
I just switched to the system account and it bogs right away on the first try.
Then I removed the gitea file from the
pre-receive.dfolder. After this, it is this process sitting and waiting:C:\gitea\gitea-1.21.1-gogit-windows-4.0-amd64.exe hook --config=C:\gitea\custom\conf\app.ini update refs/heads/jhgfd ffc906fe49bcefb59ad2125e4323c4f9a9685aa4 11a1df8d52e436e15b412538089fba0fe55424f8Then I tried disabling all network connections. This doesn't have a clear effect.
@AudivoRumplerA commented on GitHub (Oct 1, 2024):
It seems that I suffer from exactly the same problem. Pushes to gitea takes 15s or more.
I use:
Symptoms are as described above.
PusarFX, did you meanwhile found a solution other than running gitea not as a service?
@AudivoRumplerA commented on GitHub (Oct 1, 2024):
update..
I tested starting of gitea.exe from CLI. It is also slow. So for me no difference regardless gitea is started as service or from CLI.
@PulsarFX commented on GitHub (Oct 1, 2024):
I am using the go-gitea version running as a service. The service user is a domain user, which made it much faster for me.
That was the result of my recap from above. I've had no other results since then.
@AudivoRumplerA commented on GitHub (Oct 1, 2024):
Thanks for your update, PulsarFX.
I will see whether I could get any better performance by using the gogit version and running as different users.
@lunny commented on GitHub (Oct 2, 2024):
Have you enabled antivirus software? Can you try disabling the antivirus software?
@AudivoRumplerA commented on GitHub (Oct 2, 2024):
Yes, the server (windows server 2022) uses AVAST antivirus software.
With activated antivirus a push takes ~17sec.
When I disable antivirus then a push just takes 4-5sec.
So a major difference. So the antivirus software is actually the reason of the slow pushes. It seems that it is enough to exclude gitea.exe from file shield module of AVAST.
Thanks a lot for the hint, lunny.
@w3ori commented on GitHub (Aug 4, 2025):
We have still the same issue with the currently newest version:
1.24.3(gitea-1.24.3-gogit-windows-4.0-amd64)Gitea runs on Windows as a service.
A push is around ~15 sec.
A PR is also ~15 sec.