Skip to content

ci: pin R workflows to jammy to fix the noble stringfish TBB ABI failure - #72

Open
seonghobae wants to merge 1 commit into
developfrom
claude/contextualwisdomlab-audit-governance-btqxja
Open

ci: pin R workflows to jammy to fix the noble stringfish TBB ABI failure#72
seonghobae wants to merge 1 commit into
developfrom
claude/contextualwisdomlab-audit-governance-btqxja

Conversation

@seonghobae

Copy link
Copy Markdown
Collaborator

Problem

The scheduled test-suite workflow is failing on develop (run 30790869383, head 76a853a). R CMD INSTALL . aborts at package load:

unable to load shared object '.../stringfish/libs/stringfish.so':
  undefined symbol:
  _ZN3tbb8internal25concurrent_vector_base_v316internal_grow_byEmmPFvPvPKvmES4_
ERROR: lazy loading failed for package 'kaefa'

ubuntu-latest is now noble (24.04), for which Posit P3M does not ship precompiled binaries for the mirt → SimDesign → qs → stringfish chain — so setup-r-dependencies source-builds stringfish, and the source-built stringfish.so links against a system Intel TBB whose ABI omits the expected symbol. Every load of kaefa (which imports mirt) then fails before any test runs.

R-CMD-check and test-fast only appear green because their last runs (2026-07-13) predate the noble switch; they load the package the same way and would fail identically on noble — including on this PR.

Fix

Pin all three workflows' Ubuntu runners to ubuntu-22.04 (jammy), whose P3M binaries avoid the source compile entirely. This is the same remedy aFIPC's r.yml already uses for this exact symbol. macOS/Windows R-CMD-check jobs are unchanged.

  • test-suite.yamlubuntu-22.04
  • test-fast.yamlubuntu-22.04
  • R-CMD-check.yaml → the three Ubuntu matrix entries (devel/release/oldrel-1) → ubuntu-22.04

Safety / validation

Workflow-runner change only — no package code, tests, or dependencies touched (YAML validated). The failing install is a noble-only condition that cannot be reproduced off-noble, so verification is by CI itself: this PR's runs execute on jammy, where the install/load succeeds. The pin is a proven fix for the identical symbol in a sibling repo. Comment in each file notes to revisit once P3M ships noble binaries for this chain.


Generated by Claude Code

…ilure

The scheduled `test-suite` workflow is failing on `develop`: `R CMD INSTALL .`
aborts at package load with

  unable to load shared object '.../stringfish/libs/stringfish.so':
  undefined symbol:
  _ZN3tbb8internal25concurrent_vector_base_v316internal_grow_byEmmPFvPvPKvmES4_

(run 30790869383, head 76a853a). `ubuntu-latest` is now noble (24.04), for
which Posit P3M does not ship precompiled binaries for the
mirt -> SimDesign -> qs -> stringfish chain, so setup-r-dependencies
source-builds stringfish; the source-built `stringfish.so` links against a
system Intel TBB whose ABI omits the expected symbol, and every attempt to load
`kaefa` (which pulls in `mirt`) then fails before any test runs.

R-CMD-check and test-fast only appear green because their last runs predate the
noble switch; they load the package the same way and would fail identically on
noble. Pin all three workflows' Ubuntu runners to `ubuntu-22.04` (jammy), whose
P3M binaries avoid the source compile entirely — the same fix aFIPC's `r.yml`
already uses for this exact error. macOS/Windows R-CMD-check jobs are unchanged.

This is a workflow-runner change only; no package code, tests, or dependencies
are touched. Verification is by CI itself (the failing install cannot be
reproduced off-noble); the pin is a proven remedy for the identical symbol in a
sibling repo. Revisit once P3M ships noble binaries for this chain.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AzUnTqFnQqhRbaopvDdag7
@coderabbitai

coderabbitai Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

@seonghobae, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 37 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 2f9b5297-a1b2-43a0-8673-7fe99451acfe

📥 Commits

Reviewing files that changed from the base of the PR and between 76a853a and 90e10d8.

📒 Files selected for processing (3)
  • .github/workflows/R-CMD-check.yaml
  • .github/workflows/test-fast.yaml
  • .github/workflows/test-suite.yaml

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

Copy link
Copy Markdown
Collaborator Author

Scope note on the failing R-CMD-check matrix jobs:

  • Ubuntu jobs (test-suite, test-fast, R-CMD-check ubuntu × 3): this PR fixes them by pinning to ubuntu-22.04 (jammy), avoiding the noble source-build of the mirt → … → stringfish chain and its Intel-TBB ABI failure (undefined symbol …concurrent_vector_base_v3::internal_grow_by). That is the red scheduled test-suite this PR targets.

  • macos-latest (release) and windows-latest (release): these fail with a separate, pre-existing, platform-specific variant of the same stringfish/TBB mismatch. On macOS, stringfish.so requires tbb::internal::NFS_Allocate, which is absent from the RcppParallel-bundled libtbb.dylib:

    dlopen(.../stringfish/libs/stringfish.so): Symbol not found: __ZN3tbb8internal12NFS_AllocateEmmPv
    Expected in: .../RcppParallel/lib/libtbb.dylib
    

    This is not introduced by this PR (which changes only the Ubuntu matrix entries) and is driven by the macOS/Windows R-toolchain + CRAN binary state, not by any package code here — it would fail on develop too when R-CMD-check next runs. A macOS/Windows remedy (binary-only stringfish install, or a compatible stringfish/RcppParallel pin) is a separate change that cannot be validated off-platform, so it is intentionally out of scope here.

This PR is scoped to unblock the red Ubuntu/noble path; the macOS/Windows stringfish/TBB failures are a separate pre-existing platform issue.


Generated by Claude Code

@seonghobae
seonghobae enabled auto-merge August 4, 2026 04:33
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