Merge pull request 'fix: set SO_REUSEADDR on port pre-check so restarts don't wait for TIME_WAIT' (#16) from fix/reuseaddr-port-check into main

Reviewed-on: #16
This commit was merged in pull request #16.
This commit is contained in:
Pakobbix committed 2026-10-03 19:18:59 +00:00
commit 92356d1409
1 file changed
+4
+4
View File
@@ -2610,7 +2610,11 @@ def run(
# Fail fast if the port is already in use — silently shifting ports breaks
# client discovery. Users should configure a different port explicitly.
# SO_REUSEADDR mirrors uvicorn's own bind: without it, TIME_WAIT sockets
# left by a just-stopped instance (~60s) would fail this check even though
# uvicorn could bind fine, forcing a wait on every restart.
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
try:
s.bind((host, port))
except OSError: