Separate concurrency benchmark lifecycle measurements - #130
Conversation
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 79dd9f3. Configure here.
| async fn measure(&self) { | ||
| self.control.start_measurement(); | ||
| self.control.wait_until_finished().await; | ||
| } |
There was a problem hiding this comment.
Measure path can hang forever
Medium Severity
measure waits only on the finished semaphore and never watches the runtime task. prepare already uses select! so a setup-time runtime exit fails fast, but if the runtime exits during the timed section before every job calls record_completion, wait_until_finished blocks forever. Cleanup never runs, so CI sits until the 30-minute timeout instead of surfacing the runtime failure.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit 79dd9f3. Configure here.


Summary
Measurements
High-concurrency cases now take approximately 2.2-3.7 seconds locally, up from roughly 0.3-0.5 seconds.
Verification
Note
Low Risk
Changes are limited to benchmark harness code and CI timeout; no production queue/runtime behavior is modified.
Overview
Reworks oxana concurrency Divan benchmarks so throughput numbers separate full runtime lifecycle from steady-state processing, and CI can finish the heavier suite.
End-to-end benches still time starting the runtime, draining the queue, and shutdown. Steady-state benches pre-start workers, block the first worker cohort until setup completes, then only time the gated job batch; shutdown and
RunStatschecks run inSteadyStateCleanupafter Divan stops the timer. Cases are parameterized viaBenchmarkCase(worker count + job count), with larger job counts at high concurrency so samples run ~2–5s instead of sub-second.Benchmark setup uses
enqueue_listinstead of per-jobenqueue, reports items/sec via DivanItemsCount, and asserts success counts through sharedassert_stats. The Test workflow job timeout rises from 10 to 30 minutes to match repeatedcargo benchin CI.Reviewed by Cursor Bugbot for commit 79dd9f3. Bugbot is set up for automated code reviews on this repo. Configure here.