Skip to content

docs(ci): close T-MACOS-SIGSEGV-UNRESOLVED-2026-05-19 — root cause identified, fix already landed - #680

Merged
lusoris merged 1 commit into
masterfrom
investigate/macos-sigsegv-p0-investigation
Jun 4, 2026
Merged

lusoris merged 1 commit into
masterfrom
investigate/macos-sigsegv-p0-investigation

Conversation

@lusoris

@lusoris lusoris commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

Summary

P0 investigation of T-MACOS-SIGSEGV-UNRESOLVED-2026-05-19 (macOS CI RED since 2026-05-19).

  • Root cause found: the macOS CI failure was NOT a runtime SIGSEGV — it was a compile error (integer_ssim_moments_t undefined on non-x86 platforms, 8 errors in core/src/feature/integer_ssim.c)
  • Fix already landed: PR fix(build): restore integer_ssim_moments_t type definition (macOS Clang unblock) #654 / commit 695d29626 (ADR-1040, merged today 2026-06-04) promoted the typedef to a shared integer_ssim.h header included unconditionally
  • This PR closes the investigation: updates docs/state.md (T-MACOS-SIGSEGV-UNRESOLVED-2026-05-19 moved from Open to Recently closed) and adds docs/development/macos-sigsegv-investigation.md

Investigation method

  1. Listed .github/workflows/libvmaf-build-matrix.yml — identified 3 macOS matrix rows
  2. Fetched CI run 26930504863 (most recent fully-run macOS failure, PR fix(libvmaf,dnn): vmaf_init double-init guard + vmaf_close pointer-zero + DNN fallback path #642)
  3. Retrieved job logs via gh run view --job 79449068642 --log-failed
  4. Found actual error: 8× error: unknown type name 'integer_ssim_moments_t' in integer_ssim.c:167
  5. Traced type to x86/integer_ssim_avx2.h guarded by #if ARCH_X86; macos-latest resolves to macos-15-arm64 (Apple Silicon), so ARCH_X86=0
  6. Confirmed fix: git log --oneline core/src/feature/integer_ssim.h → 695d29626 fix(build): restore integer_ssim_moments_t type definition (macOS Clang unblock) (#654) — already merged

Hypothesis at investigation start

The task brief described "SIGSEGV" based on the 2026-05-19 state.md entry. The actual log showed a clean build-time error — no test ran, no segfault occurred. The earlier SIGSEGV tracking entry (T-MACOS-VMAF-WRITE-OUTPUT-SEGV-2026-05-19, now closed) was about output.c off-by-one errors; the open row was mislabeled after the fix cycle.

Instrumentation

The tmate SSH debug step (ADR-0626) in libvmaf-build-matrix.yml is still in place for genuine test-time failures. Usage documented in docs/development/macos-sigsegv-investigation.md.

Reproducer / smoke-test command

# On macOS arm64 or any non-x86 host:
meson setup core/build-check -Denable_cuda=false -Denable_sycl=false
ninja -C core/build-check 2>&1 | grep integer_ssim
# Expected: no errors (was: 8× "unknown type name 'integer_ssim_moments_t'")

Checklist

  • research digest: no digest needed — investigation confirms existing fix
  • decision matrix: no alternatives — only-one-way root-cause identification
  • AGENTS.md invariant note: no rebase-sensitive invariants added
  • reproducer: see smoke-test command above
  • changelog.d fragment: changelog.d/chore/macos-sigsegv-investigation-state-update.md
  • docs/rebase-notes.md: no rebase impact — docs and state.md only
  • docs/state.md: T-MACOS-SIGSEGV-UNRESOLVED-2026-05-19 moved from Open to Recently closed

🤖 Generated with Claude Code

@lusoris
lusoris marked this pull request as ready for review June 4, 2026 09:13
Copilot AI review requested due to automatic review settings June 4, 2026 09:13
Log analysis of CI run 26930504863 confirmed macOS arm64 failures were
8 compile errors ("unknown type name 'integer_ssim_moments_t'") in
core/src/feature/integer_ssim.c, not a runtime SIGSEGV.

Root cause: typedef gated behind #if ARCH_X86; macos-latest resolved to
macos-15-arm64 (Apple Silicon) on runner image 20260527.0100.1.
Fix already landed in PR #654 (commit 695d296, ADR-1040).

- Moves T-MACOS-SIGSEGV-UNRESOLVED-2026-05-19 from Open to Recently
  closed in docs/state.md with the correct root cause description
- Adds docs/development/macos-sigsegv-investigation.md (investigation
  steps, root cause, fix, instrumentation notes, lessons learned)
- Adds changelog fragment

no rebase impact: docs and state.md only

Co-Authored-By: Lusoris <lusoris@pm.me>
@lusoris
lusoris force-pushed the investigate/macos-sigsegv-p0-investigation branch from d2d3be3 to f30ba36 Compare June 4, 2026 09:16
@lusoris
lusoris merged commit fbb69a5 into master Jun 4, 2026
12 of 18 checks passed
@lusoris
lusoris deleted the investigate/macos-sigsegv-p0-investigation branch June 4, 2026 09:16
@lusoris
lusoris removed the request for review from Copilot June 4, 2026 09:37
lusoris added a commit that referenced this pull request Jun 6, 2026
Two Open rows in docs/state.md referred to bugs already in the
Recently Closed section:

- T-CUDA-FILTER1D-RES-DISPATCH-CONFLICT-2026-05-29 was closed by
  PR #680; the Open row citing "PR #214 (OPEN)" is removed.
- T-CPP23-READ-JSON-MODEL-PENDING-2026-05-29 had a stale duplicate
  referencing "PR #215 (OPEN)"; the duplicate is removed. The
  correct owner-driven copy (PR #215 closed without merging,
  fresh PR required) is retained.

T-DOC-LEGACY-RUNNER-MISSING-DEPRECATION-2026-05-29 updated: PR #216
was closed without merging 2026-05-30; the row now reflects that
docs/development/deprecations.md exists (PR #605) but still lacks
the VmafLegacyQualityRunner entry. Owner-driven.

Also fixes a pre-existing data corruption: T-GPU-COVERAGE-STABLE-WEEKS
appeared twice on one line in Recently Closed (no newline separator);
corrected to a single properly-formatted row.

Net Open change: -2 rows.

no digest needed: trivial doc sweep
no alternatives: only-one-way fix
no rebase-sensitive invariants: docs/state.md only

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
lusoris added a commit that referenced this pull request Jun 6, 2026
…#724)

Two Open rows in docs/state.md referred to bugs already in the
Recently Closed section:

- T-CUDA-FILTER1D-RES-DISPATCH-CONFLICT-2026-05-29 was closed by
  PR #680; the Open row citing "PR #214 (OPEN)" is removed.
- T-CPP23-READ-JSON-MODEL-PENDING-2026-05-29 had a stale duplicate
  referencing "PR #215 (OPEN)"; the duplicate is removed. The
  correct owner-driven copy (PR #215 closed without merging,
  fresh PR required) is retained.

T-DOC-LEGACY-RUNNER-MISSING-DEPRECATION-2026-05-29 updated: PR #216
was closed without merging 2026-05-30; the row now reflects that
docs/development/deprecations.md exists (PR #605) but still lacks
the VmafLegacyQualityRunner entry. Owner-driven.

Also fixes a pre-existing data corruption: T-GPU-COVERAGE-STABLE-WEEKS
appeared twice on one line in Recently Closed (no newline separator);
corrected to a single properly-formatted row.

Net Open change: -2 rows.

no digest needed: trivial doc sweep
no alternatives: only-one-way fix
no rebase-sensitive invariants: docs/state.md only

Co-authored-by: Lusoris <lusoris@pm.me>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
@lusoris lusoris added this to the 1.0.0 — First release milestone Sep 4, 2026
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