Closed twoeths closed 1 year ago
This issue does not always happen on contabo vpss machines.
The error is version
GLIBC_2.32' not found`:
ldd --version
ldd (Ubuntu GLIBC 2.31-0ubuntu9.2) 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.
but other success nodes have same GLIBC (2.31) version
Maybe those contabo VPSS are running an old version of linux?
Maybe those contabo VPSS are running an old version of linux?
@dapplion no, it's ubuntu 20.04.3, some other nodes with same OS worked
Update: confirm that v0.2.7 was built with ubuntu v22 while the node has Ubuntu v20
there's an issue with @chainsafe/blst 0.2.7
it works well if I use v1.3.x with @chainsafe/blst 0.2.6, it seems that when releasing blst we always go with latest ubuntu and it make it incompatible for not-upgraded machines
see https://github.com/ChainSafe/blst-ts/actions/runs/3706833809/jobs/6285801787
Ubuntu
22.0[4](https://github.com/ChainSafe/blst-ts/actions/runs/3706833809/jobs/6285801787#step:1:4).1
LTS
not able to get github action log of v0.2.6 https://github.com/ChainSafe/blst-ts/actions/runs/3001398317/jobs/4817458661 since it's expired
Then the pre-built files should be tagged better to ensure are built for the correct environment
found the difference between v20 ubuntu nodes
Vendor ID: GenuineIntel
CPU family: 6
Model: 79
Model name: Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz
Vendor ID: AuthenticAMD
CPU family: 23
Model: 49
Model name: AMD EPYC 7282 16-Core Processor
also not sure if it's related to https://github.com/ChainSafe/blst-ts/issues/77
blst-ts v0.2.7 has prebuilds up to modules version 108 = linux-x64-108-binding.node
, while v0.2.4 has up to modules version 102
linux-x64-102-binding.node
. That means that using v0.2.4 with an older NodeJS version will always trigger a new build.
You can check which modules version is used by each node version with
$ node -e "console.log(process.version, process.versions.modules)"
v18.12.1 108
The modules version is the C++ ABI of NodeJS. I found the mapping of ABI to NodeJS version here https://github.com/electron/node-abi/blob/main/abi_registry.json
@dapplion v0.2.6 has prebuilds up to modules version 108 too and it works fine
on the error node, it failed to testBinding
(with child process execSync, the difference between v0.2.6 and v0.2.7), that's why it did an installation
Node.js v18.12.1
Cached BLST native bindings not OK
Retrieving BLST native bindings /usr/src/lodestar/node_modules/@chainsafe/blst/prebuild/linux-x64-108-binding.node ...
node:internal/modules/cjs/loader:1243
return process.dlopen(module, path.toNamespacedPath(filename));
^
on the successfully node, if I run the install script, it's a success so no need to do the installation
node scripts/install.js
Using existing BLST native bindings from /usr/src/lodestar/node_modules/@chainsafe/blst/prebuild/linux-x64-108-binding.node
this really links to the child process invocation we added to v0.2.7 https://github.com/ChainSafe/blst-ts/pull/76
could be fixed by https://github.com/ChainSafe/blst-ts/pull/79
@dapplion v0.2.6 has prebuilds up to modules version 108 too and it works fine
Does this include arm64 devices? I remember trying to build v0.2.6 on an arm64 device and was still getting the SIGSEGV exit signal, which is why https://github.com/ChainSafe/blst-ts/pull/76 was made.
@philknows v0.2.8 is same to v0.2.7 but we use ubuntu 20.04 instead of ubuntu 22.04 to generate binding files
Describe the bug
Got this error when building lodestar from source
Expected behavior
No error