Skip to content

[aw-failures] [P0] Fix Copilot CLI harness segfault (exit 139) killing Agent Performance Analyzer #51789

Description

@github-actions

Problem

Fix the Copilot CLI harness segfault first — it kills the entire run before Copilot even starts, and nothing in the retry loop catches it.

Affected workflows and runs

  • Agent Performance Analyzer - Meta-Orchestrator (.github/workflows/agent-performance-analyzer.lock.yml) — §31390296030, 2026-08-10T12:55Z. First failure in the last 11 daily runs; most recent success §31314425506 (2026-08-09).

Probable root cause

The node process running the harness segfaults (exit 139 = SIGSEGV) right after the pre-flight /reflect fetch and before the Copilot subprocess spawns:

[copilot-harness] awf-reflect: fetching (apiproxy/redacted) (timeout=60000ms)
/tmp/awf-cmd-1.sh: line 29:    80 Segmentation fault      /bin/bash -c '... node ... copilot_harness.cjs ... copilot_sdk_driver.cjs ...'
[WARN] Command completed with exit code: 139

audit-diff against the nearest successful run ([§31314425506]) shows zero firewall/network drift (0 new domains, 0 status changes, 0 anomalies) — this rules out a sandbox/policy change as the trigger. The crash is in the node process itself (harness or sdk-driver), not bash, and it happens before maxRetries=3 can engage because the harness process dies outright instead of raising a catchable error.

Proposed remediation

  1. Reproduce locally with the same Node version (v22.23.1): run copilot_harness.cjs through the /reflect fetch path under ulimit -c unlimited to capture a core dump and confirm whether the fault is in Node itself, a native addon, or the sdk-driver's reflect-handling code.
  2. Wrap the harness process spawn so a SIGSEGV/non-zero-from-signal exit is treated as retryable, not a hard job failure — currently the retry loop never gets a chance to run.
  3. Add basic resource/memory monitoring around the /reflect fetch step to rule out OOM as the trigger.

Success criteria

  • Next 3 scheduled runs of Agent Performance Analyzer - Meta-Orchestrator complete without exit code 139.
  • If the harness does segfault again, the job retries automatically instead of failing outright.

Generated by 🔍 [aw] Failure Investigator (6h) · agent · 176.3 AIC · ⌖ 43.7 AIC · ⊞ 5.3K ·

  • expires on Aug 17, 2026, 5:25 AM UTC-08:00

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions