Skip to content

Illegal instruction #58050

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

Closed
Zorono opened this issue Apr 27, 2025 · 6 comments
Closed

Illegal instruction #58050

Zorono opened this issue Apr 27, 2025 · 6 comments

Comments

@Zorono
Copy link

Zorono commented Apr 27, 2025

Version

v20.19.1

Platform

Linux BrownTurbo-Linux 6.8.0-58-generic #60-Ubuntu SMP PREEMPT_DYNAMIC Fri Mar 14 18:29:48 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

Subsystem

No response

What steps will reproduce the bug?

i can't make sure where is the problem...

How often does it reproduce? Is there a required condition?

Every execution of node

What is the expected behavior? Why is that the expected behavior?

Run my ExpressJS server

What do you see instead?

Node process crashes once i try to load my ExpressJS Server

Thread 1 "node" received signal SIGILL, Illegal instruction.
0x00007ffff784553b in __GI_kill () at ../sysdeps/unix/syscall-template.S:120
warning: 120	../sysdeps/unix/syscall-template.S: No such file or directory
(gdb) bt
#0  0x00007ffff784553b in __GI_kill () at ../sysdeps/unix/syscall-template.S:120
#1  0x00000000018cfdb9 in uv_kill (pid=<optimized out>, signum=<optimized out>) at ../deps/uv/src/unix/process.c:1091
#2  0x0000000000d4d83b in node::Kill(v8::FunctionCallbackInfo<v8::Value> const&) ()
#3  0x0000000000f6c56f in v8::internal::FunctionCallbackArguments::Call(v8::internal::CallHandlerInfo) ()
#4  0x0000000000f6cddd in v8::internal::MaybeHandle<v8::internal::Object> v8::internal::(anonymous namespace)::HandleApiCallHelper<false>(v8::internal::Isolate*, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::FunctionTemplateInfo>, v8::internal::Handle<v8::internal::Object>, unsigned long*, int) ()
#5  0x0000000000f6d2a5 in v8::internal::Builtin_HandleApiCall(int, unsigned long*, v8::internal::Isolate*) ()
#6  0x0000000001977df6 in Builtins_CEntry_Return1_ArgvOnStack_BuiltinExit ()
#7  0x00000000018e9d1c in Builtins_InterpreterEntryTrampoline ()
#8  0x00002f2175a004e9 in ?? ()
#9  0x00003b02febc7c79 in ?? ()
#10 0x0000000700000000 in ?? ()
#11 0x00002f2175a005b9 in ?? ()
#12 0x00003b02febc3939 in ?? ()
#13 0x0010777500000000 in ?? ()
#14 0x0000000400000000 in ?? ()
#15 0x0000000400000000 in ?? ()
#16 0x00002f2175a004e9 in ?? ()
#17 0x00003b02febc3939 in ?? ()
#18 0x00003b02febc7c79 in ?? ()
#19 0x00002f2175a004e9 in ?? ()
#20 0x000000a300000000 in ?? ()
#21 0x000013866794a8c9 in ?? ()
#22 0x0000000000000003 in ?? ()
#23 0x00003b02febc7ef1 in ?? ()
#24 0x00003b02febc4691 in ?? ()
#25 0x00007fffffffab58 in ?? ()
#26 0x00000000018e9d1c in Builtins_InterpreterEntryTrampoline ()
#27 0x00003b02febc3939 in ?? ()
#28 0x0010777500000000 in ?? ()
#29 0x000014153ee28e69 in ?? ()
#30 0x000014153ee28e69 in ?? ()
#31 0x0010777500000000 in ?? ()
#32 0x00003b02febc3939 in ?? ()
#33 0x00003b02febc7ef1 in ?? ()
#34 0x000000d200000000 in ?? ()
#35 0x00002e0f2167c681 in ?? ()
#36 0x0000000000000003 in ?? ()
#37 0x000037b0150d6931 in ?? ()
#38 0x000038b6d3a47589 in ?? ()
#39 0x00007fffffffac70 in ?? ()
#40 0x00000000018e9d1c in Builtins_InterpreterEntryTrampoline ()
#41 0x00003b02febc3939 in ?? ()
#42 0x0000113ceadd8699 in ?? ()
#43 0x00002e8838ee6a91 in ?? ()
#44 0x00002f2175a004e9 in ?? ()
#45 0x00002f2175a004e9 in ?? ()
#46 0x00002f2175a004e9 in ?? ()
#47 0x00002f2175a004e9 in ?? ()
#48 0x00002f2175a004e9 in ?? ()
#49 0x00002f2175a004e9 in ?? ()
#50 0x00002f2175a004e9 in ?? ()
#51 0x00002f2175a004e9 in ?? ()
#52 0x00002f2175a004e9 in ?? ()
#53 0x000037aa51f20189 in ?? ()
#54 0x00002f2175a004e9 in ?? ()
#55 0x00002f2175a004e9 in ?? ()
#56 0x00002f2175a004e9 in ?? ()
#57 0x00002f2175a004e9 in ?? ()
#58 0x00002f2175a004e9 in ?? ()
#59 0x00002f2175a004e9 in ?? ()
#60 0x00002f2175a004e9 in ?? ()
#61 0x00002f2175a004e9 in ?? ()
#62 0x00002f2175a004e9 in ?? ()
#63 0x000037b0150d6931 in ?? ()
#64 0x00003b02febc5989 in ?? ()
#65 0x00002f2175a006b9 in ?? ()
#66 0x0000113ceadd8ab9 in ?? ()
#67 0x0000113ceadd8ab9 in ?? ()
#68 0x00002e8838ee6a91 in ?? ()
#69 0x0000014100000000 in ?? ()
#70 0x0000390430952e11 in ?? ()
#71 0x0000000000000004 in ?? ()
#72 0x000011d4c6437ba1 in ?? ()
#73 0x000005765d246bf9 in ?? ()
#74 0x00007fffffffad00 in ?? ()
#75 0x00000000018e9d1c in Builtins_InterpreterEntryTrampoline ()
#76 0x00003b02febc3939 in ?? ()
#77 0x00002e8838ee6a91 in ?? ()
#78 0x0000113ceadd8699 in ?? ()
#79 0x00002e8838ee6a91 in ?? ()
#80 0x00002e8838ee6a91 in ?? ()
#81 0x0000113ceadd8699 in ?? ()
#82 0x00002e8838ee6a91 in ?? ()
#83 0x00003b02febc3939 in ?? ()
#84 0x000011d4c6437ba1 in ?? ()
#85 0x00002f2175a004e9 in ?? ()
#86 0x00002e8838ee6a91 in ?? ()
#87 0x0000008b00000000 in ?? ()
#88 0x000026c3532d2031 in ?? ()
#89 0x0000000000000003 in ?? ()
#90 0x00003b02febc8839 in ?? ()
#91 0x00003b02febc8871 in ?? ()
#92 0x00007fffffffad38 in ?? ()
#93 0x00000000018e80dc in Builtins_JSEntryTrampoline ()
#94 0x00003b02febc3939 in ?? ()
#95 0x0000113ceadd8699 in ?? ()
#96 0x00002f2175a006b9 in ?? ()
#97 0x00003b02febc8839 in ?? ()
#98 0x000000000000002c in ?? ()
#99 0x00007fffffffada0 in ?? ()
#100 0x00000000018e7e03 in Builtins_JSEntry ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Additional information

All of my recent commits to the Project were in client side and the last commit was 5 months ago which was running perfectly before the release of this node version... and I can't find which one of my old commits is the cause of this crash

@Zorono Zorono changed the title Illegal instruction (core dumped) Illegal instruction Apr 27, 2025
@Zorono
Copy link
Author

Zorono commented Apr 27, 2025

after running node --abort-on-uncaught-exception --trace-warnings --trace-uncaught server.js i found that node is failing to complain about the variable RedisStore... it should throw Uncaught TypeError: RedisStore is not a constructor but instead it crashed....

const RedisStore = require('connect-redis').default;
_client = (CacheClient != null ? new RedisStore({
            client: CacheClient,
            prefix: "brS_",
        }) : (() => {
            console.error("[Cache]: connection to Redis Server is not handled!");
            return undefined;
        })()),

@anonrig
Copy link
Member

anonrig commented Apr 27, 2025

cc @nodejs/libuv it seems this is a libuv bug

@anonrig anonrig added the libuv Issues and PRs related to the libuv dependency or the uv binding. label Apr 27, 2025
@pmarchini
Copy link
Member

hey @Zorono, could you please create a small repro that doesn't rely on external dependencies, or at least provide one if you're unable to reproduce the issue without dependencies?
I might be wrong, but as far as I can see, it doesn't seem to be a libuv issue since the Illegal instruction signal (SIGILL) is being sent correctly!

@bnoordhuis bnoordhuis removed the libuv Issues and PRs related to the libuv dependency or the uv binding. label May 1, 2025
@bnoordhuis
Copy link
Member

Removed the libuv label for the reason @pmarchini mentions.

@joyeecheung
Copy link
Member

joyeecheung commented May 3, 2025

From the stack trace it looks like some code in the user land is sending process.kill(SIGILL) to itself or its child. You might want to search in your code and your dependencies to find out which part of your code base is doing that, it could be that some code you have is catching whatever error that gets thrown and sending SIGILL, but this doesn't look like an actionable issue of Node.js core since the signal is raised by the user.

@bnoordhuis bnoordhuis closed this as not planned Won't fix, can't repro, duplicate, stale May 4, 2025
@Zorono
Copy link
Author

Zorono commented May 7, 2025

From the stack trace it looks like some code in the user land is sending process.kill(SIGILL) to itself or its child. You might want to search in your code and your dependencies to find out which part of your code base is doing that, it could be that some code you have is catching whatever error that gets thrown and sending SIGILL, but this doesn't look like an actionable issue of Node.js core since the signal is raised by the user.

it seems like you're correct. Thanks for pointing out this mistake

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

5 participants