Skip to content

uWS.getParts gives zero copy references; need copy or neutering #1200

@pavel-nekrasov1

Description

@pavel-nekrasov1

Description

uWebSockets.js crashes with a segmentation fault (SIGSEGV) on macOS 26.1 (Tahoe) with Apple Silicon. The same code runs without issues on macOS 15 (Sequoia).

Environment

  • OS: macOS 26.1 (Build 25B78) - ARM64 Apple Silicon (Mac16,7)
  • Node.js versions tested: v20.19.0, v20.19.5, v22.x
  • uWebSockets.js versions tested: v20.51.0, v20.56.0
  • Architecture: arm64 (native, not Rosetta)

Steps to Reproduce

  1. Install uWebSockets.js v20.56.0 on macOS 26
  2. Run any application using uWebSockets.js
  3. Perform some I/O operations (in our case, processing data after an HTTP request)
  4. Crash occurs during event loop processing

Expected Behavior

Application runs without crashing.

Actual Behavior

Segmentation fault: 11
Exit code: 139

The crash occurs after successful operation completion, when control returns to the event loop.

Crash Report Details

From macOS crash report:

Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Subtype: KERN_INVALID_ADDRESS at 0x000000787e73683c

Crashed Thread: 12 (worker thread)

Crashing binary: uws_darwin_arm64_127.node (also tested uws_darwin_arm64_115.node)

Stack trace (faulting thread):
- Builtins_KeyedLoadIC_Megamorphic
- Builtins_GetKeyedPropertyHandler
- Builtins_InterpreterEntryTrampoline
- Builtins_AsyncFunctionAwaitResolveClosure
- Builtins_PromiseFulfillReactionJob
- Builtins_RunMicrotasks
- v8::internal::MicrotaskQueue::RunMicrotasks
- ... (event loop / worker thread stack)

Binaries Tested

Both ABI 115 (Node 20.x) and ABI 127 (Node 22.x) binaries crash on macOS 26:

  • uws_darwin_arm64_115.node - crashes
  • uws_darwin_arm64_127.node - crashes

Workaround

Currently using macOS 15 or running in Docker/Linux containers.

Notes

  • A colleague running the exact same code on macOS 15 with the same Node.js version has no issues
  • The precompiled ARM64 binaries for macOS appear to be incompatible with macOS 26's runtime
  • The crash happens in V8 microtask processing, suggesting possible memory corruption or ABI incompatibility in the native module

Request

Could the ARM64 macOS binaries be recompiled with macOS 26 SDK support?

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions