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

checkout does not work on centos6 job container #337

Open
chipitsine opened this issue Feb 16, 2020 · 13 comments
Open

checkout does not work on centos6 job container #337

chipitsine opened this issue Feb 16, 2020 · 13 comments
Labels
enhancement New feature or request future Feature work that we haven't prioritized Runner ❤️ Container

Comments

@chipitsine
Copy link

I'm trying to run workflows on custom docker images.

here's my workflow:

https://github.com/chipitsine/haproxy/blob/master/.github/workflows/centos-6.yml

here's error

https://github.com/chipitsine/haproxy/runs/449056642

Run actions/checkout@master
/usr/bin/docker exec  1057e0a52fb92dd983110f3493f46696ec0ba0293830256d3b1c11cac4da948d sh -c "cat /etc/*release | grep ^ID"
Running JavaScript Action with default external tool: node12
/__e/node12/bin/node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by /__e/node12/bin/node)
/__e/node12/bin/node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by /__e/node12/bin/node)
/__e/node12/bin/node: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.5' not found (required by /__e/node12/bin/node)
/__e/node12/bin/node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /__e/node12/bin/node)
/__e/node12/bin/node: /lib64/libc.so.6: version `GLIBC_2.16' not found (required by /__e/node12/bin/node)
/__e/node12/bin/node: /lib64/libc.so.6: version `GLIBC_2.17' not found (required by /__e/node12/bin/node)
/__e/node12/bin/node: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /__e/node12/bin/node)
##[error]Node run failed with exit code 1
@ericsciple ericsciple transferred this issue from actions/checkout Feb 19, 2020
@TingluoHuang
Copy link
Member

looks like node.js 12 requires glibc 2.17+ https://github.com/nodejs/node/blob/v12.x/BUILDING.md#platform-list

centos 6 only has glibc 2.12 https://centos.pkgs.org/6/centos-x86_64/glibc-2.12-1.212.el6.x86_64.rpm.html

we needs to use node.js 10 for centos 6 since node 10 only requires glibc 2.12
or we just doc we don't support centos 6 for javascript actions?

@bryanmacfarlane, @chrispat thoughts?

@TingluoHuang TingluoHuang added the bug Something isn't working label Feb 24, 2020
@TingluoHuang TingluoHuang changed the title checkout does not work on centos6 checkout does not work on centos6 job container Feb 24, 2020
@ericsciple
Copy link
Collaborator

i ran into issues with out of memory problems using node 10 when launching external processes. I burned many hours trying to reduce memory before exec, but nothing worked and amount of memory process was using seemed small anyway (couple megabytes iirc) so limitation didnt make sense. I hit the issue in the setup-node repo running unit tests, and eventually switched to node 12 since that is what runner uses anyway.

@silvanocerza
Copy link

I've run into this problem too.
Node.js v12.16.0 and greater can actually be compiled on CentOS 6; you need to use devtoolset-6 and set LDFLAGS=-lrt when compiling as mentioned here.

To compile you will also need to install Python 2.7 since CentOS 6 still uses 2.6.

I actually created a Docker image that builds it thinking the runner would detect it but I later noticed that's hardcoded.

@bryanmacfarlane
Copy link
Member

The runner carries a version of node12 as a script runtime for javascript actions. We can't be variable to what's on the end users machine. Node in the path is for running user's steps / code.

@bryanmacfarlane
Copy link
Member

we also currently don't support redhat6 and centos6. AZP had to do another build of the runner and so far in actions, we've refrained from that. Increasing platform support is tracked in another issue.

@bryanmacfarlane bryanmacfarlane added enhancement New feature or request and removed bug Something isn't working labels Mar 2, 2020
@bryanmacfarlane
Copy link
Member

It's feature work to support redhat / centos 6

@silvanocerza
Copy link

@chipitsine Try to use actions/checkout@v1, I've just tried it on CentOS 6 and it works since it doesn't require Node. actions/upload-artifact and actions/download-artifact also work.

Those actions specify runs.plugin on their action.yml and they are run directly by the runner and don't need other dependencies.

It's not the best solution but for now it will do I guess.

@snnn
Copy link

snnn commented Aug 6, 2020

I've run into this problem too.
Node.js v12.16.0 and greater can actually be compiled on CentOS 6; you need to use devtoolset-6 and set LDFLAGS=-lrt when compiling as mentioned here.

To compile you will also need to install Python 2.7 since CentOS 6 still uses 2.6.

Yes, I can confirm it works.

@snnn
Copy link

snnn commented Aug 6, 2020

we also currently don't support redhat6 and centos6. AZP had to do another build of the runner and so far in actions, we've refrained from that. Increasing platform support is tracked in another issue.

Python's official build environment(manylinux1 and manylinux2010) are still centos5 and centos 6. So they have a super large user base.

@alex
Copy link

alex commented Nov 16, 2020

This also impacts actions/upload-artifact (specifically v2, where they moved it to be implemented in typescript)

@nikola-jokic
Copy link
Contributor

Hi @alex and @chipitsine,

Are you still seeing this issue? It has been a long time, but I just wanted to confirm if this issue is resolved, or do you need any assistance with this issue on newer releases?

@alex
Copy link

alex commented Feb 4, 2022

@nikola-jokic As far as I know, yes. We're pinned on @v1 until we drop support for manylinux2010 (which is a python distribution format that uses centos6 as its build environment): https://github.com/pyca/cryptography/blob/main/.github/workflows/wheel-builder.yml#L39

@ahvigil
Copy link

ahvigil commented Aug 17, 2022

also running into this trying to build python wheels on manylinux containers- those containers are intentionally built with older versions of glibc, etc because trying to build wheels on more modern images gives errors such as

error: cannot repair X to "manylinux2010_x86_64" ABI because of the presence of too-recent versioned symbols. You'll need to compile the wheel on an older toolchain.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request future Feature work that we haven't prioritized Runner ❤️ Container
Projects
None yet
Development

No branches or pull requests

11 participants