Repository navigation
feat(manager): configure executor worker concurrency, harden post-install - #43
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: ⛔ Files ignored due to path filters (9)
📒 Files selected for processing (23)
💤 Files with no reviewable changes (1)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe manager adds configurable worker concurrency and coordinated executor log collection. The installer removes executor downloads and enforces hashed Python requirements. Release metadata, documentation, executor references, and CI summaries are updated. ChangesManager execution
Installer integrity
Release alignment
CI summary handling
Priority: ⬇️ Low Estimated code review effort: 4 (Complex) | ~45 minutes Change: Feature Merge Risk: ⚪ Minimal · up to No established behavior in this change requires a fix before merging. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 8.70% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 23 functions across 8 files. (14 skipped: 14 unsupported.)
✨ Finishing Touches 💡 2📝 Generate docstrings 💡
🛠️ Fix failing CI checks 💡
🧪 Generate unit tests (beta)
Warning Some tools did not complete. Review the errors below. 🔧 Clippy (1.98.0)Clippy execution failed Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Linked executor PR(s)executor: genlayerlabs/genvm-executor#41 (v0.2) |
GenVM PR actionsTick a box to run it (the box unticks itself when handled). Actions only run while the PR has the
Commands
|
|
/genvm-run-tests |
|
👀 Full tests are running for |
|
/run-e2e |
|
E2E status was updated. Follow the current E2E and merge checks on this PR. Detailed diagnostics are available internally. |
Problem and outcome
Two independent threads, both manager-side with executor projections.
Worker control. The manager could not tell an executor how many workers to
use, so a nondeterministic block always ran fully concurrent. The config now
carries worker concurrency, it is passed in the execution input, and the
executor reads it at startup — a single-worker run becomes deterministic in
print ordering. v0.2.x warns on the restriction it cannot honor.
Post-install hardening. The installer built its venv with
pip installagainst version pins only, so the wheels it fetched were unverified. It also
carried an executor-download fallback that has never been able to run: the
executor repo publishes no releases, and no line pinned the sha256 the code
demanded.
Non-goals: verifying the v0.2.x legacy runner registry (its Nix-base32 hashes
are checked by that executor's own
check, and the gap is now logged loudly);acting on
--archbeyond accepting it.Implementation and validation
implementation/src/manager/run.rs+crates/modules-interfaces— workercontrol in the execution input, covered by
run_test.rsinstall/lib/python/post-install/—--require-hashes, every pin carryingthe sha256 of every distribution PyPI publishes, refreshed by
support/scripts/refresh-requirements-hashes.py. The--use-patchelfvariant drops the whole
liefblock, hashes includeddownload_executor,--executor-download,executor_download_urls, theexecutor-sha256manifest ingestion and its tests.
--archstays accepted — out-of-treeinstallers forward it — but nothing reads it
genvm-toolunit tests; manager Rust tests; a real venvbuilt through
--require-hashes;manifest.buildon this tree emits bothlines with
available_afteronlyRollback: the post-install commits are independent of the worker-control ones
and revert cleanly on their own.
Summary by CodeRabbit
New Features
Install & Security
Breaking Changes