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.
Env: perry 0.5.1512 built from
main@6173ff9f6, macOS arm64. MB24 Phase-0 spike.Repro:
Actual: hard abort (exit 134):
Expected: plain HTTP requests served alongside a
wsupgrade handler on the same server (the standard single-port WS + REST layout).Note: upstream
mainhas 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/monorepospike/tests/07-ws.ts.