Skip to content

Conversation

@xal-0
Copy link
Member

@xal-0 xal-0 commented Dec 5, 2025

We use raw Base.Filesystem.File IO on PTYs in the REPL precompile script. Due to #24440, spawning a subprocess using the REPL's shell mode clears the O_NONBLOCK flag set on the PTY, resulting in deadlocks when libuv later reads or writes to it from Julia code. I haven't identified what caused this to become more of a problem recently, but I don't think some extra compilation latency when starting shell mode is worth it if it's causing mystery timeouts in CI.

See also the description of #60141.

We use raw Base.Filesystem.File IO on PTYs in the REPL precompile script.  Due
to JuliaLang#24440, spawning a subprocess using the REPL's shell mode clears the
O_NONBLOCK flag set on the PTY, resulting in deadlocks when libuv later reads or
writes to it from Julia code.  I haven't identified what caused this to become
more of a problem recently, but I don't think some extra compilation latency
when starting shell mode is worth it if it's causing mystery timeouts in CI.
@IanButterworth IanButterworth added the REPL Julia's REPL (Read Eval Print Loop) label Dec 5, 2025
xal-0 and others added 2 commits December 5, 2025 15:21
@IanButterworth IanButterworth added the merge me PR is reviewed. Merge when all tests are passing label Dec 6, 2025
@IanButterworth IanButterworth merged commit 18aa237 into JuliaLang:master Dec 6, 2025
7 of 9 checks passed
@inkydragon inkydragon removed the merge me PR is reviewed. Merge when all tests are passing label Dec 12, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

REPL Julia's REPL (Read Eval Print Loop)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants