Skip to content

Avoid Linux precompile hangs in live workload#1274

Closed
quinnj wants to merge 1 commit into
masterfrom
codex/http-1252-precompile-linux-guard
Closed

Avoid Linux precompile hangs in live workload#1274
quinnj wants to merge 1 commit into
masterfrom
codex/http-1252-precompile-linux-guard

Conversation

@quinnj
Copy link
Copy Markdown
Member

@quinnj quinnj commented Jun 3, 2026

Summary

  • use Base.timedwait for the HTTP precompile workload watchdog instead of Reseau.IOPoll.timedwait
  • make the live server/request precompile workload opt-in on Linux with Julia 1.11+
  • add Preferences as a direct dependency since HTTP now reads its own precompile_workload preference

Context

Issue #1252 is still reproducible for affected Linux users even with Reseau@1.1.4. The issue history points at the live HTTP precompile workload: precompile_workload=false avoids the hang, and the reports are on Linux Julia 1.11/1.12 while Julia 1.10 eventually completes.

This keeps the workload enabled by default for macOS/Windows and Linux Julia 1.10, but avoids running live local servers/requests during precompile for the Linux Julia 1.11+ lane where users are hanging. Users can still explicitly opt in with precompile_workload=true.

Testing

  • julia --project=. -e 'using HTTP; HTTP._run_precompile_workload!(); println("precompile workload ok")'
  • julia +1.10.11 --startup-file=no -e 'using Pkg; tmp = mktempdir(); Pkg.activate(tmp); Pkg.develop(path="/tmp/http-1252-fix"); Pkg.precompile(); using HTTP; @show VERSION; @show HTTP._precompile_workload_enabled(); @show Base.timedwait(() -> true, 1.0; pollint=0.01)'
  • docker run --rm --platform linux/arm64 -v /tmp/http-1252-fix:/work -e JULIA_DEPOT_PATH=/tmp/julia-depot-arm julia:1.12.6 --startup-file=no -e 'using Pkg; Pkg.activate(temp=true); Pkg.develop(path="/work"); Pkg.precompile(); using HTTP; @show Sys.islinux(); @show VERSION; @show HTTP._precompile_workload_enabled()'
  • julia --project=. -e 'using Pkg; Pkg.test()'

Co-authored by Codex

@codecov
Copy link
Copy Markdown

codecov Bot commented Jun 3, 2026

Codecov Report

❌ Patch coverage is 0% with 4 lines in your changes missing coverage. Please review.
✅ Project coverage is 84.91%. Comparing base (62e7d69) to head (7e80f0e).

Files with missing lines Patch % Lines
src/precompile.jl 0.00% 4 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1274      +/-   ##
==========================================
+ Coverage   84.88%   84.91%   +0.03%     
==========================================
  Files          28       28              
  Lines       10711    10713       +2     
==========================================
+ Hits         9092     9097       +5     
+ Misses       1619     1616       -3     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@quinnj
Copy link
Copy Markdown
Member Author

quinnj commented Jun 3, 2026

Closing this. The workaround shape here is not the right answer for issue #1252; we need to continue root-cause investigation instead of disabling the workload.

@quinnj quinnj closed this Jun 3, 2026
@quinnj quinnj deleted the codex/http-1252-precompile-linux-guard branch June 3, 2026 13:35
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