Repository navigation
Initial implementation of remote persistent workers - #1922
MarcusSorealheis wants to merge 8 commits into
Conversation
42c8b8e to
c69655d
Compare
c3fde9b to
be7c3f4
Compare
There was a problem hiding this comment.
None of this is being run in CI, unlike the buildstream/mongo tests. Does this need adding?
| int32 verbosity = 5; | ||
|
|
||
| // Sandbox directory for this request | ||
| string sandbox_dir = 6; |
There was a problem hiding this comment.
It does need removing.
There was a problem hiding this comment.
You know, I'm not sure it does. At first, when I gave my internal presentation, that was my understanding. However, I have been reading the docs again and reading the Bazel source code. Take a look at: https://bazel.build/remote/persistent#options
There was a problem hiding this comment.
remote persistent actions will use the worker strategy but all others could use sandboxed or local.
There was a problem hiding this comment.
should still be removed
There was a problem hiding this comment.
It's very hard to test the worker runner.
There was a problem hiding this comment.
Need to test a few more things that just the key :)
|
|
||
| ```bash | ||
| npm run build | ||
| node dist/e2e.test.js |
There was a problem hiding this comment.
This doesn't exist in dist after running build.
There was a problem hiding this comment.
This is not ready. I need to work on this more. Sorry for confusion
Implements remote persistent workers feature for NativeLink, enabling persistent worker processes to be reused across multiple actions for improved build performance, particularly for JVM-based builds. Core implementation: - Persistent worker protocol based on Bazel worker protocol - Worker lifecycle management with automatic cleanup - Scheduler integration for persistent worker routing - Platform properties-based worker key matching Components: - PersistentWorkerManager: Pool management with LRU eviction - PersistentWorkerInstance: Individual worker process lifecycle - PersistentWorkerRunner: On-demand worker process spawning - WorkRequest/WorkResponse protocol implementation Scheduler integration: - Dedicated worker pools per persistentWorkerKey - Modified worker matching to check persistent pools first - Automatic pool management on worker registration/removal Testing: - Full unit test coverage - Integration tests for worker protocol - Integration tests for scheduler matching - All 72 tests passing (bazel test //...) Code quality improvements: - All clippy warnings resolved with -D warnings - Proper code formatting - Correct license headers (BSL 1.1 for enterprise features)
- Change clippy cast_possible_truncation from deny to allow - Format Cargo.toml exclude array with alphabetical ordering
Remove clippy flags that pre-commit doesn't want: - await_holding_lock - elidable_lifetime_names - explicit_into_iter_loop - redundant_closure_for_method_calls - semicolon_if_nothing_returned Change todo from deny (-D) to warn (-W)
- Apply generate-bazel-rc auto-fixes to .bazelrc - Remove unused dependencies (hyper-util, tracing-test) - Fix Vale documentation style issues in README - Replace e.g., with 'for example' - Use backticks for filenames and compiler names - Fix namespace terminology
The tracing-test dependency is required by the #[nativelink_test] macro. Cargo-machete incorrectly flagged it as unused because it's used by the macro expansion, not directly in code. Added cargo-machete ignore metadata to prevent future false positives.
There was a problem hiding this comment.
This and various other config files appear to have been reset to ~0.7.1 era (given the versions) and they remove a bunch of fixes I've done in that time. Possibly merge issues?
There was a problem hiding this comment.
Yes, that's correct. Let me try to get this fixed.
|
I need more time to work on this |
|
closing this approach in favor of a more secure implementation. |
Description
Remote persistent workers are coming to Nativelink! Not there yet.
Fixes # (issue)
Type of change
Please delete options that aren't relevant.
not work as expected)
How Has This Been Tested?
Please also list any relevant details for your test configuration
Checklist
bazel test //...passes locallygit amendsee some docsThis change is