Skip to content

CTRL+C is even worse on 1.13 #58689

@denglerchr

Description

@denglerchr

This is working on Julia 1.11, therefore I assume there is an issue in Julia (tested on Windows). Im using Juliaup to install Julia. The bug report includes usage of Oxygen (1.7.1), I posting here though as the bug only happens on Julia 1.12 .

First about my machine

julia> versioninfo()
Julia Version 1.12.0-beta4
Commit 600ac61d3d (2025-06-05 07:03 UTC)
Build Info:
  Official https://julialang.org release
Platform Info:
  OS: Windows (x86_64-w64-mingw32)
  CPU: 16 × 11th Gen Intel(R) Core(TM) i9-11900H @ 2.50GHz
  WORD_SIZE: 64
  LLVM: libLLVM-18.1.7 (ORCJIT, tigerlake)
  GC: Built with stock GC
Threads: 1 default, 1 interactive, 1 GC (on 16 virtual cores)

Minimal example:

julia> using Oxygen
julia> serve()

Then hit CTRL+C .

On Julia 1.12 this crashed the REPL with this error message.

julia> Unhandled Task ERROR: TaskFailedException
Stacktrace:
 [1] #wait#583
   @ .\task.jl:363 [inlined]
 [2] wait
   @ .\task.jl:360 [inlined]
 [3] fetch
   @ .\task.jl:525 [inlined]
 [4] prompt!(term::REPL.Terminals.TextTerminal, prompt::REPL.LineEdit.ModalInterface, s::REPL.LineEdit.MIState)
   @ REPL.LineEdit C:\Users\dengl\.julia\juliaup\julia-1.12.0-beta4+0.x64.w64.mingw32\share\julia\stdlib\v1.12\REPL\src\LineEdit.jl:2983
 [5] run_interface(terminal::REPL.Terminals.TextTerminal, m::REPL.LineEdit.ModalInterface, s::REPL.LineEdit.MIState)
   @ REPL.LineEdit C:\Users\dengl\.julia\juliaup\julia-1.12.0-beta4+0.x64.w64.mingw32\share\julia\stdlib\v1.12\REPL\src\LineEdit.jl:2849
 [6] run_frontend(repl::REPL.LineEditREPL, backend::REPL.REPLBackendRef)
   @ REPL C:\Users\dengl\.julia\juliaup\julia-1.12.0-beta4+0.x64.w64.mingw32\share\julia\stdlib\v1.12\REPL\src\REPL.jl:1664
 [7] (::REPL.var"#61#62"{REPL.LineEditREPL, REPL.REPLBackendRef})()
   @ REPL C:\Users\dengl\.julia\juliaup\julia-1.12.0-beta4+0.x64.w64.mingw32\share\julia\stdlib\v1.12\REPL\src\REPL.jl:651

    nested task error: InterruptException:
    Stacktrace:
     [1] yieldto(t::Task, x::Any)
       @ Base .\task.jl:1101
     [2] yieldto
       @ .\task.jl:1095 [inlined]
     [3] wait()
       @ Base .\task.jl:1213
     [4] wait(c::Base.GenericCondition{Base.Threads.SpinLock}; first::Bool)
       @ Base .\condition.jl:141
     [5] wait
       @ .\condition.jl:136 [inlined]
     [6] wait_readnb(x::Base.TTY, nb::Int64)
       @ Base .\stream.jl:416
     [7] eof(s::Base.TTY)
       @ Base .\stream.jl:106
     [8] eof(io::REPL.Terminals.TTYTerminal)
       @ Base .\io.jl:472
     [9] (::REPL.LineEdit.var"#prompt!##2#prompt!##3"{REPL.Terminals.TTYTerminal, REPL.LineEdit.ModalInterface, REPL.LineEdit.MIState, REPL.LineEdit.Prompt})()
       @ REPL.LineEdit C:\Users\dengl\.julia\juliaup\julia-1.12.0-beta4+0.x64.w64.mingw32\share\julia\stdlib\v1.12\REPL\src\LineEdit.jl:2948
