Skip to content

ext-http: SIGABRT 'there is no reactor running' (server/server.rs:913) — node:http server + ws WebSocketServer + fetch #8747

Description

@proggeramlug

Env: perry 0.5.1512 built from main@6173ff9f6, macOS arm64. MB24 Phase-0 spike.

Repro:

import { createServer } from "node:http";
import { WebSocketServer } from "ws";
const httpServer = createServer((_req, res) => { res.writeHead(200); res.end("http-ok"); });
const wss = new WebSocketServer({ server: httpServer });
await new Promise<void>((r) => httpServer.listen(8137, r));
console.log("listening");                       // reached
const res = await fetch("http://127.0.0.1:8137/"); // crash while serving this

Actual: hard abort (exit 134):

thread '<unnamed>' (49791956) panicked at crates/perry-ext-http/src/server/server.rs:913:38:
there is no reactor running, must be called from the context of a Tokio 1.x runtime

Expected: plain HTTP requests served alongside a ws upgrade handler on the same server (the standard single-port WS + REST layout).

Note: upstream main has 4 newer ext-http commits (#8615/#8608/#8632/#8641) but they target the client/Agent side; the panic site is in the server path. Full test: mobilitybroker24/monorepo spike/tests/07-ws.ts.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions