fix: single-core Nautilus fits build no pool (release-integrate corrective, #1442) - #1443
Merged
Merged
Conversation
…lus's serial guard e6279c5 passed a fork-context Pool object to nautilus unconditionally so its internal pools use the fork start method (the Python 3.14 forkserver fix). But nautilus treats pool=None / pool=1 as fully serial (nautilus/sampler.py:286), and a real Pool(1) object bypasses that guard: every likelihood call is shipped to a single forked worker, which deadlocks in XLA backend_compile_and_load when the likelihood touches JAX (a forked child of a JAX-initialized parent cannot compile). This hung guides/modeling/advanced/hierarchical.py (76s -> 1800s TIMEOUT) and turned release-integrate validation RED. number_of_cores=1 now passes pool=None (serial, the pre-e6279c53f behaviour); the fork-context pool is still used for genuine multi-core runs. Fixes #1442 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BCVfiwJhHuQXxqksPJFCz4
This was referenced Aug 3, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Corrective PR for the Heart RED reason (quoted verbatim from
pyauto-brain health assess, 2026-08-01):Full causal record, authorization quote, and evidence on #1442.
What this clears
guides/modeling/advanced/hierarchical.pyTIMEOUT (1800s) in release-integrate runs 30672739606 and 30686136529 (76s before the regression window).e6279c5 (#1439) made
Nautilus.fit_multiprocessingalways construct a fork-contextPool(number_of_cores). nautilus treatspool=None/pool=1as fully serial (nautilus/sampler.py:286); a realPool(1)bypasses that guard, so every likelihood call runs in one forked worker, which deadlocks in XLAbackend_compile_and_loadwhen the likelihood touches JAX (py-spy stacks on #1442). This PR passespool=Noneatnumber_of_cores=1(pre-#1439 serial behaviour) and keeps the fork-context pool — the actual Python 3.14 forkserver fix — for genuine multi-core runs.Evidence
test__single_core_builds_no_pool: red on main (fork context entered), green here.test_autofit/non_linear/: 411 passed, 1 skipped.PYAUTO_TEST_MODE=1, JAX on):hierarchical.pyhangs on main (py-spy: main blocked inpool.map, worker stuck in XLA compile), completes patched (result posted on Nautilus 1-core fits deadlock under JAX: fork Pool(1) bypasses nautilus's serial-pool guard (release-integrate RED) #1442).Not claimed by this PR
The intermittent
autolens_test multi_dataset/jax_likelihood/delaunay.pyTIMEOUT (present in runs with pre-regression SHAs, passed 18.2s in run 30672739606) is a separate pre-existing flake and remains open.Validation plan
Merge → Stage 2 rehearsal (PyAutoHands) + Stage 3 release-integrate (PyAutoHeart) →
release validate --ingest→ fresh Heart verdict; the scheduled nightly performs the release on green under the standing grant (PyAutoBuild#127).🤖 Generated with Claude Code
https://claude.ai/code/session_01BCVfiwJhHuQXxqksPJFCz4