Volta setup fails on GitHub self-hosted runner
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
-
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 -
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?
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 https://github.com/volta-cli/action/pull/102 to address this.
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: https://github.com/volta-cli/volta/pull/1214
Oh please YES! I'll take that now, TYVM.
:)
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.