mirror of
https://github.com/go-gitea/gitea.git
synced 2026-03-12 02:24:21 -05:00
Create PullRequest ends with 500 Internal Server Error after ~60s with 'context canceled' events in v1.20.6 (and previously in v1.18.5) #13375
Closed
opened 2025-11-02 10:40:24 -06:00 by GiteaMirror
·
12 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#13375
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 @zcopado on GitHub (Aug 7, 2024).
Description
We have found that various Pull Requests are failing with a 500 Internal Server Error after >60s of executing the CompareAndPullRequestPost (pull.go).
Here are the typical, overall events we get:
In between these anchor events are a myriad of "merge" events, as follows:
And here are the [E]rror events RIGHT BEFORE the final 500 Internal Server Error event:
The interesting part of this is that we UPGRADED this instance TODAY to v1.20.6, and it did not fix this problem.
Prior to the upgrade, we were running v1.18.5, and had the same results (with some different events BEFORE the end):
We need your help. We have scoured your Issues lists, Discord, etc, and cannot locate anything that would help us here.
We are looking for anything to explain the context canceled events, and how we can extend "what seems to be" a 60s timeout for the Pull Request creation, or the context lifetime.
Thank you for ALL your help.
Gitea Version
1.20.6
Can you reproduce the bug on the Gitea demo site?
No
Log Gist
No response
Screenshots
No response
Git Version
2.40.1
Operating System
alpine 3.18
How are you running Gitea?
In a GKE v1.28+ Cluster
Successfully running gitea since v1.16+
Database
PostgreSQL
@KN4CK3R commented on GitHub (Aug 8, 2024):
What are the values for git timeout in your ini? https://docs.gitea.com/administration/config-cheat-sheet#git---timeout-settings-gittimeout
@zcopado commented on GitHub (Aug 8, 2024):
Good question! We have not altered any of the DEFAULTS. So whatever the defaults are, as per the app.example.ini, that's what we have.
And funny enough, none of them, other than GC (garbage collection) elude to a 60s timeout. Hence why we are perplexed.
@KN4CK3R commented on GitHub (Aug 8, 2024):
Still you could add higher values to your config and test if it works. You can see the current settings on the admin panel
/admin/config. Just to be sure there are no other values set at the moment.@zcopado commented on GitHub (Aug 8, 2024):
Good point. What timeout would affect this action? None of them seem to have a clear correlation...
@KN4CK3R commented on GitHub (Aug 8, 2024):
It's the default value.
@zcopado commented on GitHub (Aug 8, 2024):
Alright... that value is set to 360 seconds (6 minutes). This operation is failing at ~60s... what value should we tweak here?
@wxiaoguang commented on GitHub (Aug 8, 2024):
Maybe you are using a reverse proxy like nginx and its default timeout is also 60s
@zcopado commented on GitHub (Aug 8, 2024):
Great point, wxiaoguang... we checked, and our ingress has a 300s timeout. Additionally, can someone with more familiarity with the 'context' in gitea explain what causes the 'context canceled'?
Perhaps it is a timeout of the context, in regard to PullRequest, that is causing this issue.
@wxiaoguang commented on GitHub (Aug 8, 2024):
context canceledis caused by the "Context is cancelled before the operation finishes". It could occur:CompareAndPullRequestPostandNewPullRequestuse thectxfrom the reuqest, akahttp web connection). So if the connection is closed, the context is canceledCompareAndPullRequestPost() [E] [66b3414f] NewPullRequest: context canceled, that's why I guess it is caused by reverse proxy's read/write timeout -- the default value is 60s.@wxiaoguang commented on GitHub (Aug 8, 2024):
I think there is an easy way to to confirm whether it is really caused by the network connection, when the error occurs:
@zcopado commented on GitHub (Aug 8, 2024):
Great points @wxiaoguang ... thank you for the insight. We will dig deeper on our end, and report back our findings. Truly appreciate the clarity.
@zcopado commented on GitHub (Aug 8, 2024):
@wxiaoguang - Your insight was correct. In our ingress configuration (utilizing nginx), there was an implied setting with a default value:
(more info)
We explicit set that directive, with a value of 300s, and Boom! Everything worked as expected.
Closing this Issue. Cheers.