Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v4 and v3 Fails to fetch from a self hosted repository: fatal: unable to access '*': Failed to connect to *: Couldn't connect to server #2111

Open
kozmotronik opened this issue Mar 15, 2025 · 1 comment

Comments

@kozmotronik
Copy link

kozmotronik commented Mar 15, 2025

Problem Description

I have 2 simple workflows to make tests on 2 self-hosted runners, each of which runs on the specified runner. The runners run the jobs successfully. However when the checkout runs, it fails with the following error at the Fetching the repository stage:

Fetching the repository
[command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --progress --no-recurse-submodules --depth=1 origin +371b77b07763[38](https://gitea.kozmotronik.com.tr/KozmotronikTech/Karalama/actions/runs/8#jobstep-4-38)6ae833ad4b1bd1ba324469ad60:refs/remotes/origin/main
fatal: unable to access 'https://gitea.kozmotronik.com.tr/KozmotronikTech/Karalama/': Failed to connect to gitea.kozmotronik.com.tr port 443 after 7 ms: Couldn't connect to server
The process '/usr/bin/git' failed with exit code 128
Waiting 12 seconds before trying again

The repository is public, therefore this shouldn't be an access problem. You can see the complete logs at -> https://privatebin.kozmotronik.com.tr/?4dddeb6000ba8f12#G4XmdYmpV65Evc5mNR7s8UNxyDvQKgj3joAtcsr4zT1N

Tried fetching the repo from within the docker runner container

I tried replicating the process manually from within the runner's docker container in 2 ways:

  1. Partial replication: In this method I just replicated the initializing the repository and the Fetching the repository steps of the checkout action.
  2. Quasi full replication: In this method I replicated the initializing the repository, Setting up auth and the Fetching the repository steps of the checkout action, respectively.

Here is the workflow I executed in the container:

$ /usr/bin/git init /workspace/KozmotronikTech/Karalama
$ cd /workspace/KozmotronikTech/Karalama
$ /usr/bin/git remote add origin https://gitea.kozmotronik.com.tr/KozmotronikTech/Karalama
$ /usr/bin/git config --local --name-only --get-regexp core\.sshCommand
$ /usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
$ /usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/gitea\.kozmotronik\.com\.tr\/\.extraheader
$ /usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/gitea\.kozmotronik\.com\.tr\/\.extraheader' && git config --local --unset-all 'http.https://gitea.kozmotronik.com.tr/.extraheader' || :"
$ /usr/bin/git config --local http.https://gitea.kozmotronik.com.tr/.extraheader AUTHORIZATION: basic ***
# I get a misusage message after executing this: usage: git config [<options>]

$ /usr/bin/git -c protocol.version=2 fetch --no-tags --prune --progress --no-recurse-submodules --depth=1 origin +371b77b07763386ae833ad4b1bd1ba324469ad60:refs/remotes/origin/main

I managed to fetch the repo successfully in both methods. What should I do in this case?

Action content

The content of the both files are virtually same except the runs-on target and the version of the checkout; one is v3 while another is v4.

name: Gitea Actions Demo
run-name: ${{ gitea.actor }} is testing out Gitea Actions 🚀
on: [push]

jobs:
  Explore-Gitea-Actions:
    runs-on: ubuntu-latest
    steps:
      - run: echo "🎉 The job was automatically triggered by a ${{ gitea.event_name }} event."
      - run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by Gitea!"
      - run: echo "🔎 The name of your branch is ${{ gitea.ref }} and your repository is ${{ gitea.repository }}."
      - name: Check out repository code
        uses: actions/checkout@v3
      - run: echo "💡 The ${{ gitea.repository }} repository has been cloned to the runner."
      - run: echo "🖥️ The workflow is now ready to test your code on the runner."
      - name: List files in the repository
        run: |
          ls ${{ gitea.workspace }}
      - run: echo "🍏 This job's status is ${{ job.status }}."

Environment info

In my system everything is self-hosted, from git site to the runners.

SCM Site

Gitea: v1.23.5 - https://about.gitea.com/
Instance: https://dev.kozmotronik.com.tr/gitea

Runners

The runner I use is the act_runner which works with Gitea. I have 2 self-hosted runners; one runs on the same machine as Gitea instance, while another runs on my local computer, both run as docker containers.

Please let me know if I could provide futher information.
Regards,
Ismail

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants
@kozmotronik and others