bun icon indicating copy to clipboard operation
bun copied to clipboard

Segfault when Worker is spawned from terminated parent Worker

Open pedrofracassi opened this issue 9 months ago • 3 comments

How can we reproduce the crash?

I'm not sure. It seems to happen sometimes when a Worker exists.

I'm using Elysia on the main thread, and ioredis + axios within the worker. Unfortunately I can't share much due to it being a work project.

JavaScript/TypeScript code that reproduces the crash?

This seems to be the last thing than runs fine before the segfault

(on the main thread)

this.worker.addEventListener("close", () => {
      console.log("Worker exited.");
    });

Within the worker, the function I'm using to exit:

async function exit() {
  clearInterval(interval);
  await redis.quit();
  process.exit(0);
}

Calling it like this inside another function that's called every second with setInterval:

if (gameState === "finished") {
  console.log("Game finished");
  exit();
  return;
}

Relevant log output

Game finished
Worker exited.
============================================================
Bun v1.1.8 (89d25807) macOS Silicon
Args: "bun", "src/index.ts"
Features: jsc dotenv(2) fetch(4) http_server transpiler_cache tsconfig 
Builtins: "bun:jsc" "bun:main" "node:assert" "node:buffer" "node:crypto" "node:dns" "node:events" "node:fs" "node:http" "node:https" "node:net" "node:path" "node:stream" "node:string_decoder" "node:tls" "node:tty" "node:url" "node:util" "node:util/types" "node:zlib" 
Elapsed: 3402ms | User: 1519ms | Sys: 317ms
RSS: 0.86GB | Peak: 0.86GB | Commit: 0.90GB | Faults: 69

panic: Segmentation fault at address 0x11

Stack Trace (bun.report)

Bun v1.1.8 (89d2580) on macos aarch64 [AutoCommand]

Segmentation fault at address 0x00000011

  • 2 unknown/js code
  • JSC::CodeCacheMap::pruneSlowCase
  • JSC__JSValue__fromEntries
  • src.comptime_string_map.ComptimeStringMapWithKeyType
  • src.comptime_string_map.ComptimeStringMapWithKeyType
  • src.bun.js.bindings.bindings.JSGlobalObject.throwInvalidArguments__anon_384460
  • TCPSocketPrototype__upgradeTLS
  • WebCore::JSTimeout::destroy
  • JSC::VM::~VM

pedrofracassi avatar May 20 '24 12:05 pedrofracassi