Skip to content

Commit c6c3f82

Browse files
committed
fix(agents): prevent native hook relay bridge race condition on renew and registration
Remove synchronous bridge record write after server.listen() that races before the TCP server binds, and guard renew handler with server.listening check to prevent stale relay registrations. Closes #98650
1 parent 17a1993 commit c6c3f82

1 file changed

Lines changed: 1 addition & 4 deletions

File tree

src/agents/harness/native-hook-relay.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -474,7 +474,7 @@ export function registerNativeHookRelay(
474474
current.expiresAtMs = renewedExpiresAtMs;
475475
handle.expiresAtMs = renewedExpiresAtMs;
476476
const bridge = relayBridges.get(relayId);
477-
if (bridge) {
477+
if (bridge && bridge.server.listening) {
478478
writeNativeHookRelayBridgeRecordForRegistration(current, bridge);
479479
}
480480
},
@@ -992,9 +992,6 @@ function registerNativeHookRelayBridge(registration: ActiveNativeHookRelayRegist
992992
}
993993
writeNativeHookRelayBridgeRecordForRegistration(registration, bridge);
994994
});
995-
if (relayBridges.get(registration.relayId) === bridge) {
996-
writeNativeHookRelayBridgeRecordForRegistration(registration, bridge);
997-
}
998995
server.unref();
999996
}
1000997

0 commit comments

Comments
 (0)