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

/__e/node20/bin/node: /lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.28' not found (required by /__e/node20/bin/node)` #1590

Open
nicowilliams opened this issue Jan 19, 2024 · 42 comments

Comments

@nicowilliams
Copy link

Using container: image: debian:bullseye to build the OpenJDK for an older release of a distro (Debian in this case, but this isn't specific to Debian) causes a failure due to node in the actions/checkout@v4 docker image to fail to run due to the container having an older glibc:

/usr/bin/docker exec  ebe297a6b5716c387c7333d466eb082069a2f0b0c97379a95e810de4f4fa67a5 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)

image

(Using build tools that depend on newer glibc versions seems likely to be a common pitfall for GitHub Actions.)

@briandfoy
Copy link

briandfoy commented Jan 24, 2024

I also have this problem on Ubuntu 22.04 (see https://github.com/briandfoy/data-constraint/actions/runs/7645971689/job/20833756885 while it is around).

Run actions/checkout@v4
  with:
    repository: briandfoy/data-constraint
    token: ***
    ssh-strict: true
    persist-credentials: true
    clean: true
    sparse-checkout-cone-mode: true
    fetch-depth: 1
    fetch-tags: false
    show-progress: true
    lfs: false
    submodules: false
    set-safe-directory: true
/usr/bin/docker exec  55707bba4641f79c81786bd2c50d454ad4ce5589862509caadcaf0d83af05524 sh -c "cat /etc/*release | grep ^ID"
/__e/node20/bin/node: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.27' not found (required by /__e/node20/bin/node)
/__e/node20/bin/node: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /__e/node20/bin/node)
/__e/node20/bin/node: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /__e/node20/bin/node)
/__e/node20/bin/node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by /__e/node20/bin/node)
/__e/node20/bin/node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.25' not found (required by /__e/node20/bin/node)

@falkTX
Copy link

falkTX commented Jan 29, 2024

I have the same issue when trying to use ubuntu:18.04 image
https://github.com/moddevices/mod-desktop-app/actions/runs/7697857575/job/20975801114

falkTX added a commit to mod-audio/mod-desktop that referenced this issue Jan 29, 2024
@falkTX
Copy link

falkTX commented Jan 29, 2024

Similarly the actions/cache@v4 also fails
https://github.com/moddevices/mod-desktop-app/actions/runs/7698414056/job/20977633093

falkTX added a commit to mod-audio/mod-desktop that referenced this issue Jan 29, 2024
@Lastique
Copy link

Lastique commented Feb 2, 2024

I have the same problem with checkout@v4 with running CI on ubuntu:16.04 and ubuntu:18.04 docker images:

/usr/bin/docker exec  96e66dce4d560bc83ea53e3885a0f7a370efc33ab78c57efc31e036d6ef7b0c3 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)

https://github.com/Lastique/scope/actions/runs/7754629439/job/21148329132

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

https://github.com/Lastique/scope/actions/runs/7754629439/job/21148329685

These older Ubuntu images are needed to be able to test older compiler versions.

Until this issue is resolved, please remove the deprecation notice for checkout@v3, as there simply is no alternative.

Lastique added a commit to boostorg/scope that referenced this issue Feb 2, 2024
…ngs."

This reverts commit a8750d5.

checkout@v4 doesn't work on ubuntu:16.04 and ubuntu:18.04 images:

actions/checkout#1590
@falkTX
Copy link

falkTX commented Feb 2, 2024

Until this issue is resolved, please remove the deprecation notice for checkout@v3, as there simply is no alternative.

note that it is not just the checkout being broken, anything that uses node is broken which includes cache and artifacts.
even the node-setup action (which could potentially be a workaround) is broken.

basically all the v4 actions from github are broken for older distros due to glibc requirements

@nicowilliams
Copy link
Author

nicowilliams commented Feb 2, 2024 via email

@Dlazder
Copy link

Dlazder commented Feb 4, 2024

Same problem in ubuntu 18

@evitiello
Copy link

Anyone found a workaround for this? Or know why it started happening?

@falkTX
Copy link

falkTX commented Feb 5, 2024

