-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Crash with node alpine but not node slim #288
Comments
What happens when you run docker logs? |
There's nothing in the logs for the container, but this is in the dmesg logs on the host:
|
Is there a way you can share the Dockerfile? |
The Dockerfile itself is pretty simple but I can't share our code so it wouldn't be much use. If I had an idea of where to start looking, I'd work on creating a stand alone, minimal reproducer, but I'm not sure where to even start with that since I'm not sure what's causing the crash. |
It would be good to know what modules you are using in your app. This could be a v8 issue under Alpine, given that your app works fine using the slim variant (debian). |
You can try to isolate if a specific require/import or other action in your application is causing the crash. |
Do you use node-gyp in your alpine Dockerfile? |
Not in the container that's crashing. |
I've been unable to make a minimal reproducer because the point at which it crashes jumps around in our code, but it only happens when using |
Is any of the dependencies using pre-built binaries, those sometimes have issues. I think the ecosystem in general isn't familiar with alpine and musl yet so a lot of the prebuilt binaries don't work in alpine and you sometimes have to compile them from source. |
As far as I can tell, If I removed the GeoJSON validation and just ran more data through, then the crash still happens. I also ran the tests from |
I'm not sure what fixed the issue, but I can no longer reproduce this. |
The crashes started happening again and I was able to make a reproducer: test_ajv.js
Dockerfile
make_ajv_test_csv.py
And then I ran the following:
NOTE: I made the test not use the |
Here's a completely self contained reproducer that doesn't require reading a CSV file:
Here's the Dockerfile:
Then run:
|
I am wondering if the issue could be because PhantomJS used in ajv....I couldn't get PhantomJS to work in alpine without custom building it. |
PhantomJS is used in the tests of |
It's so weird.....I add |
Hmmm, nevermind, it crashes at line 443 out of 500 |
It actually seems like a race condition..... |
I'm not familiar with how
|
Here's a further simplified reproducer and it crashes when 81 columns and 394 rows are used:
|
I just tried with node 6.10.2 and it now crashes with a smaller number of columns (70) but the same number of rows is required (394). |
A fix has been committed upstream: nodejs/node#11991 (comment) |
Our application crashes V8 when running with node:6.9.2-alpine but not with node:6.9.2-slim. Is there anything I can do to help diagnose the cause of this issue?
The text was updated successfully, but these errors were encountered: