Problem
test_live_full_cycle consistently fails in CI because api.zerocracy.com does not complete the submitted job within the timeout window. The timeout was already increased from 2min → 5min → 15min (PR #402?), but the problem persists — the job .finished? never returns true within the deadline.
Latest example: Rultor merge run #29038320557 was cancelled after 15 minutes.
This blocks all PRs from merging since the check is required. Every contributor hits the same wall.
Analysis
The wait_for(15 * 60) approach is a band-aid, not a fix:
- 15 minutes of wall-clock time per CI run is wasteful — it occupies a runner for a quarter of an hour doing nothing but polling
- The problem is not the client timeout — it is that the Zerocracy platform either:
- Does not finish the job within a reasonable time, OR
- Does not report completion back to the API
- No feedback loop — when the test fails, we only know "job did not finish in Ns", but not why (is the platform overloaded? is the job stuck? is the
.finished? endpoint broken?)
Suggested solutions
1. Server-side (Zerocracy platform)
- Ensure jobs submitted by
test_live_full_cycle complete within ~2 minutes (the actual work is trivial — a factbase insert + export)
- Or provide a dedicated CI/test endpoint that guarantees fast turnaround
- Or return job completion status synchronously for test requests
2. Client-side (this repo)
- Separate live tests from
rake default — move them to a separate rake live task that runs only on schedule or on demand, not on every PR commit
- Reduce timeout back to 2–3 minutes and accept that the test may flake when the platform is under load — document it as known flaky
- Add metrics — record how long
.finished? actually takes when it succeeds, to establish a real baseline
3. Process
- Allow PRs to merge even if live tests fail (they test the platform, not the client code)
- Run live tests nightly and alert on failure instead of blocking CI
Root cause
The tight coupling between client tests and the live Zerocracy platform means that any platform latency or bug directly blocks client-side development. A clear SLA or a test-specific fast path on the platform would resolve this.
Problem
test_live_full_cycleconsistently fails in CI becauseapi.zerocracy.comdoes not complete the submitted job within the timeout window. The timeout was already increased from 2min → 5min → 15min (PR #402?), but the problem persists — the job.finished?never returnstruewithin the deadline.Latest example: Rultor merge run #29038320557 was cancelled after 15 minutes.
This blocks all PRs from merging since the check is required. Every contributor hits the same wall.
Analysis
The
wait_for(15 * 60)approach is a band-aid, not a fix:.finished?endpoint broken?)Suggested solutions
1. Server-side (Zerocracy platform)
test_live_full_cyclecomplete within ~2 minutes (the actual work is trivial — a factbase insert + export)2. Client-side (this repo)
rake default— move them to a separaterake livetask that runs only on schedule or on demand, not on every PR commit.finished?actually takes when it succeeds, to establish a real baseline3. Process
Root cause
The tight coupling between client tests and the live Zerocracy platform means that any platform latency or bug directly blocks client-side development. A clear SLA or a test-specific fast path on the platform would resolve this.