Node.js v18 prebuilds should be built on agent with glibc 2.28
Description
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
@Matt Ingenthron - Still have a loooong way to go IHMO
Matt Ingenthron July 28, 2023 at 9:26 PM
Looks like you're turning into a linking expert @Jared Casey.
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
Details
Assignee
Jared Casey
Jared CaseyReporter
Jared Casey
Jared CaseyStory Points
2
Sprint
None
Fix versions
Priority
Instabug
Open Instabug
PagerDuty
PagerDuty Incident
PagerDuty

PagerDuty Incident
Sentry
Linked Issues
Sentry
Linked Issues
Zendesk Support
Linked Tickets
Zendesk Support

Linked Tickets
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
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