getsentry / profiling-node

The code for this repo now lives in https://github.com/getsentry/sentry-javascript/tree/develop/packages/profiling-node
MIT License
29 stars 10 forks source link

Cannot install 1.3.3 on docker node:20-alpine image #233

Closed XcydeDev closed 10 months ago

XcydeDev commented 10 months ago

Is there an existing issue for this?

SDK Version

1.3.3

What environment is your node script running in?

Docker container with node:20-alpine

Are you using an alpine based docker image?

Does the failure occur on a remote environment only?

Are you using alpine based node docker image. If so, what version are you using? e.g node:16-alpine3.12

node:20-alpine

If you are using alpine, have you tried using latest version of alpine or (currently alpine3.16 or alpine3.17)?

Have you tried using the latest minor version of node (currently 16.20 or 18.15)?

If you run npm install --verbose --foreground-scripts @sentry/profiling-node in an empty directory, what is the output?

  [3/3] RUN npm install --verbose --foreground-scripts @sentry/profiling-node
0.590 npm verb cli /usr/local/bin/node /usr/local/bin/npm
0.590 npm info using npm@10.2.4
0.591 npm info using node@v20.11.0
0.591 npm verb title npm install @sentry/profiling-node
0.591 npm verb argv "install" "--loglevel" "verbose" "--foreground-scripts" "@sentry/profiling-node"
0.591 npm verb logfile logs-max:10 dir:/root/.npm/_logs/2024-01-11T09_41_50_503Z-
0.597 npm verb logfile /root/.npm/_logs/2024-01-11T09_41_50_503Z-debug-0.log
 1.078 npm http fetch GET 200 https://registry.npmjs.org/npm 267ms (cache miss)
 2.497 npm http fetch GET 200 https://registry.npmjs.org/@sentry%2fprofiling-node 1636ms (cache miss)
 2.595 npm http fetch GET 200 https://registry.npmjs.org/@sentry%2fnode 96ms (cache miss)
 2.661 npm http fetch GET 200 https://registry.npmjs.org/detect-libc 56ms (cache miss)
 2.663 npm http fetch GET 200 https://registry.npmjs.org/node-abi 57ms (cache miss)
 2.768 npm http fetch GET 200 https://registry.npmjs.org/https-proxy-agent 162ms (cache miss)
 2.798 npm http fetch GET 200 https://registry.npmjs.org/@sentry%2ftypes 191ms (cache miss)
 2.803 npm http fetch GET 200 https://registry.npmjs.org/@sentry%2fcore 197ms (cache miss)
 2.817 npm http fetch GET 200 https://registry.npmjs.org/@sentry%2futils 210ms (cache miss)
 3.668 npm http fetch GET 200 https://registry.npmjs.org/@sentry-internal%2ftracing 1063ms (cache miss)
 3.714 npm http fetch GET 200 https://registry.npmjs.org/agent-base 38ms (cache miss)
 3.720 npm http fetch GET 200 https://registry.npmjs.org/debug 44ms (cache miss)
 3.793 npm http fetch GET 200 https://registry.npmjs.org/semver 69ms (cache miss)
 3.849 npm http fetch GET 200 https://registry.npmjs.org/ms 52ms (cache miss)
 3.892 npm http fetch GET 200 https://registry.npmjs.org/lru-cache 41ms (cache miss)
 3.960 npm http fetch GET 200 https://registry.npmjs.org/yallist 65ms (cache miss)
 4.052 npm http fetch GET 200 https://registry.npmjs.org/node-abi/-/node-abi-3.54.0.tgz 76ms (cache miss)
 4.052 npm http fetch GET 200 https://registry.npmjs.org/ms/-/ms-2.1.2.tgz 77ms (cache miss)
 4.052 npm http fetch GET 200 https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz 78ms (cache miss)
 4.053 npm http fetch GET 200 https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz 77ms (cache miss)
 4.053 npm http fetch GET 200 https://registry.npmjs.org/debug/-/debug-4.3.4.tgz 77ms (cache miss)
 4.054 npm http fetch GET 200 https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz 80ms (cache miss)
 4.058 npm http fetch GET 200 https://registry.npmjs.org/semver/-/semver-7.5.4.tgz 83ms (cache miss)
 4.145 npm http fetch GET 200 https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz 168ms (cache miss)
 4.146 npm http fetch GET 200 https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz 169ms (cache miss)
 4.254 npm http fetch GET 200 https://registry.npmjs.org/@sentry/types/-/types-7.93.0.tgz 275ms (cache miss)
 4.336 npm http fetch GET 200 https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.93.0.tgz 357ms (cache miss)
 4.339 npm http fetch GET 200 https://registry.npmjs.org/@sentry/utils/-/utils-7.93.0.tgz 361ms (cache miss)
 4.342 npm http fetch GET 200 https://registry.npmjs.org/@sentry/core/-/core-7.93.0.tgz 363ms (cache miss)
 4.965 npm http fetch GET 200 https://registry.npmjs.org/@sentry/profiling-node/-/profiling-node-1.3.3.tgz 985ms (cache miss)
 4.976 npm http fetch GET 200 https://registry.npmjs.org/@sentry/node/-/node-7.93.0.tgz 997ms (cache miss)
 4.980 npm info run @sentry/profiling-node@1.3.3 install node_modules/@sentry/profiling-node node scripts/check-build.mjs
 4.980
 4.980 > @sentry/profiling-node@1.3.3 install
 4.980 > node scripts/check-build.mjs
 4.980
 5.053 @sentry/profiling-node: Precompiled binary found, attempting to load /usr/src/build/node_modules/@sentry/profiling-node/lib/sentry_cpu_profiler-linux-x64-musl-115.node
 5.061 @sentry/profiling-node: Precompiled binary found, skipping build from source.
 5.568 npm info run @sentry/profiling-node@1.3.3 install { code: null, signal: 'SIGSEGV' }
 5.607 npm notice
 5.607 npm notice New minor version of npm available! 10.2.4 -> 10.3.0
 5.607 npm notice Changelog: <https://github.com/npm/cli/releases/tag/v10.3.0>
 5.607 npm notice Run `npm install -g npm@10.3.0` to update!
 5.607 npm notice
 5.608 npm verb stack Error: command failed
 5.608 npm verb stack     at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/@npmcli/promise-spawn/lib/index.js:53:27)
 5.608 npm verb stack     at ChildProcess.emit (node:events:518:28)
 5.608 npm verb stack     at maybeClose (node:internal/child_process:1105:16)
 5.608 npm verb stack     at ChildProcess._handle.onexit (node:internal/child_process:305:5)
 5.608 npm verb pkgid @sentry/profiling-node@1.3.3
 5.608 npm verb cwd /usr/src/build
 5.608 npm verb Linux 5.15.49-linuxkit
 5.608 npm verb node v20.11.0
 5.609 npm verb npm  v10.2.4
 5.609 npm ERR! path /usr/src/build/node_modules/@sentry/profiling-node
 5.609 npm ERR! command failed
 5.609 npm ERR! signal SIGSEGV
 5.610 npm ERR! command sh -c node scripts/check-build.mjs
 5.610 npm verb exit 1
 5.610 npm verb unfinished npm timer reify 1704966110745
 5.610 npm verb unfinished npm timer reify:build 1704966114916
 5.611 npm verb unfinished npm timer build 1704966114916
 5.611 npm verb unfinished npm timer build:deps 1704966114916
 5.611 npm verb unfinished npm timer build:run:install 1704966114919
 5.611 npm verb unfinished npm timer build:run:install:node_modules/@sentry/profiling-node 1704966114919
 5.611 npm verb code 1
 5.612
 5.612 npm ERR! A complete log of this run can be found in: /root/.npm/_logs/2024-01-11T09_41_50_503Z-debug-0.log
 ERROR: executor failed running [/bin/sh -c npm install --verbose --foreground-scripts @sentry/profiling-node]: exit code: 1

