Skip to content

test: tracedecay lib tests that fail only under full-suite load #2650

Description

@ScriptedAlchemy

What happens

These tracedecay lib tests fail only under load. Each one passes when run alone. I found them while looping the lib suite for #2513 and did not investigate them.

How it was reproduced

  • Binary: master d842ec3, cargo test -p tracedecay --features test-transport --lib --no-run.
  • Load: the whole lib suite, 772 tests, run with --test-threads=64. Two to four copies ran at once on a 96-core host that was shared with other agents' builds.
  • 50 runs in total.
Test Failed runs (of 50)
mcp::server::routing::tests::many_slow_initialize_roots_share_one_discovery_budget 14
daemon::production_harness::advisory_cycle_language_journey_test::first_advisory_cycle_after_a_reopen_answers_without_a_retry 13
daemon::tests::replay::client_identity_startup_replays_retained_profile_receipts 10
mcp::server::host_admission_tests::owned_project_replay_worker_continues_past_one_bounded_batch 7
daemon::production_harness::lcm_preserved_profile_journey_test::preserved_profile_lcm_discovery_converges_without_blocking_retrieval 7
daemon::tests::lifecycle::one_shot_tool_call_allows_long_response_while_daemon_stays_live 3
daemon::production_harness::generation_retention_test::mounted_code_generation_retention_continues_capped_segment_reclamation 3
session_temporal_benchmark::tests::fresh_benchmark_db_provisions_key_for_rank_and_hydration 2
session_temporal_benchmark::tests::fixture_refresh_persists_progress_before_measurement 2
daemon::tests::route_discovery::a_deferred_discovery_converges_on_the_next_request 1

corrupt_graph_restart_rebuilds_from_the_sealed_segments_without_decoding also failed in 10 of the 50 runs. #2633 already tracks it, so it is not listed here.

Known cause for one test

many_slow_initialize_roots_share_one_discovery_budget compares wall-clock time: it asserts elapsed < 3s across three 1.5s injected probes (crates/tracedecay/src/mcp/server/routing.rs). Under CPU contention the budget check fails before the deadline logic it is meant to test gets a chance to run.

I did not capture the panic text for the other tests. The run above reproduces them.

Repro

B=$(cargo test -p tracedecay --features test-transport --lib --no-run 2>&1 | sed -n 's/.*(\(target[^)]*\)).*/\1/p')
cd crates/tracedecay
for i in 1 2 3; do "../../$B" --test-threads=64 & done; wait

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions