Skip to content

feat(tracer): add deterministic preflight checks#72

Merged
TrevorBasinger merged 2 commits into
mainfrom
tb/tracer-preflight
Apr 24, 2026
Merged

feat(tracer): add deterministic preflight checks#72
TrevorBasinger merged 2 commits into
mainfrom
tb/tracer-preflight

Conversation

@TrevorBasinger
Copy link
Copy Markdown
Member

This PR adds deterministic tracer preflight support to roar and enforces it before workload launch.

Specifically, it:

  • adds strict preflight checks for ebpf, preload, and ptrace
  • adds native --preflight --json support to the Rust tracer binaries
  • updates roar tracer check to use strict preflight, with --json and --command
  • makes roar run / roar build fail before launching the workload when the configured tracer cannot work
  • preserves auto fallback behavior only among backends that already passed strict preflight

This is intentionally a single-PR implementation focused on deterministic early failure rather than best-effort runtime attach.

Why

We hit a real case where tracer startup looked viable until attach time, then failed late and opaquely:

  • roar-tracer-ebpf: failed to attach 'sys_enter_open' ... No such file or directory

That made it too easy for roar to start a workload even when the tracer was known not to be viable on the current
machine/kernel/backend combination.

This PR moves that failure earlier and makes it explicit:

  • backend readiness is checked before workload launch
  • roar tracer check uses the same strict contract
  • native tracers own their own backend-specific validation

@TrevorBasinger TrevorBasinger marked this pull request as ready for review April 24, 2026 15:25
@TrevorBasinger TrevorBasinger merged commit 9f19ff5 into main Apr 24, 2026
12 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