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

Cannot load externalized builtin: "internal/deps/cjs-module-lexer/lexer:/usr/lib/node_modules/cjs-module-lexer/lexer.js". #92

Open
aswinbennyofficial opened this issue Apr 15, 2024 · 10 comments

Comments

@aswinbennyofficial
Copy link

aswinbennyofficial commented Apr 15, 2024

I am getting this error whenever I try to install something from npm

Error

>sudo npm install -g @angular/cli
Cannot load externalized builtin: "internal/deps/cjs-module-lexer/lexer:/usr/lib/node_modules/cjs-module-lexer/lexer.js".
----- Native stack trace -----

 1: 0x7f32e98f472e node::builtins::BuiltinLoader::AddExternalizedBuiltin(char const*, char const*) [/lib64/libnode.so.115]
 2: 0x7f32e98f4935 node::builtins::BuiltinLoader::BuiltinLoader() [/lib64/libnode.so.115]
 3: 0x7f32e98418d7 node::InitializePrimordials(v8::Local<v8::Context>) [/lib64/libnode.so.115]
 4: 0x7f32e9841a08 node::GetPerContextExports(v8::Local<v8::Context>) [/lib64/libnode.so.115]
 5: 0x7f32e98417e8 node::InitializePrimordials(v8::Local<v8::Context>) [/lib64/libnode.so.115]
 6: 0x7f32e9841ae0 node::InitializeMainContextForSnapshot(v8::Local<v8::Context>) [/lib64/libnode.so.115]
 7: 0x7f32e9841b05 node::InitializeContext(v8::Local<v8::Context>) [/lib64/libnode.so.115]
 8: 0x7f32e9841b63 node::NewContext(v8::Isolate*, v8::Local<v8::ObjectTemplate>) [/lib64/libnode.so.115]
 9: 0x7f32e997c9b4 node::NodeMainInstance::CreateMainEnvironment(node::ExitCode*) [/lib64/libnode.so.115]
10: 0x7f32e997cb0d node::NodeMainInstance::Run() [/lib64/libnode.so.115]
11: 0x7f32e98df351 node::Start(int, char**) [/lib64/libnode.so.115]
12: 0x7f32e8c4614a  [/lib64/libc.so.6]
13: 0x7f32e8c4620b __libc_start_main [/lib64/libc.so.6]
14: 0x55f96f486035 _start [node]
Aborted

File versions

  • These are the files I downloaded
Installing:
 nodejs                               x86_64              1:20.12.0-1.fc39                         updates               50 k
Installing dependencies:
 nodejs-cjs-module-lexer              noarch              1.2.3-2.fc39                             updates               37 k
 nodejs-libs                          x86_64              1:20.12.0-1.fc39                         updates               15 M
 nodejs-undici                        noarch              6.11.1-2.fc39                            updates              290 k
Installing weak dependencies:
 nodejs-docs                          noarch              1:20.12.0-1.fc39                         updates              8.2 M
 nodejs-full-i18n                     x86_64              1:20.12.0-1.fc39                         updates              8.4 M
 nodejs-npm                           x86_64              1:10.5.0-1.20.12.0.1.fc39                updates              2.2 M

Things I tried:

  • On reinstall it works, but same error after installing any package
  • Tried restarting
  • Tried logout

System Details Report


Report details

  • Date generated: 2024-04-15 10:11:23

Hardware Information:

  • Hardware Model: HP HP Notebook
  • Memory: 8.0 GiB
  • Processor: Intel® Core™ i3-5005U × 4
  • Graphics: Intel® HD Graphics 5500 (BDW GT2)
  • Graphics 1: HAINAN
  • Disk Capacity: 1.2 TB

Software Information:

  • Firmware Version: F.47
  • OS Name: Fedora Linux 39 (Workstation Edition)
  • OS Build: (null)
  • OS Type: 64-bit
  • GNOME Version: 45.5
  • Windowing System: Wayland
  • Kernel Version: Linux 6.8.4-200.fc39.x86_64
@guybedford
Copy link
Collaborator

//cc @mochaaP this seems like it may be related to your recent work. Will the release of #91 help here?

@mochaaP
Copy link
Contributor

mochaaP commented Apr 19, 2024

We haven't cooperated that change in any released versions yet, both in nodejs20 and nodejs-cjs-module-lexer. Also, this seems to be a distro-specific issue, so please raise it in https://bugzilla.redhat.com/

Besides, I could not reproduce this on f39 with the following packages:

nodejs-docs-1:20.12.0-1.fc39.noarch
libuv-1:1.48.0-1.fc39.x86_64
nodejs-libs-1:20.12.0-1.fc39.x86_64nodejs-undici-6.11.1-2.fc39.noarch
nodejs-cjs-module-lexer-1.2.3-2.fc39.noarch
nodejs-full-i18n-1:20.12.0-1.fc39.x86_64
nodejs-npm-1:10.5.0-1.20.12.0.1.fc39.x86_64
nodejs-1:20.12.0-1.fc39.x86_64 

Does your root filesystem support symlinks? /usr/lib/node_modules should be a symlink to node_modules_20 on Fedora 39+ and RHEL 10+.

@mochaaP
Copy link
Contributor

mochaaP commented Apr 19, 2024

Oh, I recalled what's the issue here. libuv made io_uring default from a while ago, and it got merged into Node.js. Unfortunately, the implementation (kernel? libuv?) is currently buggy and had various quirks when doing file I/Os. A workaround is to set UV_USE_IO_URING=0 in your environment variables.

@mochaaP
Copy link
Contributor

mochaaP commented Apr 19, 2024

Seemed to be a kernel regression. Tested with a clean f39 podman container on 6.9.0-0.rc4.37.fc41.x86_64, works well. @aswinbennyofficial Could you test it on Fedora 40?

@aswinbennyofficial
Copy link
Author

@mochaaP I havent installed fedora 40 yet.

I have created a bug report on bugzilla https://bugzilla.redhat.com/show_bug.cgi?id=2276166

@mochaaP
Copy link
Contributor

mochaaP commented Apr 20, 2024

@guybedford since this isn't a cjs-module-lexer issue but a kernel/libuv/node one, we can close this here.

@aswinbennyofficial
Copy link
Author

aswinbennyofficial commented Apr 20, 2024

Oh, I recalled what's the issue here. libuv made io_uring default from a while ago, and it got merged into Node.js. Unfortunately, the implementation (kernel? libuv?) is currently buggy and had various quirks when doing file I/Os. A workaround is to set UV_USE_IO_URING=0 in your environment variables

I tried this still was having the same error

image

image

@mochaaP
Copy link
Contributor

mochaaP commented Apr 20, 2024

Forwarding from rhbz.


OK, I figured this out.

You are running npm as root and your npmrc sets prefix=/usr, which overrides /usr/lib/> node_modules to a folder instead of a symlink.
Please don't install npm packages globally, at least not installing to /usr/lib.

@mochaaP
Copy link
Contributor

mochaaP commented Apr 20, 2024

/tag invalid
/close

@mdx0111
Copy link

mdx0111 commented Sep 17, 2024

I can confirm that this is happening with Fedora 40 as well.

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

4 participants