From 79c8647fd943cd5b3993b05572b4baed582c5986 Mon Sep 17 00:00:00 2001 From: "jason.woltje" Date: Sat, 25 Jul 2026 22:10:15 +0000 Subject: [PATCH] fix(lease-broker): wait_ready() polls real connect-readiness not socket-file existence (flaky CI race) (#898) Co-authored-by: jason.woltje Co-committed-by: jason.woltje --- .../src/lease-broker/recovery_b1_adversarial_unittest.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/mosaic/src/lease-broker/recovery_b1_adversarial_unittest.py b/packages/mosaic/src/lease-broker/recovery_b1_adversarial_unittest.py index 3df91ec7..ce388ef7 100644 --- a/packages/mosaic/src/lease-broker/recovery_b1_adversarial_unittest.py +++ b/packages/mosaic/src/lease-broker/recovery_b1_adversarial_unittest.py @@ -51,8 +51,13 @@ def request(socket_path: Path, value: dict[str, object]) -> dict[str, object]: def wait_ready(process: subprocess.Popen[str], socket_path: Path) -> None: deadline = time.monotonic() + 5.0 while time.monotonic() < deadline: - if socket_path.exists(): + try: + with socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) as probe: + probe.settimeout(0.25) + probe.connect(str(socket_path)) return + except (ConnectionRefusedError, FileNotFoundError): + pass if process.poll() is not None: output = process.stdout.read() if process.stdout is not None else "" raise RuntimeError(f"daemon exited before READY: {output}")