mirror of
https://github.com/go-gitea/gitea.git
synced 2026-07-15 20:09:18 -05:00
gitea hanging with git 2.43.1 #12471
Closed
opened 2025-11-02 10:10:51 -06:00 by GiteaMirror
·
11 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#12471
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 @tycho on GitHub (Feb 12, 2024).
Description
I noticed that gitea was hanging when attempting to view commits (via
/<team>/<repo>/commit/<hash>), but only with git 2.43.1 installed. "ps" showed a bunch ofcat-file --batch-check,cat-file --batch, andcheck-attrinvocations of git, which were making no progress. I attached strace to one of the git child processes and it was simply blocked on reading from stdin. I downgraded to git 2.43.0 and gitea started being able to view commits and index repositories.I tried cranking the log level up to Debug and other than reporting "router: slow" messages for the commit URLs, it didn't seem to have any complaints, e.g. here's what happens on attempting to view a commit URL:
And again this only seems to happen with git 2.43.1 installed. Any idea what could be going on? Is this an upstream git regression?
Gitea Version
All
Git Version
2.43.1
Workaround
Downgrade git to <=2.43.0 or upgrade to >= 2.43.2
@Bodenhaltung commented on GitHub (Feb 12, 2024):
Same here but as DB
sqlite3, updated Git togit 2.43.1-1and running Gitea1.21.4-1(Gitea version 1.21.5 built with GNU Make 4.4.1, go1.21.6 : bindata, sqlite, sqlite_unlock_notify, pam).@wxiaoguang commented on GitHub (Feb 12, 2024):
I think it is a regression bug of Git. I have sent an email to the git mail list, quote it below.
(the only workaround at the moment is to downgrade the git to <=2.43.0 , well, I am not sure whether we should propose a dirty patch to bypass the regression).
Incorrect GIT_FLUSH behavior in 2.43.1 (regression and breaking)
Ref:
556e68032fIf GIT_FLUSH=true, it should mean to "do the flush". But that commit made skip_stdout_flush=true when GIT_FLUSH=true.
And by the way, only accepting GIT_FLUSH=true is quite breaking, it drops the compatibility of GIT_FLUSH=1: it causes the existing programs which depend on the "flushing(GIT_FLUSH=1)" behavior would hang forever if they use the new git binary, because the program won't see any flushed output ....(not a problem if the filpping bug could be fixed)@tycho commented on GitHub (Feb 12, 2024):
Probably shouldn't, as long as the git team resolves it quickly with a revert/patch and new release.
But is there an opportunity for better logging on the gitea side for this issue? Even with Debug level logging there wasn't much to report aside from the "router: slow" messages, which were at least somewhat helpful in figuring it out. But maybe there should be something more here?
@wxiaoguang commented on GitHub (Feb 13, 2024):
IMO there is no general/easy way to do the log for such hanging at the moment (feel free to propose some approaches), because the problem is that Gitea couldn't read the git program's output. Actually, there are many clues, eg: the "running process" (in the admin panel), the log about "failed to run attr-check". The real difficult step is how to figure out why it hangs.
Maybe we could do this: Refactor git version functions and check compatibility #29155
Tell end users to upgrade or downgrade the git if there is some known issues.
@VitaliyAT commented on GitHub (Feb 15, 2024):
I have the same problems with git version 2.43.0.windows.1
@milosivanovic commented on GitHub (Feb 16, 2024):
@tycho @wxiaoguang thanks for figuring this out - the new hangs were baffling me. I didn't immediately use gitea after updating git from 2.43.0 to 2.43.1, so I didn't correlate updating git with the hangs that occurred while trying to view diffs until I found this issue.
I am running gitea behind an nginx reverse proxy, and after clicking a commit to view a diff, nginx returned HTTP 504 after gitea failed to respond within 60s. @wxiaoguang It would be useful if gitea could be configured to time out the git command after a shorter time so that it could return a meaningful error for users who are still trying to figure this issue out. Would that be possible?
@wxiaoguang commented on GitHub (Feb 16, 2024):
Actually there is one:
[git.timeout].DEFAULT6d4dc16c72/custom/conf/app.example.ini (L708C2-L708C15)But I think you shouldn't touch it ..... because it's difficult to fine-tune a proper timeout for various cases at the moment.
@wxiaoguang commented on GitHub (Feb 16, 2024):
Does an old version (say , git 2.42.x) work for you? If no, then it could be a different problem (not the GIT_FLUSH regression)
@tycho commented on GitHub (Feb 16, 2024):
Also 2.43.2 is out, which fixes this bug. Just have to wait for vendors to build binary packages for it.
@silverwind commented on GitHub (Feb 16, 2024):
That, and all our fixes have merged as well, so let's close.
@github-actions[bot] commented on GitHub (Feb 28, 2024):
Automatically locked because of our CONTRIBUTING guidelines