test(client): recurring Windows startup retry timeout blocks unrelated release builds

Chiusa
#812 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@TimeToBuildBob ci sta già lavorando.

Dal 14/10/2026.

  • #819 di @TimeToBuildBob — aperta

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
42/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
github-actions, rust

Direzione di ricerca

Start with aw-client-rust::tests::test_wait_for_start_retries_without_blocking_executor in aw-client-rust/src/lib.rs, then inspect wait_for_server and answer_once. Reproduce or instrument the test on Windows to identify whether listener progress, TCP handshakes, or client retries cause the timeout. Done means fixing the demonstrated cause while retaining executor responsiveness and retry coverage, then passing repeated workspace and CLI-feature client test runs on Windows.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Observed failure

aw-client-rust::tests::test_wait_for_start_retries_without_blocking_executor intermittently fails on Windows with:

aw-client-rust\src\lib.rs:638:18
called `Result::unwrap()` on an `Err` value:
"Server at http://127.0.0.1:60722 not responding after 10 seconds of retrying"

Latest occurrence: ActivityWatch/activitywatch#1520 Windows Qt job, on the unchanged aw-server-rust pin 04e8d666cb6560e97dcc48f022ff17f0edfc5927. Build succeeded; cargo test failed (29 client tests passed, one failed), before packaging. The parallel Windows Tauri job passed its tests and packaging.

Previous occurrences: aw-server-rust#786 run, where the workspace test invocation passed but the later CLI-feature client invocation failed; aw-server-rust#809 run. These failures are outside the changes in those PRs. This is recurring, not evidence that the packaging change introduced a client regression.

Investigation boundary

The test binds a TcpSocket without listening, starts a same-runtime task that waits 30 ms and then calls listen(8), and expects wait_for_server to recover within 10 seconds. answer_once already reads accepted connections concurrently to handle abandoned Windows handshakes. The failure shows recovery did not finish; it does not establish runner slowness or prove the mock is at fault rather than the client.

A failed-job rerun on the latest occurrence was refused with HTTP 403 (repository admin rights required). Repeated empty commits are not a durable fix.

Done when

  • Reproduce or instrument the test on Windows to distinguish listener/mock progress, TCP handshake behavior, and client retry behavior.
  • Fix the demonstrated cause without disabling the test or merely increasing the timeout.
  • Retain coverage that the current-thread executor remains responsive and startup retries eventually succeed.
  • Verify repeated Windows runs, including the workspace and CLI-feature client test invocations.

Keep this client/test repair separate from ActivityWatch/activitywatch#1520's archive-architecture correction. No production defect is confirmed yet.

Lingua principale
Rust
Stelle
321
Fork
102
Merge medio
1g 23h
PR unite (30g)
34

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di ActivityWatch/aw-server-rust

Tutte le issue di ActivityWatch/aw-server-rust

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.