actions / runner

The Runner for GitHub Actions :rocket:
https://github.com/features/actions
MIT License
4.91k stars 965 forks source link

Github Actions Self-Hosted Runner issue with node 20 #3373

Open biswalc opened 4 months ago

biswalc commented 4 months ago

Describe the bug

I am running Github Actions Self Hosted Runner on a Ubuntu VM:

~$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.6 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.6 LTS"
VERSION_ID="20.04"

I am running Actions Runner version 2.317.0

In the context of the notice by the Github team: Notice

I am using the GitHub Actions:

jobs:
  my-job:
      runs-on: [my-ubuntu]
      timeout-minutes: 120
      container:
        image: my-image-path:latest
        credentials:
          username: ${{ secrets.USERNAME }}
          password: ${{ secrets.PASSWORD }}

      steps:
        - name: Checkout Source Code
          uses: actions/checkout@v4.1.7

But when the job executes, I get this Error in the Job logs:

/usr/bin/docker exec  XXXX sh -c "cat /etc/*release | grep ^ID"
/__e/node20/bin/node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by /__e/node20/bin/node)

On the Ubuntu VM, I have node installed already, and it is running as expected; not sure why the runner is complaining about not being able to run node 20

# Self-Hosted Runner Ubuntu 20.04
$ node -v
v20.15.0

Additional info:

$ ldd --version
ldd (Ubuntu GLIBC 2.31-0ubuntu9.16) 2.31
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.

Currently to circumvent the downtime of CI, I am running the scripts as below:

bash -c 'ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true run.sh' > nohup.out 2>&1 &

## and github actions
      steps:
        - name: Checkout Source Code
          uses: actions/checkout@v3

To Reproduce Provided in the description.

Expected behavior Since node version v20.15.0 is already running on the ubuntu VM, the runner should not have issues with running with node20

Runner Version and Platform

Github runner version 2.317.0

~$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.6 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.6 LTS"
VERSION_ID="20.04"

OS of the machine running the runner?

NAME="Ubuntu"
VERSION="20.04.6 LTS (Focal Fossa)"

What's not working?

Provided in description.

Job Log Output

Run actions/checkout@v4.1.7
/usr/bin/docker exec  7ac705625cb4517179f0c29eb36101b7221b70f40f0d76ede8fcbdad305a8012 sh -c "cat /etc/*release | grep ^ID"
/__e/node[20](https://github.com/Roche-DIA-RDS-CSI/bio-nlp-py/actions/runs/9799219159/job/27061796743#step:3:21)/bin/node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by /__e/node20/bin/node)

Runner and Worker's Diagnostic Logs

None

hardikns commented 4 months ago

Same issue here with self-hosted runner. I am still running checkout@v2 and still its failing for node20.

is it something to do with https://github.com/actions/runner/releases/tag/v2.317.0?

Bercon commented 4 months ago

Dropping support for official ubuntu:18.04 docker image is unfortunate and https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/ only lists ubuntu:16.04 as unsupported

Are there plans to fix the ubuntu:18.04 support?

eli-schwartz commented 4 months ago

Since node-based actions spread into containers, it seems very unwise to allow the node interpreter to rely on software inside the container. That appears to be the root of this mismatch. A container may contain older glibc which breaks things as basic as actions/checkout, which can leave users pretty trapped.

Node should instead be:

eli-schwartz commented 3 months ago

It appears this has actually been proposed in https://github.com/actions/runner/pull/3128 back in February.