Skip to content

research: fix repeat sample manifest projection - #154

Merged
ErenAri merged 6 commits into
mainfrom
research/fix-repeat-manifest-projection
Sep 19, 2026
Merged

ErenAri merged 6 commits into
mainfrom
research/fix-repeat-manifest-projection

Conversation

@ErenAri

@ErenAri ErenAri commented Sep 19, 2026

Copy link
Copy Markdown
Contributor

Summary

Fix the first manual research-repeat-v1 execution failure without changing the
frozen pilot v1 evidence or the repeat sample.

Failed run

  • workflow run: 35443831085
  • source commit: 804c021ddc47a1d6b479a70690af4032c8dd79db
  • artifact: 10585281049
  • artifact SHA-256:
    b32ca592c79a01f4c70cf0d85607dfe07a0efe23deddee4dd817187483ac02fa

The workflow successfully materialized the frozen inputs and the three command
mode tuples completed stably, but every libbpf-backed tuple failed before VM
execution.

The repeat runner creates a one-profile matrix for each sampled tuple. Frozen
v1 libbpf manifests intentionally list all ten study profiles under
required_profiles. BPFCompat correctly rejects a matrix that omits any
manifest-required profile, so those sampled runs exited before producing a
report:

bpfcompat test failed: manifest required profile "..." is not present in matrix

The failed staging run therefore observed only 9/21 planned repeats. Its 9
completed command-mode observations are diagnostic only; the run is not promoted
as repeat-study evidence.

Fix

For libbpf-backed repeat tuples only:

  • verify the exact frozen source manifest Git blob recorded in
    research/corpus/v1/study-plan.json;
  • create a repeat-only manifest projection whose sole semantic scheduling change
    is narrowing required_profiles to the sampled profile;
  • retain the projected manifest plus metadata containing:
    • source Git blob;
    • source SHA-256;
    • original required-profile list;
    • selected profile;
    • projected SHA-256;
    • projection rule;
  • preserve all program/attach/validation fields unchanged;
  • record the projection helper SHA-256 in repeat provenance.

This does not rewrite the frozen corpus manifest. It adapts only its matrix
membership assertion for a purposefully sampled single-profile rerun.

Regression coverage

The repeat preflight now:

  • compiles and self-tests the projection helper;
  • verifies every sampled libbpf case has a frozen manifest identity;
  • recomputes the source manifest Git blob and compares it with the frozen study
    plan;
  • verifies the sampled profile is present in the frozen required-profile list.

After merge

Dispatch the repeat workflow again from main:

gh workflow run research-repeat-v1.yml --repo Kernel-Guard/bpfcompat --ref main

Only a complete post-fix run should be considered for the repeat-stability
dataset.

Copilot AI lite review requested due to automatic review settings September 19, 2026 13:16

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@coderabbitai

coderabbitai Bot commented Sep 19, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 12 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: 461baa12-5324-42ba-8f10-436ff11dcf44

📥 Commits

Reviewing files that changed from the base of the PR and between 804c021 and 8c49776.

📒 Files selected for processing (4)
  • .github/workflows/research-repeat-v1.yml
  • research/repeat/v1/README.md
  • scripts/research/project-repeat-manifest-v1.py
  • scripts/research/run-repeat-v1.sh

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@ErenAri
ErenAri merged commit d2a78e0 into main Sep 19, 2026
14 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.

2 participants