the workaround is to keep using v3 actions. and it happens because github devs updated the base system where their node stack is built from.

seeing the way github has handled other issues, I expect this one to just be ignored completely.

Lastique added a commit to boostorg/scope that referenced this issue Feb 5, 2024
This fixes the deprecation warnings for actions/checkout@v3. actions/checkout@v4
is not functional because of the upstream bug:

actions/checkout#1590
Lastique added a commit to boostorg/scope that referenced this issue Feb 5, 2024
This fixes the deprecation warnings for actions/checkout@v3. actions/checkout@v4
is not functional because of the upstream bug:

actions/checkout#1590
Lastique added a commit to Lastique/atomic that referenced this issue Feb 5, 2024
This fixes the deprecation warnings for actions/checkout@v3. actions/checkout@v4
is not functional because of the upstream bug:

actions/checkout#1590
Lastique added a commit to Lastique/atomic that referenced this issue Feb 5, 2024
This fixes the deprecation warnings for actions/checkout@v3. actions/checkout@v4
is not functional because of the upstream bug:

actions/checkout#1590
Lastique added a commit to Lastique/atomic that referenced this issue Feb 5, 2024
This fixes the deprecation warnings for actions/checkout@v3. actions/checkout@v4
is not functional because of the upstream bug:

actions/checkout#1590
Lastique added a commit to boostorg/core that referenced this issue Feb 5, 2024
This fixes the deprecation warnings for actions/checkout@v3. actions/checkout@v4
is not functional because of the upstream bug:

actions/checkout#1590
Lastique added a commit to boostorg/detail that referenced this issue Feb 5, 2024
This fixes the deprecation warnings for actions/checkout@v3. actions/checkout@v4
is not functional because of the upstream bug:

actions/checkout#1590
Lastique added a commit to boostorg/filesystem that referenced this issue Feb 5, 2024
This fixes the deprecation warnings for actions/checkout@v3. actions/checkout@v4
is not functional because of the upstream bug:

actions/checkout#1590
Lastique added a commit to boostorg/integer that referenced this issue Feb 5, 2024
This fixes the deprecation warnings for actions/checkout@v3. actions/checkout@v4
is not functional because of the upstream bug:

actions/checkout#1590
Lastique added a commit to boostorg/iterator that referenced this issue Feb 5, 2024
This fixes the deprecation warnings for actions/checkout@v3. actions/checkout@v4
is not functional because of the upstream bug:

actions/checkout#1590
Lastique added a commit to boostorg/log that referenced this issue Feb 5, 2024
This fixes the deprecation warnings for actions/checkout@v3. actions/checkout@v4
is not functional because of the upstream bug:

actions/checkout#1590
Lastique added a commit to boostorg/parameter that referenced this issue Feb 5, 2024
This fixes the deprecation warnings for actions/checkout@v3. actions/checkout@v4
is not functional because of the upstream bug:

actions/checkout#1590
Lastique added a commit to boostorg/sync that referenced this issue Feb 5, 2024
This fixes the deprecation warnings for actions/checkout@v3. actions/checkout@v4
is not functional because of the upstream bug:

actions/checkout#1590
Lastique added a commit to boostorg/utility that referenced this issue Feb 5, 2024
This fixes the deprecation warnings for actions/checkout@v3. actions/checkout@v4
is not functional because of the upstream bug:

actions/checkout#1590
sergio-costas added a commit to sergio-costas/snapd-glib that referenced this issue Aug 29, 2024
The tests in Bionic fail due to a problem in nodejs. Found a
workaround at the end of actions/checkout#1590
It consists on disable using node20 and allow using an insecure
version of nodejs.
sergio-costas added a commit to canonical/snapd-glib that referenced this issue Aug 29, 2024
The tests in Bionic fail due to a problem in nodejs. Found a
workaround at the end of actions/checkout#1590
It consists on disable using node20 and allow using an insecure
version of nodejs.
@caiocsgomes
Copy link

hey team, any updates on this? It's being 9 months and this issue has been referenced in hundreds of issues/prs

@mmomtchev
Copy link

