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

Volta setup fails on GitHub self-hosted runner #1303

Open
scalvert opened this issue Aug 31, 2022 · 4 comments
Open

Volta setup fails on GitHub self-hosted runner #1303

scalvert opened this issue Aug 31, 2022 · 4 comments

Comments

@scalvert
Copy link
Contributor

scalvert commented Aug 31, 2022

We're trying to use Volta on a self-hosted runner image (Centos 7) by way of volta-cli/action (installs and bootstraps Volta for the repo under test). Currently, when trying to install, and specifically during the setup command, installation fails with the following error:

/runner/_work/_temp/820dc87e-b753-4c79-b5e3-f826efe2c6fe/bin/volta setup
/runner/_work/_temp/820dc87e-b753-4c79-b5e3-f826efe2c6fe/bin/volta: error while loading shared libraries: libssl.so.1.0.0: cannot open shared object file: No such file or directory

OpenSSL is installed on the system, and is a version that appears supported by Volta:

/export/apps/openssl/bin/openssl version
OpenSSL 1.0.2h  3 May 2016

Which translates into downloading:

##[debug]Downloading https://github.com/volta-cli/volta/releases/download/v1.0.8/volta-1.0.8-linux-openssl-1.0.tar.gz

and subsequently triggers the failure above.

What I've tried

  1. Verifying that libssl.so.1.0.0 is linked:

    Run whereis libssl.so.1.0.0
      whereis libssl.so.1.0.0
      shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
    ##[debug]/usr/bin/bash --noprofile --norc -e -o pipefail /runner/_work/_temp/3b327cfe-878e-48a1-8a07-0b0c164194bf.sh
    libssl.so.1.0: /usr/lib64/libssl.so.1.0.2k
  2. Noticing the linked name is different, I tried adding a symlink to the version of libssl.so.1.0.0

    ln -s /usr/lib64/libssl.so.1.0.2k libssl.so.1.0.0

Any thoughts on how to solve this, @charlespierce?

@scalvert
Copy link
Contributor Author

So it appears that the Volta action didn't support installing using the RHEL variant, and as such the version that was downloaded didn't work correctly on the self-hosted image. We've verified that the volta-1.0.8-linux-openssl-rhel.tar.gz version works.

I've opened volta-cli/action#102 to address this.

@charlespierce
Copy link
Contributor

Thanks for the follow-up @scalvert, that was going to be my first question! Medium-term, I have a PR out to swap to use a Rust-based TLS implementation that's statically-linked into the binary, so we can avoid this whole class of issues with OpenSSL: #1214

@scalvert
Copy link
Contributor Author

Oh please YES! I'll take that now, TYVM.

:)

@nifr
Copy link

nifr commented Oct 1, 2022

Update: #1214 has been merged.

☑️ Statically link to Rustls instead of using OpenSSL

It's on the main branch now and will be part of the next release.

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

3 participants