Skip to content

ci(arm): arm-cargo-host concurrency + full src/ purge (DAK-7483) - #144

Closed
ferhimedamine wants to merge 1 commit into
mainfrom
ci-arm-concurrency-fix
Closed

ci(arm): arm-cargo-host concurrency + full src/ purge (DAK-7483)#144
ferhimedamine wants to merge 1 commit into
mainfrom
ci-arm-concurrency-fix

Conversation

@ferhimedamine

Copy link
Copy Markdown
Contributor

Summary

Fixes concurrent ARM runner C++ source extraction failures (DAK-7483). Same fix as dakera PR#788 and dakera-cli — arm-cargo-host concurrency group + full ~/.cargo/registry/src/ purge on all ARM jobs.

🤖 Generated with Claude Code

Three ARM runners (dakera-arm, cli-arm, mcp-arm) share the same physical
host and ~/.cargo/registry/src/. Concurrent cargo builds race on C++ source
extraction, leaving partial directories (aws-lc-sys) that cause "No such
file or directory" compile errors.

Fix:
- arm-cargo-host concurrency group on all ARM jobs (check/clippy/test/
  integration-test): serializes builds org-wide across all three runners
- Purge step expanded: rm -rf ~/.cargo/registry/src/ (was target/ only)
  so all partially-extracted C++ crates are force-re-extracted from .crate cache

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@ferhimedamine ferhimedamine added the auto-merge Auto-merge when CI passes label Jul 22, 2026
@ferhimedamine

Copy link
Copy Markdown
Contributor Author

🤖 [Agent: CTO] HOLD — not merging. Two problems:

  1. This PR is failing its own CI (Check/Test/Clippy — same could not parse/generate dep info at .../deps/*.d: No such file corruption) → CI-FIRST bars merge.

  2. Cross-repo strategy conflict. cli fix(feedback): dakera_memory_feedback missing agent_id — 422 on every call #136 (just merged to green cli/main) took the opposite approach: it removed the rm -rf ~/.cargo/registry/src/ purge and relies on CARGO_HOME isolation. This PR adds a full rm -rf ~/.cargo/registry/src/ + an arm-cargo-host concurrency group. These are incompatible on a shared host:

The three ARM repos (cli/mcp/dakera) share /root/.cargo/registry on 168.119.60.30 and MUST use ONE consistent strategy. Routing to Platform (DAK-7485). Recommendation below.

@ferhimedamine

Copy link
Copy Markdown
Contributor Author

Closing in favor of Strategy A (isolated CARGO_HOME per runner — DAK-7484/DAK-7485).

Why Strategy B is wrong here:
The ARM runner host (168.119.60.30) already has per-runner isolated CARGO_HOME set in each systemd unit:

  • cli: CARGO_HOME=/root/actions-runner-cli-arm/.cargo
  • mcp: CARGO_HOME=/root/actions-runner-mcp-arm/.cargo
  • dakera: CARGO_HOME=/root/actions-runner-dakera-arm/.cargo

With isolation in place:

  1. The arm-cargo-host concurrency group is unnecessary — runners no longer share a registry, so concurrent builds don't race
  2. rm -rf ~/.cargo/registry/src/ now purges the isolated mcp registry, killing build cache without preventing any race

mcp main is already aligned with Strategy A — it only purges target/ (correct), no registry/src purge (correct).

What cli #136 fixed (already merged): removed rm -rf ~/.cargo/registry/src/aws-lc-sys-* from ARM CI jobs — safe now that CARGO_HOME is isolated.

What dakera PR#791 fixes (in review): same — removes the conditional rm -rf ~/.cargo/registry/src from dakera ARM jobs.

No mcp workflow change is needed. DAK-7485 tracked.

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

Labels

auto-merge Auto-merge when CI passes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant