Node.js v18 prebuilds should be built on agent with glibc 2.28

Description

Currently our linux x64 prebuilds are built on an Ubuntu20 agent. This is problematic for RHEL8 systems as they have glibc 2.28 (min required for Node.js v18). RHEL8 users will see the error below. Fix is to use our Centos8 agents to build the linux x64 prebuilds.

Ubuntu20 agents:

/lib/x86_64-linux-gnu/libc.so.6 GNU C Library (Ubuntu GLIBC 2.31-0ubuntu9.9) stable release version 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. Compiled by GNU CC version 9.4.0. libc ABIs: UNIQUE IFUNC ABSOLUTE For bug reporting instructions, please see: <https://bugs.launchpad.net/ubuntu/+source/glibc/+bugs>.

RHEL 8 glibc:

/lib64/libc.so.6 GNU C Library (GNU libc) stable release version 2.28. Copyright (C) 2018 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. Compiled by GNU CC version 8.5.0 20210514 (Red Hat 8.5.0-18). libc ABIs: UNIQUE IFUNC ABSOLUTE For bug reporting instructions, please see: <http://www.gnu.org/software/libc/bugs.html>.

RHEL 8 error:

node -p "JSON.parse(require('couchbase').cbppMetadata)" node:internal/modules/cjs/loader:1338 return process.dlopen(module, path.toNamespacedPath(filename)); ^ Error: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /home/ec2-user/node_modules/@couchbase/couchbase-linux-x64-openssl3/couchbase-v4.2.5-napi-v6-linux-x64-openssl3.node) at Module._extensions..node (node:internal/modules/cjs/loader:1338:18) at Module.load (node:internal/modules/cjs/loader:1117:32) at Module._load (node:internal/modules/cjs/loader:958:12) at Module.require (node:internal/modules/cjs/loader:1141:19) at require (node:internal/modules/cjs/helpers:110:18) at Object.loadPrebuild (/home/ec2-user/node_modules/couchbase/scripts/prebuilds.js:119:10) at Object.<anonymous> (/home/ec2-user/node_modules/couchbase/dist/binding.js:161:49) at Module._compile (node:internal/modules/cjs/loader:1254:14) at Module._extensions..js (node:internal/modules/cjs/loader:1308:10) at Module.load (node:internal/modules/cjs/loader:1117:32) { code: 'ERR_DLOPEN_FAILED' } Node.js v18.14.2

Environment

None

Gerrit Reviews

None

Release Notes Description

None

Attachments

1
  • 01 Aug 2023, 10:33 PM

Activity

Show:

Jared Casey August 7, 2023 at 3:09 PM

Linux x64 prebuilds now built on almalinux8 agents.

Jared Casey August 1, 2023 at 10:40 PM

Jenkins

Successful release-build-pipeline showing we are picking up the correct binary w/ glibc 2.28. Also attached the log (

) as we do not keep Jenkins runs indefinitely.

RHEL 8 Testing

Tested published 4.2.6-dev.1 package on EC2 RHEL8 instance.

Node.js v20

[ec2-user@ip-172-31-8-76 couchnode-v20]$ node --version v20.5.0 [ec2-user@ip-172-31-8-76 couchnode-v20]$ npm install couchbase@4.2.6-dev.1 added 74 packages, and audited 75 packages in 5s 5 packages are looking for funding run `npm fund` for details found 0 vulnerabilities npm notice npm notice New patch version of npm available! 9.8.0 -> 9.8.1 npm notice Changelog: https://github.com/npm/cli/releases/tag/v9.8.1 npm notice Run npm install -g npm@9.8.1 to update! npm notice [ec2-user@ip-172-31-8-76 couchnode-v20]$ npm list --depth 1 couchnode-v20@1.0.0 /tmp/couchnode-v20 └─┬ couchbase@4.2.6-dev.1 ├── UNMET OPTIONAL DEPENDENCY @couchbase/couchbase-darwin-arm64-openssl1@4.2.6-dev.1 ├── UNMET OPTIONAL DEPENDENCY @couchbase/couchbase-darwin-arm64-openssl3@4.2.6-dev.1 ├── UNMET OPTIONAL DEPENDENCY @couchbase/couchbase-darwin-x64-openssl1@4.2.6-dev.1 ├── UNMET OPTIONAL DEPENDENCY @couchbase/couchbase-darwin-x64-openssl3@4.2.6-dev.1 ├── UNMET OPTIONAL DEPENDENCY @couchbase/couchbase-linux-arm64-openssl1@4.2.6-dev.1 ├── UNMET OPTIONAL DEPENDENCY @couchbase/couchbase-linux-arm64-openssl3@4.2.6-dev.1 ├── UNMET OPTIONAL DEPENDENCY @couchbase/couchbase-linux-x64-openssl1@4.2.6-dev.1 ├── @couchbase/couchbase-linux-x64-openssl3@4.2.6-dev.1 ├── UNMET OPTIONAL DEPENDENCY @couchbase/couchbase-linuxmusl-x64-openssl1@4.2.6-dev.1 ├── @couchbase/couchbase-linuxmusl-x64-openssl3@4.2.6-dev.1 ├── UNMET OPTIONAL DEPENDENCY @couchbase/couchbase-win32-x64-openssl1@4.2.6-dev.1 ├── UNMET OPTIONAL DEPENDENCY @couchbase/couchbase-win32-x64-openssl3@4.2.6-dev.1 ├── cmake-js@7.2.1 └── node-addon-api@5.1.0 [ec2-user@ip-172-31-8-76 couchnode-v20]$ node -p "JSON.parse(require('couchbase').cbppMetadata)" { __cplusplus: '201703', asio: '1.24.0', build_timestamp: '2023-08-01 19:45:31', cc: 'GNU 12.2.1', cmake_build_type: 'RelWithDebInfo', cmake_version: '3.24.2', compile_definitions: 'HAVE_BACKTRACE=1;HAVE_DLADDR=1;_GNU_SOURCE=1;SPDLOG_COMPILED_LIB;SPDLOG_FMT_EXTERNAL', compile_features: 'cxx_std_17;cxx_variadic_templates', compile_flags: '', compile_options: '-fdiagnostics-color=always;-ggdb3;-static-libgcc;-static-libstdc++', cpu: 'x86_64', cxx: 'GNU 12.2.1', fmt: '8.800.1', http_parser: '2.9.4', libc: 'glibc 2.28', link_depends: '', link_flags: '', link_libraries: 'project_options;project_warnings;fmt::fmt;spdlog::spdlog;snappy;jsonsl;hdr_histogram_static;couchbase_backtrace;couchbase_logger;couchbase_platform;couchbase_meta;couchbase_crypto;couchbase_sasl;couchbase_tracing;couchbase_metrics;http_parser', link_options: '', mozilla_ca_bundle_date: 'Tue May 30 03:12:04 2023 GMT', mozilla_ca_bundle_embedded: true, mozilla_ca_bundle_sha256: '5fadcae90aa4ae041150f8e2d26c37d980522cdb49f923fc1e1b5eb8d74e71ad', mozilla_ca_bundle_size: 137, openssl_config_dir: '/etc/ssl', openssl_crypto_interface_imported_location: '', openssl_crypto_interface_include_directories: '', openssl_crypto_interface_link_libraries: '', openssl_default_cert_dir: '/etc/ssl/certs', openssl_default_cert_dir_env: 'SSL_CERT_DIR', openssl_default_cert_file: '/etc/ssl/cert.pem', openssl_default_cert_file_env: 'SSL_CERT_FILE', openssl_headers: 'OpenSSL 3.0.9+quic 30 May 2023', openssl_pkg_config_interface_include_directories: '', openssl_pkg_config_interface_link_libraries: '', openssl_runtime: 'OpenSSL 3.0.9+quic 30 May 2023', openssl_ssl_imported_location: '', openssl_ssl_interface_include_directories: '', openssl_ssl_interface_link_libraries: '', platform: 'Linux-4.15.0-66-generic', platform_name: 'Linux', platform_version: '4.15.0-66-generic', post_linked_openssl: 'ON', revision: 'a46a5e1ecf49d2717b9f8fd8aa6ad28d83693d45', semver: '1.0.0-dp.6+17.a46a5e1', snappy: '1.1.10', snapshot: false, spdlog: '1.9.2', static_openssl: false, static_stdlib: true, txns_forward_compat_extensions: 'TI,MO,BM,QU,SD,BF3787,BF3705,BF3838,RC,UA,CO,BF3791,CM,SI,QC,IX,TS', txns_forward_compat_protocol_version: '2.0', version: '1.0.0', version_build: 3357, version_major: 1, version_minor: 0, version_patch: 0 }

Node.js v18

[ec2-user@ip-172-31-8-76 couchnode-v18]$ node --version v18.17.0 [ec2-user@ip-172-31-8-76 couchnode-v18]$ npm install couchbase@4.2.6-dev.1 added 74 packages, and audited 75 packages in 5s 5 packages are looking for funding run `npm fund` for details found 0 vulnerabilities [ec2-user@ip-172-31-8-76 couchnode-v18]$ npm list --depth 1 couchnode-v18@1.0.0 /tmp/couchnode-v18 └─┬ couchbase@4.2.6-dev.1 ├── UNMET OPTIONAL DEPENDENCY @couchbase/couchbase-darwin-arm64-openssl1@4.2.6-dev.1 ├── UNMET OPTIONAL DEPENDENCY @couchbase/couchbase-darwin-arm64-openssl3@4.2.6-dev.1 ├── UNMET OPTIONAL DEPENDENCY @couchbase/couchbase-darwin-x64-openssl1@4.2.6-dev.1 ├── UNMET OPTIONAL DEPENDENCY @couchbase/couchbase-darwin-x64-openssl3@4.2.6-dev.1 ├── UNMET OPTIONAL DEPENDENCY @couchbase/couchbase-linux-arm64-openssl1@4.2.6-dev.1 ├── UNMET OPTIONAL DEPENDENCY @couchbase/couchbase-linux-arm64-openssl3@4.2.6-dev.1 ├── UNMET OPTIONAL DEPENDENCY @couchbase/couchbase-linux-x64-openssl1@4.2.6-dev.1 ├── @couchbase/couchbase-linux-x64-openssl3@4.2.6-dev.1 ├── UNMET OPTIONAL DEPENDENCY @couchbase/couchbase-linuxmusl-x64-openssl1@4.2.6-dev.1 ├── @couchbase/couchbase-linuxmusl-x64-openssl3@4.2.6-dev.1 ├── UNMET OPTIONAL DEPENDENCY @couchbase/couchbase-win32-x64-openssl1@4.2.6-dev.1 ├── UNMET OPTIONAL DEPENDENCY @couchbase/couchbase-win32-x64-openssl3@4.2.6-dev.1 ├── cmake-js@7.2.1 └── node-addon-api@5.1.0 [ec2-user@ip-172-31-8-76 couchnode-v18]$ node -p "JSON.parse(require('couchbase').cbppMetadata)" { __cplusplus: '201703', asio: '1.24.0', build_timestamp: '2023-08-01 19:45:31', cc: 'GNU 12.2.1', cmake_build_type: 'RelWithDebInfo', cmake_version: '3.24.2', compile_definitions: 'HAVE_BACKTRACE=1;HAVE_DLADDR=1;_GNU_SOURCE=1;SPDLOG_COMPILED_LIB;SPDLOG_FMT_EXTERNAL', compile_features: 'cxx_std_17;cxx_variadic_templates', compile_flags: '', compile_options: '-fdiagnostics-color=always;-ggdb3;-static-libgcc;-static-libstdc++', cpu: 'x86_64', cxx: 'GNU 12.2.1', fmt: '8.800.1', http_parser: '2.9.4', libc: 'glibc 2.28', link_depends: '', link_flags: '', link_libraries: 'project_options;project_warnings;fmt::fmt;spdlog::spdlog;snappy;jsonsl;hdr_histogram_static;couchbase_backtrace;couchbase_logger;couchbase_platform;couchbase_meta;couchbase_crypto;couchbase_sasl;couchbase_tracing;couchbase_metrics;http_parser', link_options: '', mozilla_ca_bundle_date: 'Tue May 30 03:12:04 2023 GMT', mozilla_ca_bundle_embedded: true, mozilla_ca_bundle_sha256: '5fadcae90aa4ae041150f8e2d26c37d980522cdb49f923fc1e1b5eb8d74e71ad', mozilla_ca_bundle_size: 137, openssl_config_dir: '/etc/ssl', openssl_crypto_interface_imported_location: '', openssl_crypto_interface_include_directories: '', openssl_crypto_interface_link_libraries: '', openssl_default_cert_dir: '/etc/ssl/certs', openssl_default_cert_dir_env: 'SSL_CERT_DIR', openssl_default_cert_file: '/etc/ssl/cert.pem', openssl_default_cert_file_env: 'SSL_CERT_FILE', openssl_headers: 'OpenSSL 3.0.9+quic 30 May 2023', openssl_pkg_config_interface_include_directories: '', openssl_pkg_config_interface_link_libraries: '', openssl_runtime: 'OpenSSL 3.0.9+quic 30 May 2023', openssl_ssl_imported_location: '', openssl_ssl_interface_include_directories: '', openssl_ssl_interface_link_libraries: '', platform: 'Linux-4.15.0-66-generic', platform_name: 'Linux', platform_version: '4.15.0-66-generic', post_linked_openssl: 'ON', revision: 'a46a5e1ecf49d2717b9f8fd8aa6ad28d83693d45', semver: '1.0.0-dp.6+17.a46a5e1', snappy: '1.1.10', snapshot: false, spdlog: '1.9.2', static_openssl: false, static_stdlib: true, txns_forward_compat_extensions: 'TI,MO,BM,QU,SD,BF3787,BF3705,BF3838,RC,UA,CO,BF3791,CM,SI,QC,IX,TS', txns_forward_compat_protocol_version: '2.0', version: '1.0.0', version_build: 3357, version_major: 1, version_minor: 0, version_patch: 0 }

Node.js v16

[ec2-user@ip-172-31-8-76 couchnode-v16]$ node --version v16.20.1 [ec2-user@ip-172-31-8-76 couchnode-v16]$ npm install couchbase@4.2.6-dev.1 added 74 packages, and audited 75 packages in 4s 5 packages are looking for funding run `npm fund` for details found 0 vulnerabilities [ec2-user@ip-172-31-8-76 couchnode-v16]$ npm list --depth 1 couchnode-v16@1.0.0 /tmp/couchnode-v16 └─┬ couchbase@4.2.6-dev.1 ├── UNMET OPTIONAL DEPENDENCY @couchbase/couchbase-darwin-arm64-openssl1@4.2.6-dev.1 ├── UNMET OPTIONAL DEPENDENCY @couchbase/couchbase-darwin-arm64-openssl3@4.2.6-dev.1 ├── UNMET OPTIONAL DEPENDENCY @couchbase/couchbase-darwin-x64-openssl1@4.2.6-dev.1 ├── UNMET OPTIONAL DEPENDENCY @couchbase/couchbase-darwin-x64-openssl3@4.2.6-dev.1 ├── UNMET OPTIONAL DEPENDENCY @couchbase/couchbase-linux-arm64-openssl1@4.2.6-dev.1 ├── UNMET OPTIONAL DEPENDENCY @couchbase/couchbase-linux-arm64-openssl3@4.2.6-dev.1 ├── @couchbase/couchbase-linux-x64-openssl1@4.2.6-dev.1 ├── UNMET OPTIONAL DEPENDENCY @couchbase/couchbase-linux-x64-openssl3@4.2.6-dev.1 ├── @couchbase/couchbase-linuxmusl-x64-openssl1@4.2.6-dev.1 ├── UNMET OPTIONAL DEPENDENCY @couchbase/couchbase-linuxmusl-x64-openssl3@4.2.6-dev.1 ├── UNMET OPTIONAL DEPENDENCY @couchbase/couchbase-win32-x64-openssl1@4.2.6-dev.1 ├── UNMET OPTIONAL DEPENDENCY @couchbase/couchbase-win32-x64-openssl3@4.2.6-dev.1 ├── cmake-js@7.2.1 └── node-addon-api@5.1.0 [ec2-user@ip-172-31-8-76 couchnode-v16]$ node -p "JSON.parse(require('couchbase').cbppMetadata)" { __cplusplus: '201703', asio: '1.24.0', build_timestamp: '2023-08-01 19:32:49', cc: 'GNU 9.3.1', cmake_build_type: 'RelWithDebInfo', cmake_version: '3.21.4', compile_definitions: 'HAVE_BACKTRACE=1;HAVE_DLADDR=1;_GNU_SOURCE=1;SPDLOG_COMPILED_LIB;SPDLOG_FMT_EXTERNAL', compile_features: 'cxx_std_17;cxx_variadic_templates', compile_flags: '', compile_options: '-fdiagnostics-color=always;-ggdb3;-static-libgcc;-static-libstdc++', cpu: 'x86_64', cxx: 'GNU 9.3.1', fmt: '8.800.1', http_parser: '2.9.4', libc: 'glibc 2.17', link_depends: '', link_flags: '', link_libraries: 'project_options;project_warnings;fmt::fmt;spdlog::spdlog;snappy;jsonsl;hdr_histogram_static;couchbase_backtrace;couchbase_logger;couchbase_platform;couchbase_meta;couchbase_crypto;couchbase_sasl;couchbase_tracing;couchbase_metrics;http_parser', link_options: '', mozilla_ca_bundle_date: 'Tue May 30 03:12:04 2023 GMT', mozilla_ca_bundle_embedded: true, mozilla_ca_bundle_sha256: '5fadcae90aa4ae041150f8e2d26c37d980522cdb49f923fc1e1b5eb8d74e71ad', mozilla_ca_bundle_size: 137, openssl_config_dir: '/etc/ssl', openssl_crypto_interface_imported_location: '', openssl_crypto_interface_include_directories: '', openssl_crypto_interface_link_libraries: '', openssl_default_cert_dir: '/etc/ssl/certs', openssl_default_cert_dir_env: 'SSL_CERT_DIR', openssl_default_cert_file: '/etc/ssl/cert.pem', openssl_default_cert_file_env: 'SSL_CERT_FILE', openssl_headers: 'OpenSSL 1.1.1q+quic 5 Jul 2022', openssl_pkg_config_interface_include_directories: '', openssl_pkg_config_interface_link_libraries: '', openssl_runtime: 'OpenSSL 1.1.1u+quic 30 May 2023', openssl_ssl_imported_location: '', openssl_ssl_interface_include_directories: '', openssl_ssl_interface_link_libraries: '', platform: 'Linux-4.15.0-66-generic', platform_name: 'Linux', platform_version: '4.15.0-66-generic', post_linked_openssl: 'ON', revision: 'a46a5e1ecf49d2717b9f8fd8aa6ad28d83693d45', semver: '1.0.0-dp.6+17.a46a5e1', snappy: '1.1.10', snapshot: false, spdlog: '1.9.2', static_openssl: false, static_stdlib: true, txns_forward_compat_extensions: 'TI,MO,BM,QU,SD,BF3787,BF3705,BF3838,RC,UA,CO,BF3791,CM,SI,QC,IX,TS', txns_forward_compat_protocol_version: '2.0', version: '1.0.0', version_build: 3357, version_major: 1, version_minor: 0, version_patch: 0 }

Jared Casey August 1, 2023 at 10:30 PM

- Still have a loooong way to go IHMO slightly smiling face

Matt Ingenthron July 28, 2023 at 9:26 PM

Looks like you're turning into a linking expert .

Jared Casey July 28, 2023 at 8:49 PM

With updated binary from almalinux8 agents:

[ec2-user@ip-172-31-15-6 couchnode-test-v18]$ node --version v18.17.0 [ec2-user@ip-172-31-15-6 couchnode-test-v18]$ node -p "JSON.parse(require('couchbase').cbppMetadata)" { __cplusplus: '201703', asio: '1.24.0', build_timestamp: '2023-07-27 17:16:51', cc: 'GNU 12.2.1', cmake_build_type: 'RelWithDebInfo', cmake_version: '3.24.2', compile_definitions: 'HAVE_BACKTRACE=1;HAVE_DLADDR=1;_GNU_SOURCE=1;SPDLOG_COMPILED_LIB;SPDLOG_FMT_EXTERNAL', compile_features: 'cxx_std_17;cxx_variadic_templates', compile_flags: '', compile_options: '-fdiagnostics-color=always;-ggdb3;-static-libgcc;-static-libstdc++', cpu: 'x86_64', cxx: 'GNU 12.2.1', fmt: '8.800.1', http_parser: '2.9.4', libc: 'glibc 2.28', link_depends: '', link_flags: '', link_libraries: 'project_options;project_warnings;fmt::fmt;spdlog::spdlog;snappy;jsonsl;hdr_histogram_static;couchbase_backtrace;couchbase_logger;couchbase_platform;couchbase_meta;couchbase_crypto;couchbase_sasl;couchbase_tracing;couchbase_metrics;http_parser', link_options: '', mozilla_ca_bundle_date: 'Tue May 30 03:12:04 2023 GMT', mozilla_ca_bundle_embedded: true, mozilla_ca_bundle_sha256: '5fadcae90aa4ae041150f8e2d26c37d980522cdb49f923fc1e1b5eb8d74e71ad', mozilla_ca_bundle_size: 137, openssl_config_dir: '/etc/ssl', openssl_crypto_interface_imported_location: '', openssl_crypto_interface_include_directories: '', openssl_crypto_interface_link_libraries: '', openssl_default_cert_dir: '/etc/ssl/certs', openssl_default_cert_dir_env: 'SSL_CERT_DIR', openssl_default_cert_file: '/etc/ssl/cert.pem', openssl_default_cert_file_env: 'SSL_CERT_FILE', openssl_headers: 'OpenSSL 3.0.8+quic 7 Feb 2023', openssl_pkg_config_interface_include_directories: '', openssl_pkg_config_interface_link_libraries: '', openssl_runtime: 'OpenSSL 3.0.9+quic 30 May 2023', openssl_ssl_imported_location: '', openssl_ssl_interface_include_directories: '', openssl_ssl_interface_link_libraries: '', platform: 'Linux-4.15.0-66-generic', platform_name: 'Linux', platform_version: '4.15.0-66-generic', post_linked_openssl: 'ON', revision: 'a46a5e1ecf49d2717b9f8fd8aa6ad28d83693d45', semver: '1.0.0-dp.6+17.a46a5e1', snappy: '1.1.10', snapshot: false, spdlog: '1.9.2', static_openssl: false, static_stdlib: true, txns_forward_compat_extensions: 'TI,MO,BM,QU,SD,BF3787,BF3705,BF3838,RC,UA,CO,BF3791,CM,SI,QC,IX,TS', txns_forward_compat_protocol_version: '2.0', version: '1.0.0', version_build: 3342, version_major: 1, version_minor: 0, version_patch: 0 }
Resolved
Pinned fields
Click on the next to a field label to start pinning.

Details

Assignee

Reporter

Story Points

Sprint

Fix versions

Priority

Instabug

Open Instabug

PagerDuty

Sentry

Zendesk Support

Created July 21, 2023 at 5:32 PM
Updated August 7, 2023 at 3:09 PM
Resolved August 7, 2023 at 3:09 PM
Instabug