sentry-javascript icon indicating copy to clipboard operation
sentry-javascript copied to clipboard

Crash on init within a docker container (but worked before in the container)

Open stoneburner opened this issue 1 year ago • 2 comments

Is there an existing issue for this?

  • [x] I have checked for existing issues https://github.com/getsentry/sentry-javascript/issues
  • [x] I have reviewed the documentation https://docs.sentry.io/
  • [x] I am using the latest SDK release https://github.com/getsentry/sentry-javascript/releases

How do you use Sentry?

Sentry Saas (sentry.io)

Which SDK are you using?

@sentry/nodejs

SDK Version

8.34.0

Framework Version

Express

Link to Sentry event

No response

Reproduction Example/SDK Setup

No response

Steps to Reproduce

Run app within docker container

Expected Result

the add does not crash

Actual Result

The app crashes with:

Error: Cannot find module '/home/node/app/node_modules/@sentry/profiling-node/lib/sentry_cpu_profiler-linux-x64-musl-131.node'
Require stack:
- Error: Cannot find module '/home/node/app/node_modules/@sentry/profiling-node/lib/sentry_cpu_profiler-linux-x64-musl-131.node'
R node:internal/modules/cjs/loader:1262
  throw err;
  ^

Note the version 131 it wants to load indeed does not exists, when i run nodejs locally and test the code that is used by sentry node profiler i get this:

Welcome to Node.js v22.9.0.
Type ".help" for more information.
> const nodeAbi = require('node-abi');
undefined
> const node_process = require('node:process');
undefined
> nodeAbi.getAbi(node_process.versions.node, 'node');
'127'
>

The file with 127 does exist and sentry works normally

The docker file just uses the official docker image and nothing special:

# Use the official Node.js image as the base image
FROM node:current-alpine

# Set the working directory inside the container
WORKDIR /home/node/app

# Copy package.json and package-lock.json to the working directory
COPY package*.json ./

# Install dependencies
RUN npm install
RUN npm install -g nodemon

# Start the server
CMD ["nodemon", "-x", "bin/www"]

I was forced to remove sentry from the apps within the company so we can deploy them and i rather would reactivate sentry.

stoneburner avatar Oct 17 '24 20:10 stoneburner

Hey @stoneburner, we currently only ship prebuilt binaries for node versions v16-22 (see https://github.com/getsentry/sentry-javascript/blob/develop/packages/profiling-node/README.md#prebuilt-binaries), and current-alpine resolves to v23. Can you try downgrading to node 22?

chargome avatar Oct 18 '24 08:10 chargome

Thanks, downgrading nodejs to 22 worked!

Maybe a check of the abi version would be a good idea, disabling profiling (and warning about that) would be nicer than just crashing

stoneburner avatar Oct 18 '24 16:10 stoneburner

Great to hear that it worked! And yes, checking for the version makes sense. I'll put that on our list.

s1gr1d avatar Oct 21 '24 07:10 s1gr1d

A PR closing this issue has just been released 🚀

This issue was referenced by PR #14043, which was included in the 8.36.0 release.

github-actions[bot] avatar Oct 31 '24 07:10 github-actions[bot]