Skip to content

Harden actiondfs and isolate remote action execution - #22

Merged
dzbarsky merged 39 commits into
mainfrom
codex/shared-initramfs
Jul 31, 2026
Merged

Harden actiondfs and isolate remote action execution#22
dzbarsky merged 39 commits into
mainfrom
codex/shared-initramfs

Conversation

@dzbarsky

@dzbarsky dzbarsky commented Jul 31, 2026

Copy link
Copy Markdown
Member

Summary

  • Harden actiondfs directory parsing, inode identity, staged-directory streaming, symlink handling, metadata synchronization, backing-file validation, and inode/dentry lifetimes.
  • Isolate each remote action with mount/network/PID namespaces, cgroups, seccomp filters, restricted BPF/vsock/io_uring entry points, execution deadlines, and process-tree cancellation.
  • Bound protobuf decoding, HTTP/2 headers/bodies/concurrent streams, CAS and ByteStream transfers, ActionCache results, and declared/generated outputs.
  • Extend end-to-end coverage for staged filesystem operations, cgroup PID limits, sandbox isolation, cancellation, timeout recovery, malformed protobufs, and unsafe CAS entries.
  • Keep Linux LLVM benchmark instrumentation opt-in and avoid x86 seccomp BPF JIT compilation without disabling seccomp filters.

Validation

  • Remote Bazel build of 66 actual repository targets, including both Linux kernels and release binaries; excludes 12 upstream-generated Linux kernel host tools that already fail as standalone macOS targets on main.
  • Remote Bazel tests: //src:unit_tests and //tools:e2e_action_tool_tests.
  • (cd test && bazel test //:parse_timings_test).
  • Production tools/e2e.sh vm on macOS Virtualization.framework, including the full remote-execution stress workload, PID limits, execution deadlines, and recovery.
  • Production x86 Linux QEMU LLVM smoke with 1,998 remote actions and 1,998 native Linux actions.

Linux CI performance comparison

Both runs use the same @llvm-project//llvm:llvm-tblgen workload, warmup, 4-vCPU/4-GiB x86 QEMU VM, default Bazel job count, production actiondfs configuration, remote cache behavior, and 1,998 executed actions.

  • Pull request: actiond 280.135s, native Linux 282.035s, actiond/native 0.993×.
  • Upstream main: actiond 309.659s, native Linux 314.245s, actiond/native 0.985×.

The normalized difference is 0.8 percentage points across separate GitHub-hosted runners; actiond is faster than native Linux in both measurements.

Windows CI performance comparison

Both Windows runs execute the same @llvm-project//llvm:llvm-tblgen workload with eight Bazel jobs, four VM CPUs, and 1,998 executed actions.

  • Pull request: actiond 341.332s, native Windows 333.829s, actiond/native 1.022×.
  • Upstream main: actiond 262.970s, native Windows 260.088s, actiond/native 1.011×.

The normalized difference is 1.1 percentage points across separate GitHub-hosted runners; an earlier pull-request run measured 0.975×, demonstrating the expected runner variation.

dzbarsky added 30 commits June 15, 2026 15:16
@dzbarsky
dzbarsky marked this pull request as ready for review July 31, 2026 16:56
@dzbarsky
dzbarsky merged commit 53e7a41 into main Jul 31, 2026
4 of 5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant