bug: cache action is not working with IPv6 only forgejo runners #733
Labels
No labels
FreeBSD
Kind/Breaking
Kind/Bug
Kind/Chore
Kind/DependencyUpdate
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
Windows
linux-powerpc64le
linux-riscv64
linux-s390x
run-end-to-end-tests
run-forgejo-tests
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
forgejo/runner#733
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
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?
Can you reproduce the bug on the Forgejo test instance?
No response
Description
When using the forgejo actions cache with IPv6 only runners (using docker in kubernetes), the cache restore returns
getaddrinfo ENOTFOUND [2001:678:d50:4005::6adf], probably because it is interpreting the IPv6 address of the ACTION_CACHE_URL as hostname.If i call ACTION_CACHE_URL using curl, it is accessible over http.
Issue was opened in actions/cache#2 initially.
Example run: https://codeberg.org/margau/forgejo-actions-cache-test/actions/runs/5
Example Repo: https://codeberg.org/margau/forgejo-actions-cache-test/
Runner Setup: https://margau.net/posts/2025-06-29-forgejo-runner-ipv6-kubernetes/
Forgejo Version
No response
Runner Version
v7.0.0
How are you running Forgejo?
Codeberg Instance
How are you running the Runner?
Helm Chart https://codeberg.org/wrenix/helm-charts/src/branch/main/forgejo-runner extended with IPv6 only docker configuration in an IPv6 only k8s cluster
Logs
No response
Workflow file
@Kwonunn does that ring a bell? I figure it might be a problem with how the proxy cache URL is constructed but I did not look into it.
@Kwonunn gently ping
Today, I looked a bit trough the code.
Theoretically, it should be handled correctly, if the "host"-field is an IPv6 address..
Node HTTP Lib:
github.com/nodejs/node@a73b575304/lib/_http_agent.js (L419)Actions HTTP Client Setting the host option:
github.com/actions/toolkit@227b1ce741/packages/http-client/src/index.ts (L593)However, I can reproduce it locally very simple:
returns
Unfortunately, my nodejs experience is not that great, but I'd guess the issue is more likely on the node or actions-http-client side, and not in the forgejo runner.
Since it is apparently an issue with https://github.com/actions/cache and the underlying JavaScript module. Could you file an issue there? It is quite possible that this action was never used in an IPv6 only environment and this was overlooked. I advise to only marginally reference Forgejo so that your issue is not dismissed right away as "not supported environment" 😁
https://margau.net/posts/2025-06-29-forgejo-runner-ipv6-kubernetes/ is a good read, kudos.
bug: cache not working with IPv6 only forgejo runnersto bug: cache action is not working with IPv6 only forgejo runnersSince this is an issue with https://github.com/actions/cache, I'm closing this.
@margau if you think something needs to be done Forgejo side, please re-open and explain what you have in mind 🙏