Skip to content

boost: drop the b2 engine self-test step (deadlocks on high-core boxes) - #313

Merged
twitchyliquid64 merged 1 commit into
mainfrom
fix/boost-drop-b2-engine-tests
Jul 1, 2026
Merged

boost: drop the b2 engine self-test step (deadlocks on high-core boxes)#313
twitchyliquid64 merged 1 commit into
mainfrom
fix/boost-drop-b2-engine-tests

Conversation

@bryan-minimal

@bryan-minimal bryan-minimal commented Jun 29, 2026

Copy link
Copy Markdown
Member

What

Removes the pushd tools/build/test; python3 test_all.py; popd step from packages/boost/build.sh.

Why

That line runs Boost.Build's own engine regression suite (test_all.py) after staging boost. It spawns multiprocessing.Pool(cpu_count())48 workers on the resized c4-standard-48 res-servers — and deadlocks in the build sandbox: 49 idle spawn_main workers at 0% CPU, empty /dev/shm, zero progress. It wedged a full pkgs build for hours (seen on #312 — both arches stuck at Building package: boost; res-servers idle at 2–4% CPU, ~1.3 MB/min of spin output).

It validates the b2 build tool, not boost — so it's unnecessary for packaging. bootstrap.sh + b2 stage + b2 install fully build and install boost without it. Removing it kills the deadlock on any core count.

The 32→48-core res-server resize is what surfaced this (cpu_count() → worker count), and it's likely the same class as the earlier bun hangs — follow-ups: cap effective parallelism in the build sandbox, and a build-bot mid-stream read-timeout so a wedged step fails fast instead of riding the 6h watchdog.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Bug Fixes
    • Improved package build reliability by avoiding a test step that could cause build-time hangs in restricted environments.
    • Added a note clarifying why that check is skipped during packaging.

packages/boost/build.sh ran Boost.Build's own engine regression suite
(tools/build/test/test_all.py) after staging boost. That suite spawns a
multiprocessing.Pool(cpu_count()) — 48 workers on the resized c4-standard-48
res-servers — and deadlocks in the build sandbox: all workers sleeping at 0%
CPU, empty /dev/shm, no progress. It wedged a full pkgs build for hours
(observed on pkgs#312, both arches stuck at "Building package: boost").

The suite tests the b2 build *tool*, not boost, so it's not needed to package
boost — bootstrap + b2 stage + b2 install fully build and install it. Removing
the step kills the deadlock on any core count; boost is otherwise unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: daef5d22-dec7-4ac1-9fbb-f1adb3ce6493

📥 Commits

Reviewing files that changed from the base of the PR and between 0577517 and ccde2a0.

📒 Files selected for processing (1)
  • packages/boost/build.sh

📝 Walkthrough

Walkthrough

The Boost package build script removes the execution of tools/build/test/test_all.py and replaces it with a comment block stating the self-test is intentionally skipped during packaging due to sandbox deadlock behavior.

Changes

Skip Boost.Build Self-Test

Layer / File(s) Summary
Remove test_all.py invocation
packages/boost/build.sh
Replaces the pushd/python3 test_all.py/popd block with a comment explaining the self-test is skipped during packaging to avoid sandbox deadlocks.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

Poem

🐇 A test that deadlocks in the box,
No longer runs — we changed the locks!
A comment now explains the why,
The sandbox stays peaceful, no deadlock cry.
Hop along, the build goes through! 🎉

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: removing the Boost.Build self-test step due to deadlocks on high-core machines.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/boost-drop-b2-engine-tests

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

@twitchyliquid64
twitchyliquid64 added this pull request to the merge queue Jul 1, 2026
Merged via the queue into main with commit 3a66567 Jul 1, 2026
5 checks passed
@twitchyliquid64
twitchyliquid64 deleted the fix/boost-drop-b2-engine-tests branch July 1, 2026 01:10
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