mirror of
https://github.com/go-gitea/gitea.git
synced 2026-03-12 02:24:21 -05:00
Failed to use act_runner with cache with error failed: socket hang up
#13299
Closed
opened 2025-11-02 10:37:51 -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
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#13299
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 @catfishlty on GitHub (Jul 17, 2024).
Description
Overview
Version
All my services are on Docker.
Gitea Instance:
gitea/gitea:1.22.1, name:gitea, port:3000Act_runner Instance:
gitea/act_runner:0.2.10, name:gitea-runner, port:9040(for cache server)Job Container:
catthehacker/ubuntu:act-latestNetwork
All these 3 containers are in one Docker network(172.18.0.0/24),
And I follow this to setup the act runner cache setting, and I'm pretty sure that Job container can connect to the cache server port testing by
curlProblems
When I use this workflow to start a action job, the job will be succeed at the end, but the cache save/restore steps always failed.
Then I catch the logs form
act_runnercontainer, even if I set thelog.leveltodebug, I can't get the logs with more details.Workflow
Config for Act Runner
Logs from Act Runner Container
Logs form Gitea - Actions - Log View
Gitea Version
1.22.1
Can you reproduce the bug on the Gitea demo site?
No
Log Gist
No response
Screenshots
No response
Git Version
No response
Operating System
No response
How are you running Gitea?
Running in Docker Engine Community
Database
PostgreSQL
@wolfogre commented on GitHub (Jul 18, 2024):
Job containers are on a different network from the runner, so it will fail to visit gitea-runner:9040 from job containers, please check https://docs.gitea.com/usage/actions/act-runner#configuring-cache-when-starting-a-runner-using-docker-image
@catfishlty commented on GitHub (Jul 18, 2024):
Thanks for the reply, but it's not like you said actually.
I set the job container to the custom network
local_netand my gitea instance and act_runner are both linked tolocal_net, then I usecurl gitea-runner:9400, the response will be204 NO Content, so it means it's not the network issue, the connection is correct, But the caching function doesn't seem to work.I think with this config, there will be 3 containers in the same network,
gitea instance,gitea act runner,job container.@wolfogre commented on GitHub (Jul 19, 2024):
Sorry, I overlooked that. Thanks for pointing it out.
You just did what came to my mind: run
curlin job containers to check the network. To make sure, you have runcurl gitea-runner:9040/_apis/artifactcache/cache, not9400, not the root path, and it returned204, right?If so, I would say it's weird. Could you please set the log level to
debug(in the config file for runner), and search logs with key wordartifactcache?@catfishlty commented on GitHub (Jul 19, 2024):
Sorry, it's a typo for the port number(Configs has been changed several times), it should be
9040.Steps how I test it
curl gitea-runner:9040/_apis/artifactcache/cachein Job Container, Return204 NO CONTENTI hope it can help.
@wolfogre commented on GitHub (Jul 22, 2024):
Thanks! According to the log, it seems stuck in the
reservemethod.You could test it with
and it should fail.
This step doesn't do many things. It just opens the bolt database file, inserts a new record, and returns.
Since it's OK to call
/_apis/artifactcache/cache, it should be fine to open the database file. So there may be some problem writing to the bolt database.Could you please provide more information about the disk that stores the bolt database file? Is it a SD card or something similar? Is it full?
@catfishlty commented on GitHub (Jul 22, 2024):
Unfortunately, the
curlcommand execute successfully.Here's the log for executing this command.
And for the devices, I host it on intel x64 platform with SSD with enough disk spaces, ESXI as the infrastructure and virtual debian-12 OS, and docker engine inside. so I don't think it's a storage issue.
Bolt DB file is also here.
bolt.zip
@wolfogre commented on GitHub (Jul 23, 2024):
Hmm, that's so weird.
So, there's no problem with the network, bolt db or act_runner. And I think maybe there's some problem with Node.js ...
Then I found this:
However, it's a bug of
node-fetch, but Node.js doesn't need it any longer since v18, so maybe you are using a old version of node?Could you please use
gitea/runner-images:ubuntu-latestas the job container images? Or add "setup-node" before "setup-go":Update:
I'm not an expert in Node.js, but now I'm quite sure the problem is not related to Gitea or act_runner. So if upgrading Node didn't help, could you please provide your complete workflow file?
@catfishlty commented on GitHub (Jul 23, 2024):
T_T, still failed to get the cache
NodeJS Version:
v20.15.1, usingsetup-node@v4to setup node env.I changed the image to run this job.
Logs
Restore
Save
Here's the workflow file
@catfishlty commented on GitHub (Jul 24, 2024):
I found the dependencies that
node-fetchis used in@actions/cacheThe
node-fetchversion is2.6.7, butsocket hang upissue is fixed after3.3.2Is there any other way to cache build dependencies using cache plugin?
As far as I know, many build environment setting plugins use
@actions/cache, and reusing it may be a better solution.Beside this, I also tried nodejs versions 16, 18, 20, but all failed.
@wolfogre commented on GitHub (Jul 24, 2024):
It shouldn't be, Node.js has builtin
fetchdoesn't usenode-fetchany longer since v18.We have act runners to run
setup-gowith cache every day, we never hit the "socket hang up" error.I still think there's some problem with your node env ...
@catfishlty commented on GitHub (Jul 24, 2024):
I think I found what causes the
socket hang uperror.It's a kind of network problem, not NodeJS version problem at all.
Plz focus on
NO_PROXYenvironment variable, I didn't addgitea-runner. Due to the docker network, maybe it's ok to send curl request to the runner, but for@actions/cachethe request maybe is different.The fix is to just add
gitlab-runnertoNO_PROXY, then removeactcachefolder and.runnerfile, after restart, the cache function works normally. People who use "HTTP_PROXY" may face the same problem.However, I don't know the design of @actions/cache and gitea cache server very well, so I don't know the real reason.
Thanks for your kind help,
Giteais a great project 🚀Logs
Restore - not found
Save
Restore - hit
Update:
I'm curious, are environment variables like 'HTTP_PROXY' and 'NO_PROXY' passed to the JOB container? Or are they only used by the runner instance?
@wolfogre commented on GitHub (Jul 24, 2024):
The
envsyou set in workflow files will be used by job containers, and theenvs/env_filein YAML config file is for act runner itself.It seems that many strange behaviors have confused the direction, but whatever, I'm glad you have solved the problem!