mirror of
https://github.com/go-gitea/gitea.git
synced 2026-07-10 16:44:50 -05:00
Gitea action runner fails to start randomly on low-end hardware #14371
Open
opened 2025-11-02 11:11:07 -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#14371
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 @repo-ooo on GitHub (Apr 14, 2025).
Description
I'm running gitea and gitea runner in docker on low-end hardware (Intel J1900). The actions job is very hard to start. Mostly, the actions run page is stucked on "Set up job" without any output, and finally failed after 10~12 minutes.
I have to repeatedly click
cancelandrerun all jobson the actions run page, and quickly check if the job is successfully sent to runner viadocker log gitea-runner. If I'm lucky, it might start successfully on the first try; if not, it could fail more than 20 times in a row.I believe this problem is due to the low-end hardware. When I'm running
git clone https://git.mydomain.com/a/b, It may also fail at the first time, and succeed at the second time. Unfortunately, it's easy to rungit clone2 times, but it's hard to cancel and rerun action jobs again and again.Is it possible to add some retry policy when starting an action job?
Possible related issues:
#32348, #33492, #33497
Gitea Version
1.23.6
Can you reproduce the bug on the Gitea demo site?
No
Log Gist
No response
Screenshots
Git Version
No response
Operating System
Synology DSM 7.2.2, kernel version 4.4.302+
How are you running Gitea?
docker-compose up -dThe domain
git.mydomain.comis resolved to192.168.0.100, and reverse proxied by Synology DSM to port:5030.Database
SQLite
@lunny commented on GitHub (May 10, 2025):
Looks like it's a performance problem for low-end hardware rather than a bug.
@blaizard commented on GitHub (Jul 1, 2025):
I have the same issue, running on Synology hardware as well but different CPU: INTEL Celeron J4125.
The issue started to show up 8 months ago (most likely after updating to v1.22.4), before that I never had any issues (note that my gitea containers are always up to date as I use watchtower).
@lunny commented on GitHub (Jul 1, 2025):
Have you enabled code search in your instance? I guess it maybe related to bleve engine.
@blaizard commented on GitHub (Jul 1, 2025):
It's not enabled,
REPO_INDEXER_ENABLEDdefaults to false. I also tried implicitly setting it to false and I still have the issue.@ericLemanissier commented on GitHub (Jul 2, 2025):
I have the same problem on a synology with the same CPU, with indexing disabled
@abrain commented on GitHub (Jul 17, 2025):
We see this effect with not-so-low hardware. Also Gitea, the database and the runner are on separate hosts.
But as far as I can see, it started exactly with the update from 1.23.7 to 1.24.2.
Oddly enough, only one specific repository seems to be affected. Due to a previously used cron schedule, this repo has over 30000 runs. I wonder if there is a performance impact related to the number of runs, that somehow increases the chance of this bug happening. The Actions tab surely loads slower than those of other repos.
@ericLemanissier commented on GitHub (Jul 25, 2025):
I'm not sure if it helps, but this problem happens both with sqlite and postgres database, and on a repo which has only 350 runs.
at the time the job tried to start, with postgres db, gitea logs says :
I'm not sure it related ?
@techknowlogick commented on GitHub (Jul 26, 2025):
Any specific actions you are using in your workflows? I've seen specifically the Unity one cause apparent hangs due to its size and memory required for git to clone it.
@ericLemanissier commented on GitHub (Jul 31, 2025):
Correction on my message above: only the first job failed (after boot). After a few days, all subensequent jobs succeeded since migration to postgresql.
@ericLemanissier commented on GitHub (Aug 11, 2025):
after two weeks, I noticed at least two failures (with postgres db). As for the other failures, the workflow hangs at the very start, and does not even takes a spot in the runner, which is able to run another action while this one hangs. There is simply no log, so it seems to hang before checking out any action. Trying to download the raw log fails with
DownloadActionsRunJobLogsWithIndex, OpenLogs: dbfs open "actions_log/el/windmill/a1/76449.log.zst": file does not existThis workfow is using:
@lichuanqi commented on GitHub (Aug 29, 2025):
same issue
@abrain commented on GitHub (Sep 8, 2025):
I adjusted the runner config a few days ago and did not witness this issue since. The config now reads:
@abrain commented on GitHub (Sep 29, 2025):
TL;DR: A database query takes a long time and the runner cancels the request. Adding a database index significantly reduces the performance impact. The fact that certain tasks never run might be a manifestation of #33492, if the request is cancelled after picking a task, but before sending the response.
You can see in the reverse proxy logs (in my case nginx), that the runner sometimes closes the connection before getting a response.
On the Gitea side you see slow request and database query warnings:
The slow query log on the MariaDB server shows those queries as well. Executing the queries directly on the server lead me to the issue. The problematic part is the sub-query for
num_closed_action_runs.You see the steep increase in query time, as soon as the
statuscondition is added. There is no index yet that would speed up this query:After adding
this query now executes in 30 ms.
I tested again with more aggressive polling from the runner and with shorter timeouts, which seems fine now.
So I'd like to suggest to add this index. Maybe one of the other affected users here can confirm the effectiveness of the solution.
@ericLemanissier commented on GitHub (Sep 30, 2025):
For the last failure of this kind, here is my log:
Unfortunately, nothing signals for the
action_runtable.In my case, the
[Slow SQL Query]onaction_runnerare probably not the cause, because they are also logged even when the jobs start properly, and with duration even longer than the ones above.It leaves us with these 3 lines:
These are the same 3 lines I had in July and @abrain's log also has
WorkflowJobStatusUpdateandCreateCommitStatus. Does it ring a bell ?@abrain commented on GitHub (Sep 30, 2025):
I did not see the slow query on
UPDATE action_runneryesterday, but today it showed up for me as well. Around that time, the database server's CPU was spiking.In the database's slow query log I found additional queries happening at the same time:
The result sets were 90 to 210 MB in size. I am not sure why the Gitea server would request entire tables. But I think the slowness of the very simple
UPDATE action_runnerquery is a side effect of the DB server being quite busy.@ericLemanissier Regarding the
action_run(or ratherUPDATE repository) query not showing up in your log: The defaultSLOW_QUERY_THRESHOLDfor Gitea is 5 seconds. If there are two queries taking 3 seconds each, they could cause the same issue, but you would not see them in the Gitea log.From my understanding, the
WorkflowJobStatusUpdateandCreateCommitStatuslines are the result of the runner cancelling the connection because of the timeout (also 5 seconds by default), but I could be wrong.