There are no updates and there won't be any. They are deprecating these releases. They allowed people to use them for a while through a special flag that was supposed to give you one last deadline extension.

I do not agree with this decision, but this is how it works. They have a legitimate need to keep the number of supported configurations down to a reasonable number.

The only compromise I see possible is for Github to allow actions to use an existing Node.js runtime in the container through a flag - just as they can use an existing git client. This would allow anyone who really needs to try running their own action in an unsupported mode - or at least to create his own more limited action that works everywhere. Because at the moment, even this is not possible.

@alecrajeev
Copy link

I ran into this bug for some CI tests and I implemented a workaround.

We basically built (but did not push) a docker image and ran the CI tests inside of the docker build. If the CI tests passed, then the docker build was successful. If the CI tests failed, then the docker build failed.

In this way we got around the node js version limitations for actions/checkout.

@mcarbonneaux
Copy link

i use container to test build on old compiler, but when use checkout action i take the error about nodejs.
it's possible to execute checkout outside the container ?

Lastique added a commit to Lastique/uuid that referenced this issue Nov 12, 2024
…rors.

GitHub actions/checkout@v3 is no longer working and v4 is incompatible with
older Linux versions due to actions/checkout#1590.
To fix this, and permanently eliminate the issue of periodic deprecation
of actions/checkout, replace it with manual downloads of git snapshots using
curl.

Additionally, fixed apt command lines that would incorrectly expand the list
of packages to install. Added options to retry on network errors to reduce
the probability of spurious CI failures. Also added git checkout parallel
jobs to potentially speed up the checkout.

This should fix CI failures with actions/checkout@v3 and eliminate GHA
deprecation warnings.
@rduque1
Copy link

rduque1 commented Nov 15, 2024

I used as workaround this step action that allows to run a container in a step: docker-run-action.

You can do the checkout with runs-on: ubuntu-latest and then use the image you want in the steps with the docker-run-action.

saghul added a commit to quickjs-ng/quickjs that referenced this issue Nov 25, 2024
The workaround to use an old Node version no longer works: actions/checkout#1590
saghul added a commit to quickjs-ng/quickjs that referenced this issue Nov 25, 2024
The workaround to use an old Node version no longer works: actions/checkout#1590
@zhouyuan
Copy link

We fixed this issue by using the checkout action on Ubuntu 20.04, and modified the tests to use docker run -v /code:/work centos:7 bash -C "xxx".
just for someone also run into this issue.

@barlesh
Copy link

barlesh commented Nov 28, 2024

We fixed this issue by using the checkout action on Ubuntu 20.04, and modified the tests to use docker run -v /code:/work centos:7 bash -C "xxx". just for someone also run into this issue.

gr8 workaround.
tested it on a sample repo of mine, you can see example
https://github.com/barlesh/workaround-gh-co-and-artifact-on-old-os

@spicy-sauce
Copy link

spicy-sauce commented Nov 28, 2024

We fixed this issue by using the checkout action on Ubuntu 20.04, and modified the tests to use docker run -v /code:/work centos:7 bash -C "xxx". just for someone also run into this issue.

gr8 workaround. tested it on a sample repo of mine, you can see example https://github.com/barlesh/workaround-gh-co-and-artifact-on-old-os

Thanks, but your example is unavailable, can you check?

@barlesh
Copy link

barlesh commented Nov 28, 2024

We fixed this issue by using the checkout action on Ubuntu 20.04, and modified the tests to use docker run -v /code:/work centos:7 bash -C "xxx". just for someone also run into this issue.

gr8 workaround. tested it on a sample repo of mine, you can see example https://github.com/barlesh/workaround-gh-co-and-artifact-on-old-os

Thanks, but your example is unavailable, can you check?

sorry, changed visibility to public

@jameslamb
Copy link

I got around it by using:

env:
  ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true

in my workflow: https://github.com/mmomtchev/hadron/blob/main/.github/workflows/os_comp.yml#L32-L33

But this too, it will stop working at some point.

It appears to me that we've reached the "some point" where this stops working. In the most recent GitHub Actions runner release, the minimum node version was bumped to Node 20:

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