mirror of
https://github.com/go-gitea/gitea.git
synced 2026-03-22 06:24:14 -05:00
Gitea 1.20 leaking resources #11440
Closed
opened 2025-11-02 09:37:42 -06:00 by GiteaMirror
·
19 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
No Label
type/bug
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#11440
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 @lafriks on GitHub (Aug 10, 2023).
Description
After upgrade from 1.19 to 1.20 we noticed that at one point (about twice a day) Gitea would become unstable and would not accept git push anymore and would fail with:
We could not pinpoint exact cause of what is reason for this as in one point it was that it can not create process that was failing at linux syscall level.
Our temporary fix to get it stable again was by disabling
/user/eventswebsocket endpoint at reverse proxy level. This does help but of course on degradation of UX.At peak times we have about 50 users using it simultaneously so it's not that high number.
If anyone has any ideas on where to look to pinpoint the source of problem let me know :)
Gitea Version
1.20
Can you reproduce the bug on the Gitea demo site?
No
Log Gist
No response
Screenshots
No response
Git Version
2.25.1
Operating System
Ubuntu 20.04
How are you running Gitea?
From binary using systemd
Database
PostgreSQL
@silverwind commented on GitHub (Aug 10, 2023):
It's not WebSocket, it's still EventSource 😆. But yes I could see that this has potential to consume many resources, thought I don't recall it having changed any lately. EventSource code should be pretty much unchanged since at least 2-3 minor gitea versions.
@lafriks commented on GitHub (Aug 10, 2023):
Yes, it's a wild guess, hard to tell what's the real source for the problem but that what helped. There was no such problems with 1.19, nothing else has changed - nor user count or nor behavior
@silverwind commented on GitHub (Aug 10, 2023):
Might need to pprof it. Maybe we already expose a endpoint for it? If not, that might be a nice opt-in debug feature, chi has a built-in middleware for it.
@lunny commented on GitHub (Aug 23, 2023):
I also found a similar problem when closing Gitea
@lafriks commented on GitHub (Sep 14, 2023):
even after disabling
/user/eventsendpoint in reverse proxy we still experience problem few times a week when gitea will stop accepting git push'es and throw errors and only thing that helps to get it back working is gitea restart@lunny commented on GitHub (Sep 14, 2023):
The error about pthread_create failed: Resource temporarily unavailable normally means that you are trying to create too many threads.
Take a look at how many thread numbers are allowed for this linux machine
And change it to a greater number if the memory is enough.
You could also have a monitor record for the thread's number.
@lafriks commented on GitHub (Sep 14, 2023):
already checked that, does not seems anything out of ordinary (but we will check this when everything goes to hell again):
@lunny commented on GitHub (Sep 14, 2023):
Maybe you can use Prometheus & Grafana to track the thread number.
@lafriks commented on GitHub (Sep 14, 2023):
will try to enable
processesmonitoring innode_exporter@lafriks commented on GitHub (Sep 15, 2023):
Problem happened again sooner than expected.
Thread/process count is not the problem, memory usage is
Looks like on push on ~600MB repo gitea process memory usage spikes at least +4GB and it does not recover from that and only restart of gitea process helps:
@silverwind commented on GitHub (Sep 15, 2023):
A pprof snapshot from admin ui should give some info on the memory allocations.
@lafriks commented on GitHub (Sep 15, 2023):
admin ui pprof allows downloading only cpu profile but not memory profile
@silverwind commented on GitHub (Sep 15, 2023):
Not sure what admin pprof does, but this should work:
e5ec57cd60/custom/conf/app.example.ini (L289-L295)@lafriks commented on GitHub (Sep 15, 2023):
thing is this that it's not easily reproducible and I don't know what impact enabling this is on production system as it could take days/weeks before problem happens
@silverwind commented on GitHub (Sep 15, 2023):
Not an expert but I think the pprof webserver has no real perf impact until you actually take snapshots.
@lunny commented on GitHub (Sep 15, 2023):
I couldn't reproduce this on my local machine. I have tested main and release/v1.20 for pushing linux repository via http/ssh. The memory has almost no change when pushing.
Do you have any git hooks or web hooks on that repository?
@lafriks commented on GitHub (Sep 15, 2023):
it has only woodpecker and slack/mattermost webhooks, no special githooks used on this instance. full text code search is enabled on the server (elastic) but it has been enabled for at least year already and on 1.19 there was no issues with that
@lunny commented on GitHub (Sep 15, 2023):
Maybe you can try to disable code indexer temporarily if possible for some days to take a look whether it's the problem.
@wxiaoguang commented on GitHub (Dec 29, 2023):
Feel free to provide more clues by #28596 (and it has been backported to 1.21)