Crash report

We get an SIGSEGV error when trying to install it. Our dockerfile is the following:

FROM node:20-alpine as builder

WORKDIR /usr/src/build

RUN npm install --verbose --foreground-scripts @sentry/profiling-node

lhermann commented 10 months ago

Also on MacOS 14.2.1 when installing @sentry/profiling-node@1.3.3.

Reverting back to @sentry/profiling-node@1.3.2 works.

❯ npm i @sentry/profiling-node@1.3.3
npm ERR! path /Users/lhermann/path/to/node_modules/@sentry/profiling-node
npm ERR! command failed
npm ERR! signal SIGABRT
npm ERR! command sh -c node scripts/check-build.mjs
npm ERR! @sentry/profiling-node: Precompiled binary found, attempting to load /Users/lhermann/path/to/node_modules/@sentry/profiling-node/lib/sentry_cpu_profiler-darwin-arm64-108.node
npm ERR! @sentry/profiling-node: Precompiled binary found, skipping build from source.
npm ERR! Assertion failed: (handle->flags & UV_HANDLE_CLOSING), function uv__finish_close, file core.c, line 301.

npm ERR! A complete log of this run can be found in: /Users/lhermann/.npm/_logs/2024-01-11T11_36_25_577Z-debug-0.log
JonasBa commented 10 months ago

Do you mind bumping to v1.3.4 and letting me know if the issue persists?

lhermann commented 10 months ago

@JonasBa can confirm installation with npm i @sentry/profiling-node@latest works now 👌

JonasBa commented 10 months ago

@lhermann thank you so much and sorry for the issue. I'll investigate why CI did not catch this

FezVrasta commented 2 months ago

@JonasBa This is happening again on node:lts-alpine and "@sentry/profiling-node": "^8.30.0"

JonasBa commented 2 months ago

This is a duplicate of https://github.com/getsentry/profiling-node/issues/247 (we've moved this repo to the sentry JS monorepo). There should be a fix going out with the next release, I will update you on that.

JonasBa commented 2 months ago

I linked the wrong issue in the reply above, the correct link is https://github.com/getsentry/sentry-javascript/issues/12169