DataDog / dd-trace-js

JavaScript APM Tracer
https://docs.datadoghq.com/tracing/
Other
647 stars 306 forks source link

dd-pprof will not function on Centos 7 systems due to using an image with newer (and incompatible) version of libstdc++ library to build #2410

Closed theJC closed 2 years ago

theJC commented 2 years ago

Im unsure what version of dd-pprof changed what version of glibc it was being built with, but previous versions of dd-trace-js were working successfully when enabling profiling, but today as I tried with dd-trace 2.15.0, it no longer works with the error Error: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found

Hopefully this is a simple change to use same solution as https://github.com/DataDog/dd-trace-js/issues/2111 to build the profiler code. Can we get the dd-pprof build to be adjusted in the same way?

Expected behaviour datadog profiling will work on Centos7 systems.

Actual behaviour Error: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /xxxxxxxxx/node_modules/@datadog/pprof/prebuilds/linux-x64/node-93.node) at Object.Module._extensions..node (node:internal/modules/cjs/loader:1210:18) at Module.load (node:internal/modules/cjs/loader:1004:32) at Function.Module._load (node:internal/modules/cjs/loader:839:12) at Module.require (node:internal/modules/cjs/loader:1028:19) at Module.Hook.Module.require (/xxxxxxxxxxx/node_modules/dd-trace/packages/dd-trace/src/ritm.js:72:33) at require (node:internal/modules/cjs/helpers:102:18) at load (/xxxxxxxxxxxxxxxh/node_modules/node-gyp-build/index.js:19:10) at Object. (/xxxxxxxxxxxxxxx/node_modules/@datadog/pprof/out/src/cpu-profiler-bindings.js:21:18) at Module._compile (node:internal/modules/cjs/loader:1126:14) at Object.Module._extensions..js (node:internal/modules/cjs/loader:1180:10) { code: 'ERR_DLOPEN_FAILED' }

Steps to reproduce

Environment

https://github.com/DataDog/dd-trace-js/issues/2111

rochdev commented 2 years ago

@Qard Wasn't the last pprof release after the prebuildify action was updated?

Qard commented 2 years ago

Seems so. Last build was Aug 4. Last change to prebuildify was Aug 3. Not sure why that would be failing then. 🤔

theJC commented 2 years ago

Bah, I think I may have lied to you, this might have actually been with v2.12.1. Checking and verifying with a newer version.

theJC commented 2 years ago

Apologies. that was it. Bad library publish internally didn't bump the version up as I had expected.

Qard commented 2 years ago

No worries. Glad you figured it out. :)