From 1ee64d6c72377f481a14b3e3196c620abb0b9c35 Mon Sep 17 00:00:00 2001 From: Shakker Date: Tue, 17 Feb 2026 13:49:40 +0000 Subject: [PATCH] Revert "fix(browser): handle EADDRINUSE with automatic port fallback" This reverts commit 0e6daa2e6e30240ce5191ee5c7954f24b4b56b42. --- src/browser/extension-relay.ts | 38 ++++------------------------------ 1 file changed, 4 insertions(+), 34 deletions(-) diff --git a/src/browser/extension-relay.ts b/src/browser/extension-relay.ts index c6a0a47398b..09ac1ff8a64 100644 --- a/src/browser/extension-relay.ts +++ b/src/browser/extension-relay.ts @@ -6,9 +6,6 @@ import type { Duplex } from "node:stream"; import WebSocket, { WebSocketServer } from "ws"; import { isLoopbackAddress, isLoopbackHost } from "../gateway/net.js"; import { rawDataToString } from "../infra/ws.js"; -import { createSubsystemLogger } from "../logging/subsystem.js"; - -const logService = createSubsystemLogger("browser").child("relay"); type CdpCommand = { id: number; @@ -706,37 +703,10 @@ export async function ensureChromeExtensionRelayServer(opts: { }); }); - // Try to bind to the requested port, with automatic fallback on EADDRINUSE. - let boundPort = info.port; - const maxRetries = 10; - for (let attempt = 0; attempt < maxRetries; attempt++) { - try { - await new Promise((resolve, reject) => { - const onError = (err: Error) => { - server.removeListener("listening", resolve); - reject(err); - }; - const onListening = () => { - server.removeListener("error", onError); - resolve(); - }; - server.once("error", onError); - server.once("listening", onListening); - server.listen(boundPort, info.host); - }); - // Successfully bound - break; - } catch (err) { - const isAddrInUse = (err as { code?: string }).code === "EADDRINUSE"; - if (isAddrInUse && attempt < maxRetries - 1) { - // Try a random port in the dynamic range (49152-65535) - boundPort = Math.floor(Math.random() * (65535 - 49152 + 1)) + 49152; - logService.warn(`Port ${info.port} is in use, trying alternative port ${boundPort}...`); - } else { - throw err; - } - } - } + await new Promise((resolve, reject) => { + server.listen(info.port, info.host, () => resolve()); + server.once("error", reject); + }); const addr = server.address() as AddressInfo | null; const port = addr?.port ?? info.port;