Skip to content
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

Latest Node 18 bookworm based image does not start but bullseye works #1943

Closed
msonowal opened this issue Jul 20, 2023 · 3 comments
Closed

Comments

@msonowal
Copy link

Environment

  • Platform: Ubuntu 22.04
  • Docker Version: Docker version 19.03.2, build 6a30dfc
  • Node.js Version: 18
  • Image Tag: node:18

Expected Behavior

It should start the interactive shell successfully

Current Behavior

it throws error below

node[1]: ../src/node_platform.cc:68:std::unique_ptr<long unsigned int> node::WorkerThreadsTaskRunner::DelayedTaskScheduler::Start(): Assertion `(0) == (uv_thread_create(t.get(), start_thread, this))' failed.

See screenshot where first part shows error but the second execution works fine
Screenshot 2023-07-20 at 10 03 05 PM

Possible Solution

No idea

Steps to Reproduce

docker run -it node:18 /bin/sh

See errors

But if you run docker run -it node:18-bullseye /bin/sh it successfully launches

Additional Information

@yosifkit
Copy link
Contributor

Sounds the same as #1931 and docker-library/python#837 (comment). TL;DR: update libseccomp, Docker, and runc on the host.

@sergei-lobanov
Copy link

Any plans to fix it? Its broken since July or mb earlie

@yosifkit
Copy link
Contributor

Any plans to fix it? Its broken since July or mb earlie

There is nothing that can be fixed from the image. The two solutions from my link above: use the -bullseye images, or update libseccomp and docker on the host running the containers.


Root cause: it is Docker with libseccomp. Newer syscalls used in Debian Bookworm packages/libs are being blocked.

libseccomp lets you configure allowed syscalls for a process. Docker sets a default seccomp profile for all containers such that only certain syscalls are allowed and everything else is blocked (so, newer syscalls that are not yet known to libseccomp or docker are blocked).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants