serverless-offline icon indicating copy to clipboard operation
serverless-offline copied to clipboard

free(): invalid next size (fast), Segmentation Faults (SIGSEGV) and other native Node.js crashes

Open aardvarkk opened this issue 1 year ago • 6 comments

Bug Report

Current Behavior

Serverless offline sporadically crashes with various memory-related errors. The crash is within Node's native code.

Expected behavior/code

Serverless offline should not crash.

Environment

Both myself (Linux) and my colleague on (Mac M1) have experienced several native crashes in the Node process. We're using the latest version of serverless-offline (13.3.3).

Possible Solution

Neither of us have experienced a crash yet running serverless-offline with the --useInProcess flag.

Additional context/Screenshots

I spent a couple of days trying to figure out if this was some bug in Node.js memory handling or something, because the backtraces from the core dumps just pointed to code within Node. Eventually I tried out this flag on serverless-offline and stability seems to have greatly improved.

I'm creating this bug report for two reasons:

  1. I wanted to make this issue so searching for these errors may bring somebody here and let them try to run with --useInProcess. It seems to have greatly helped the stability of the project. At first I thought maybe there was something wrong with our Node.js version. We tried upgrading to v20 from v18 (which didn't fix anything), and spent a lot of time searching around for other people having segfaults or memory issues with Node, which was not helpful.
  2. To recommend that perhaps a large warning or notice be placed in the docs to indicate that running in the default mode with worker threads may cause instability issues. I'm not sure which native extensions in our project are to blame, but it was remarkably hard to track down exactly what was happening when every now and again our servers would just crash seemingly at random.

I'm not sure if I expect anything to change within serverless-offline, but it would have been really helpful to have an issue like this to look into to help figure out why our servers were crashing.

aardvarkk avatar Feb 26 '24 19:02 aardvarkk

@aardvarkk My team is having this problem too, the flag --useInProcess solved the problem, but I don't know what side effects we may have using this flag.

igo-alt avatar May 16 '24 18:05 igo-alt

What node version are you using? @igo-alt @aardvarkk

DorianMazur avatar May 22 '24 19:05 DorianMazur

@DorianMazur Both v18 and v20

aardvarkk avatar May 22 '24 19:05 aardvarkk

@DorianMazur 20, LTS

igo-alt avatar May 23 '24 00:05 igo-alt

Likewise; node 20.11.1, serverless 3.38.0, M2 Macbook Pro. Adding --useInProcess flag on serverless offline also seems to prevent the issue in my case.

codyaweber avatar Jun 11 '24 05:06 codyaweber

@DorianMazur do you have any suggestions to allow hot reload while using --useInProcess flag? The flag disable the hot reload. Or maybe a fix to this memory problem.

igo-alt avatar Jul 29 '24 11:07 igo-alt