Description
- Version: 15.5.0
- Platform: Darwin Kernel Version 20.2.0: Wed Dec 2 20:40:21 PST 2020; root:xnu-7195.60.75~1/RELEASE_ARM64_T8101 arm64
- Subsystem: streams(?)
What steps will reproduce the bug?
Using node 15.5.0 compiled for arm64.
➜ node -p process.arch
arm64
I'm baffled that I couldn't find anything related to this yet, and I'm not sure whether it's a nodejs bug or something else.
While running nodejs apps that use network or file streams it seems that they very frequently break with errors like EPIPE or EFAULT.
For example, a recent crash:
Error: read EFAULT
at Pipe.onStreamRead (node:internal/stream_base_commons:213:20)
at Pipe.callbackTrampoline (node:internal/async_hooks:131:14)
Emitted 'error' event on Socket instance at:
at emitErrorNT (node:internal/streams/destroy:188:8)
at emitErrorCloseNT (node:internal/streams/destroy:153:3)
at processTicksAndRejections (node:internal/process/task_queues:80:21) {
errno: -14,
code: 'EFAULT',
syscall: 'read'
}
This also happens quite a lot in the nodejs subsystem used in VSCode: microsoft/vscode#113410 (see various screenshots attached there)
I haven't verified if it happens in Rosetta emulation.
How often does it reproduce? Is there a required condition?
Very often, at least once every 10-60 minutes.
I don't have a specific reproduction, but I've seen it happen when something like tsc --watch
reinitiates a compilation based on file system changes. It also happens randomly in simple expressjs servers that don't watch the file system, but just keep a connection to a mongodb server.
What is the expected behavior?
More stability.
What do you see instead?
Frequent errors.
Additional information
If I can run with some sort of flag that produces an useful crash dump, let me know of the instructions and I'll do it asap.