Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Errors in the REPL tests don't actually cause CI to fail #43162

Closed
vtjnash opened this issue Nov 20, 2021 · 6 comments
Closed

Errors in the REPL tests don't actually cause CI to fail #43162

vtjnash opened this issue Nov 20, 2021 · 6 comments
Labels
bug Indicates an unexpected problem or unintended behavior test This change adds or pertains to unit tests

Comments

@vtjnash
Copy link
Member

vtjnash commented Nov 20, 2021

I saw this happening locally, though I don't know what it means

REPL                               (10) |        started at 2021-11-19T19:32:30.340
      From worker 10:   foo
      From worker 10:   foo foo
      From worker 10:   UNHANDLED TASK ERROR: IOError: stream is closed or unusable
      From worker 10:   Stacktrace:
      From worker 10:     [1] check_open
      From worker 10:       @ ./stream.jl:388 [inlined]
      From worker 10:     [2] uv_write_async(s::Base.PipeEndpoint, p::Ptr{UInt8}, n::UInt64)
      From worker 10:       @ Base ./stream.jl:1069
      From worker 10:     [3] uv_write(s::Base.PipeEndpoint, p::Ptr{UInt8}, n::UInt64)
      From worker 10:       @ Base ./stream.jl:1032
      From worker 10:     [4] unsafe_write(s::Base.PipeEndpoint, p::Ptr{UInt8}, n::UInt64)
      From worker 10:       @ Base ./stream.jl:1115
      From worker 10:     [5] unsafe_write
      From worker 10:       @ ./io.jl:675 [inlined]                                                                                                                               From worker 10:     [6] unsafe_write(s::Base.PipeEndpoint, p::Base.RefValue{UInt8}, n::Int64)
      From worker 10:       @ Base ./io.jl:673
      From worker 10:     [7] write
      From worker 10:       @ ./io.jl:676 [inlined]
      From worker 10:     [8] write(s::Base.PipeEndpoint, b::UInt8)
      From worker 10:       @ Base ./stream.jl:1153
      From worker 10:     [9] write(io::Main.Test10Main_REPL.REPLTests.FakeTerminals.FakeTerminal, byte::UInt8) (repeats 2 times)
      From worker 10:       @ Base ./io.jl:417
      From worker 10:    [10] write
      From worker 10:       @ ./io.jl:729 [inlined]
      From worker 10:    [11] print
      From worker 10:       @ ./char.jl:252 [inlined]
      From worker 10:    [12] println(io::IOContext{Main.Test10Main_REPL.REPLTests.FakeTerminals.FakeTerminal})
      From worker 10:       @ Base ./coreio.jl:5
      From worker 10:    [13] print_response(errio::IO, response::Any, show_value::Bool, have_color::Bool, specialdisplay::Union{Nothing, AbstractDisplay})
      From worker 10:       @ REPL /data/vtjnash/julia/usr/share/julia/stdlib/v1.8/REPL/src/REPL.jl:307
      From worker 10:    [14] (::REPL.var"#45#46"{REPL.LineEditREPL, Pair{Any, Bool}, Bool, Bool})(io::Any)
      From worker 10:       @ REPL /data/vtjnash/julia/usr/share/julia/stdlib/v1.8/REPL/src/REPL.jl:276
      From worker 10:    [15] with_repl_linfo(f::Any, repl::REPL.LineEditREPL)
      From worker 10:       @ REPL /data/vtjnash/julia/usr/share/julia/stdlib/v1.8/REPL/src/REPL.jl:527
      From worker 10:    [16] print_response(repl::REPL.AbstractREPL, response::Any, show_value::Bool, have_color::Bool)
      From worker 10:       @ REPL /data/vtjnash/julia/usr/share/julia/stdlib/v1.8/REPL/src/REPL.jl:274
      From worker 10:    [17] (::REPL.var"#do_respond#70"{Bool, Bool, REPL.var"#81#91"{REPL.LineEditREPL, REPL.REPLHistoryProvider}, REPL.LineEditREPL, REPL.LineEdit.Prompt})(s::REPL.LineEdit.MIState, buf::An
y, ok::Bool)
      From worker 10:       @ REPL /data/vtjnash/julia/usr/share/julia/stdlib/v1.8/REPL/src/REPL.jl:863
      From worker 10:    [18] #invokelatest#2
      From worker 10:       @ ./essentials.jl:731 [inlined]
      From worker 10:    [19] invokelatest
      From worker 10:       @ ./essentials.jl:729 [inlined]
      From worker 10:    [20] run_interface(terminal::REPL.Terminals.TextTerminal, m::REPL.LineEdit.ModalInterface, s::REPL.LineEdit.MIState)
      From worker 10:       @ REPL.LineEdit /data/vtjnash/julia/usr/share/julia/stdlib/v1.8/REPL/src/LineEdit.jl:2509
      From worker 10:    [21] run_frontend(repl::REPL.LineEditREPL, backend::REPL.REPLBackendRef)
      From worker 10:       @ REPL /data/vtjnash/julia/usr/share/julia/stdlib/v1.8/REPL/src/REPL.jl:1249
      From worker 10:    [22] (::REPL.var"#49#54"{REPL.LineEditREPL, REPL.REPLBackendRef})()
      From worker 10:       @ REPL ./task.jl:466
      From worker 10:
      From worker 10:   caused by: IOError: stream is closed or unusable
      From worker 10:   Stacktrace:
      From worker 10:     [1] check_open
      From worker 10:       @ ./stream.jl:388 [inlined]
      From worker 10:     [2] uv_write_async(s::Base.PipeEndpoint, p::Ptr{UInt8}, n::UInt64)
      From worker 10:       @ Base ./stream.jl:1069
      From worker 10:     [3] uv_write(s::Base.PipeEndpoint, p::Ptr{UInt8}, n::UInt64)
      From worker 10:       @ Base ./stream.jl:1032
      From worker 10:     [4] unsafe_write(s::Base.PipeEndpoint, p::Ptr{UInt8}, n::UInt64)
      From worker 10:       @ Base ./stream.jl:1115
      From worker 10:     [5] unsafe_write(io::Main.Test10Main_REPL.REPLTests.FakeTerminals.FakeTerminal, p::Ptr{UInt8}, nb::UInt64) (repeats 2 times)
      From worker 10:       @ Base ./io.jl:419                                                                                                                                                                        From worker 10:     [6] write
      From worker 10:       @ ./strings/io.jl:244 [inlined]
      From worker 10:     [7] print
      From worker 10:       @ ./strings/io.jl:246 [inlined]
      From worker 10:     [8] with_output_color(f::Function, color::Symbol, io::IOContext{Main.Test10Main_REPL.REPLTests.FakeTerminals.FakeTerminal}, args::String; bold::Bool, underline::Bool, blink::Bool, reverse::Bool, hidden::Bool)
      From worker 10:       @ Base ./util.jl:79
      From worker 10:     [9] #printstyled#883
      From worker 10:       @ ./util.jl:129 [inlined]
      From worker 10:    [10] display_error(io::IOContext{Main.Test10Main_REPL.REPLTests.FakeTerminals.FakeTerminal}, stack::Base.ExceptionStack)
      From worker 10:       @ Base ./client.jl:102
      From worker 10:    [11] #invokelatest#2
      From worker 10:       @ ./essentials.jl:731 [inlined]
      From worker 10:    [12] invokelatest
      From worker 10:       @ ./essentials.jl:729 [inlined]
      From worker 10:    [13] print_response(errio::IO, response::Any, show_value::Bool, have_color::Bool, specialdisplay::Union{Nothing, AbstractDisplay})
      From worker 10:       @ REPL /data/vtjnash/julia/usr/share/julia/stdlib/v1.8/REPL/src/REPL.jl:289
      From worker 10:    [14] (::REPL.var"#45#46"{REPL.LineEditREPL, Pair{Any, Bool}, Bool, Bool})(io::Any)
      From worker 10:       @ REPL /data/vtjnash/julia/usr/share/julia/stdlib/v1.8/REPL/src/REPL.jl:276
      From worker 10:    [15] with_repl_linfo(f::Any, repl::REPL.LineEditREPL)
      From worker 10:       @ REPL /data/vtjnash/julia/usr/share/julia/stdlib/v1.8/REPL/src/REPL.jl:527
      From worker 10:    [16] print_response(repl::REPL.AbstractREPL, response::Any, show_value::Bool, have_color::Bool)
      From worker 10:       @ REPL /data/vtjnash/julia/usr/share/julia/stdlib/v1.8/REPL/src/REPL.jl:274
      From worker 10:    [17] (::REPL.var"#do_respond#70"{Bool, Bool, REPL.var"#81#91"{REPL.LineEditREPL, REPL.REPLHistoryProvider}, REPL.LineEditREPL, REPL.LineEdit.Prompt})(s::REPL.LineEdit.MIState, buf::Any, ok::Bool)
      From worker 10:       @ REPL /data/vtjnash/julia/usr/share/julia/stdlib/v1.8/REPL/src/REPL.jl:863
      From worker 10:    [18] #invokelatest#2
      From worker 10:       @ ./essentials.jl:731 [inlined]
      From worker 10:    [19] invokelatest
      From worker 10:       @ ./essentials.jl:729 [inlined]
      From worker 10:    [20] run_interface(terminal::REPL.Terminals.TextTerminal, m::REPL.LineEdit.ModalInterface, s::REPL.LineEdit.MIState)
      From worker 10:       @ REPL.LineEdit /data/vtjnash/julia/usr/share/julia/stdlib/v1.8/REPL/src/LineEdit.jl:2509
      From worker 10:    [21] run_frontend(repl::REPL.LineEditREPL, backend::REPL.REPLBackendRef)
      From worker 10:       @ REPL /data/vtjnash/julia/usr/share/julia/stdlib/v1.8/REPL/src/REPL.jl:1249
      From worker 10:    [22] (::REPL.var"#49#54"{REPL.LineEditREPL, REPL.REPLBackendRef})()
      From worker 10:       @ REPL ./task.jl:466
REPL                               (10) |    72.70 |   1.61 |  2.2 |    2663.52 |   684.44
@aviatesk
Copy link
Member

Seems like this first appeared at 2c2e724.

@DilumAluthge
Copy link
Member

Why doesn't this test failure cause CI to fail? That in itself seems to be a bug.

@DilumAluthge DilumAluthge added bug Indicates an unexpected problem or unintended behavior test This change adds or pertains to unit tests labels Nov 20, 2021
aviatesk added a commit that referenced this issue Nov 20, 2021
@BioTurboNick
Copy link
Contributor

FWIW the underlying issue in the OP was fixed as part of #43173

@DilumAluthge DilumAluthge changed the title non-fatal errors happening in REPL test? Errors in the REPL tests don't actually cause CI to fail Nov 27, 2021
@DilumAluthge DilumAluthge reopened this Nov 27, 2021
@DilumAluthge
Copy link
Member

Now that the underlying bug is fixed, I think we should shift the focus of this issue to figuring out why these failures didn't actually cause CI to fail.

@KristofferC
Copy link
Member

Wasn't that also fixed in #43173 (a missing wait)?

@DilumAluthge
Copy link
Member

Good catch; I didn't see the addition ofBase.wait(repltask).

I think this issue is resolved then.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Indicates an unexpected problem or unintended behavior test This change adds or pertains to unit tests
Projects
None yet
Development

No branches or pull requests

5 participants