mirror of
https://github.com/ModernRelay/omnigraph.git
synced 2026-07-12 03:12:11 +02:00
spawn_server_process picked a port by binding :0 and DROPPING the listener before the spawned omnigraph-server rebound it — a TOCTOU window in which any concurrently-spawning test steals the port. The loser exits "address in use", but stderr was nulled, so the test panicked with a bare "server exited before becoming healthy: exit status: 1" on whichever parity/system test lost the race that run (~1-in-2 parallel runs locally; 12/12 pass serially). Fix, two halves: - Retry the spawn on a fresh port (up to 5 attempts) when the child exits before passing the health check. A lost race becomes invisible; a deterministic startup failure still panics loudly after the retries. - Capture stderr to a temp file (not a pipe, which a chatty healthy server would fill and block on; not null) and include it in the panic and per-retry messages, so genuine startup failures carry the server's own error text. StdCommand isn't Clone and a reused command would trip clap's duplicate --bind rejection, so retries respawn via clone_command (program/args/envs/cwd). Verified: parity_matrix 3x parallel clean (previously flaked ~every other run), full omnigraph-cli suite green. |
||
|---|---|---|
| .. | ||
| support | ||
| cli_cluster.rs | ||
| cli_cluster_e2e.rs | ||
| cli_data.rs | ||
| cli_queries.rs | ||
| cli_schema_config.rs | ||
| parity_matrix.rs | ||
| system_local.rs | ||
| system_remote.rs | ||