ERROR: TaskFailedException
Stacktrace:
  [1] try_yieldto(undo::typeof(Base.ensure_rescheduled))
    @ Base .\task.jl:1128
  [2] wait()
    @ Base .\task.jl:1225
  [3] wait(c::Base.GenericCondition{ReentrantLock}; first::Bool)
    @ Base .\condition.jl:141
  [4] wait
    @ .\condition.jl:136 [inlined]
  [5] take_buffered(c::Channel{Any})
    @ Base .\channels.jl:532
  [6] take!
    @ .\channels.jl:526 [inlined]
  [7] repl_backend_loop(backend::REPL.REPLBackend, get_module::Function)
    @ REPL C:\Users\dengl\.julia\juliaup\julia-1.12.0-beta4+0.x64.w64.mingw32\share\julia\stdlib\v1.12\REPL\src\REPL.jl:438
  [8] start_repl_backend(backend::REPL.REPLBackend, consumer::Any; get_module::Function)
    @ REPL C:\Users\dengl\.julia\juliaup\julia-1.12.0-beta4+0.x64.w64.mingw32\share\julia\stdlib\v1.12\REPL\src\REPL.jl:428
  [9] start_repl_backend
    @ C:\Users\dengl\.julia\juliaup\julia-1.12.0-beta4+0.x64.w64.mingw32\share\julia\stdlib\v1.12\REPL\src\REPL.jl:425 [inlined]
 [10] run_repl(repl::REPL.AbstractREPL, consumer::Any; backend_on_current_task::Bool, backend::Any)
    @ REPL C:\Users\dengl\.julia\juliaup\julia-1.12.0-beta4+0.x64.w64.mingw32\share\julia\stdlib\v1.12\REPL\src\REPL.jl:654
 [11] run_repl(repl::REPL.AbstractREPL, consumer::Any)
    @ REPL C:\Users\dengl\.julia\juliaup\julia-1.12.0-beta4+0.x64.w64.mingw32\share\julia\stdlib\v1.12\REPL\src\REPL.jl:640
 [12] run_std_repl(REPL::Module, quiet::Bool, banner::Symbol, history_file::Bool)
    @ Base .\client.jl:482
 [13] run_main_repl(interactive::Bool, quiet::Bool, banner::Symbol, history_file::Bool)
    @ Base .\client.jl:503
 [14] repl_main
    @ .\client.jl:590 [inlined]
 [15] _start()
    @ Base .\client.jl:565

    nested task error: TaskFailedException
    Stacktrace:
     [1] #wait#583
       @ .\task.jl:363 [inlined]
     [2] wait
       @ .\task.jl:360 [inlined]
     [3] fetch
       @ .\task.jl:525 [inlined]
     [4] prompt!(term::REPL.Terminals.TextTerminal, prompt::REPL.LineEdit.ModalInterface, s::REPL.LineEdit.MIState)
       @ REPL.LineEdit C:\Users\dengl\.julia\juliaup\julia-1.12.0-beta4+0.x64.w64.mingw32\share\julia\stdlib\v1.12\REPL\src\LineEdit.jl:2983
     [5] run_interface(terminal::REPL.Terminals.TextTerminal, m::REPL.LineEdit.ModalInterface, s::REPL.LineEdit.MIState)
       @ REPL.LineEdit C:\Users\dengl\.julia\juliaup\julia-1.12.0-beta4+0.x64.w64.mingw32\share\julia\stdlib\v1.12\REPL\src\LineEdit.jl:2849
     [6] run_frontend(repl::REPL.LineEditREPL, backend::REPL.REPLBackendRef)
       @ REPL C:\Users\dengl\.julia\juliaup\julia-1.12.0-beta4+0.x64.w64.mingw32\share\julia\stdlib\v1.12\REPL\src\REPL.jl:1664
     [7] (::REPL.var"#61#62"{REPL.LineEditREPL, REPL.REPLBackendRef})()
       @ REPL C:\Users\dengl\.julia\juliaup\julia-1.12.0-beta4+0.x64.w64.mingw32\share\julia\stdlib\v1.12\REPL\src\REPL.jl:651

        nested task error: InterruptException:
        Stacktrace:
         [1] yieldto(t::Task, x::Any)
           @ Base .\task.jl:1101
         [2] yieldto
           @ .\task.jl:1095 [inlined]
         [3] wait()
           @ Base .\task.jl:1213
         [4] wait(c::Base.GenericCondition{Base.Threads.SpinLock}; first::Bool)
           @ Base .\condition.jl:141
         [5] wait
           @ .\condition.jl:136 [inlined]
         [6] wait_readnb(x::Base.TTY, nb::Int64)
           @ Base .\stream.jl:416
         [7] eof(s::Base.TTY)
           @ Base .\stream.jl:106
         [8] eof(io::REPL.Terminals.TTYTerminal)
           @ Base .\io.jl:472
         [9] (::REPL.LineEdit.var"#prompt!##2#prompt!##3"{REPL.Terminals.TTYTerminal, REPL.LineEdit.ModalInterface, REPL.LineEdit.MIState, REPL.LineEdit.Prompt})()
           @ REPL.LineEdit C:\Users\dengl\.julia\juliaup\julia-1.12.0-beta4+0.x64.w64.mingw32\share\julia\stdlib\v1.12\REPL\src\LineEdit.jl:2948

Metadata

Metadata

Assignees

No one assigned

    Labels

    regression 1.12Regression in the 1.12 release

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions