Skip to content

trace compare self-conflicts on shared rig resource #4203

@chubes4

Description

@chubes4

Problem

homeboy trace compare can fail before executing either side when baseline and candidate use the same rig resource. This blocks reviewer-grade Woo Stripe ECE proof now that the needed Homeboy Rigs profiles have landed.

The failure occurs even with --schedule interleaved, so the compare path appears to hold or contend on the rig resource at the wrong scope.

Reproduction

From Homeboy Rigs branch/worktree context after chubes4/homeboy-rigs#265 landed:

homeboy trace compare woocommerce-gateway-stripe ece-product-page-waterfall \
  --rig woocommerce-stripe-ece-product-page \
  --profile webperf-wallet-fanout \
  --baseline-target origin/develop \
  --candidate 0631a0a1d5f6856c960f4224efa7d3f03787d666 \
  --report markdown

Retry with interleaved scheduling:

homeboy trace compare woocommerce-gateway-stripe ece-product-page-waterfall \
  --rig woocommerce-stripe-ece-product-page \
  --profile webperf-wallet-fanout \
  --baseline-target origin/develop \
  --candidate 0631a0a1d5f6856c960f4224efa7d3f03787d666 \
  --schedule interleaved \
  --report markdown

Observed

Both baseline and candidate fail before trace execution:

Rig 'woocommerce-stripe-ece-product-page' cannot run 'trace': rig resource 'woocommerce-stripe-ece-product-page' is already held by rig 'woocommerce-stripe-ece-product-page' running 'trace' (pid 2041869, since 2026-06-13T00:29:07.887787242+00:00)

Failed compare aggregate paths emitted by the lab run:

  • .homeboy/trace-compare/ece-product-page-waterfall-20260613002859/baseline.aggregate.json
  • .homeboy/trace-compare/ece-product-page-waterfall-20260613002859/candidate.aggregate.json
  • .homeboy/trace-compare/ece-product-page-waterfall-20260613002922/baseline.aggregate.json
  • .homeboy/trace-compare/ece-product-page-waterfall-20260613002922/candidate.aggregate.json

No successful trace artifacts were produced.

Expected

trace compare should be able to compare baseline and candidate against the same rig resource without self-conflict.

Possible acceptable shapes:

  • acquire/release the rig resource per child trace run, including interleaved compare runs;
  • acquire one compare-level lock and allow child runs under that owner; or
  • detect unsupported lock topology and emit a clear actionable diagnostic before creating failed aggregate reports.

Why this matters

Homeboy Rigs PR #265 landed the deterministic Woo Stripe ECE fanout classification/profile work. The remaining proof issue is Homeboy Rigs #262, which requires a successful homeboy-lab compare for baseline origin/develop vs Woo Stripe PR #5530 candidate 0631a0a1d5f6856c960f4224efa7d3f03787d666.

Without this fix, the rig code can be test-covered but cannot produce reviewer-ready baseline/candidate proof.

Related

AI assistance

  • AI assistance: Yes
  • Tool(s): OpenCode (GPT-5.5)
  • Used for: Drafting this issue from observed Homeboy lab compare failures and current Woo Stripe proof workflow.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions