POMDPModels.jl icon indicating copy to clipboard operation
POMDPModels.jl copied to clipboard

printing output of `EpsGreedyPolicy(mdp, LinearDecaySchedule)` fails

Open filchristou opened this issue 1 year ago • 0 comments

if the output is muted with ; everything works as expected, but if not then error is thrown.

MWE

julia> using POMDPs, POMDPModels, POMDPTools

julia> mdp = SimpleGridWorld();

julia> exploration = EpsGreedyPolicy(mdp, 0.9); # works

julia> exploration = EpsGreedyPolicy(mdp, LinearDecaySchedule(start=1.0, stop=0.01, steps=10000/2)); # works

julia> exploration = EpsGreedyPolicy(mdp, LinearDecaySchedule(start=1.0, stop=0.01, steps=10000/2)) # problem with printing
EpsGreedyPolicy{LinearDecaySchedule{Float64}, Random.TaskLocalRNG, SimpleGridWorld}(Error showing value of type EpsGreedyPolicy{LinearDecaySchedule{Float64}, Random.TaskLocalRNG, SimpleGridWorld}:
ERROR: StackOverflowError:
Stacktrace:
     [1] print(::IOContext{Base.TTY}, ::Function, ::String, ::Vararg{Any})
       @ Base ./strings/io.jl:46
     [2] dump(io::IOContext{Base.TTY}, x::Any, n::Int64, indent::String)
       @ Base ./show.jl:2862
     [3] dump(io::IOContext{Base.TTY}, x::Any; maxdepth::Int64)
       @ Base ./show.jl:2964
     [4] show(io::IOContext{Base.TTY}, p::LinearDecaySchedule{Float64})
       @ POMDPTools.Policies ~/.julia/packages/Parameters/MK0O4/src/Parameters.jl:586
     [5] show_function(io::IOContext{Base.TTY}, f::Function, compact::Bool, fallback::typeof(show))
       @ Base ./show.jl:525
     [6] print(io::IOContext{Base.TTY}, f::Function)
       @ Base ./show.jl:543
--- the last 6 lines are repeated 1995 more times ---
 [11977] print(::IOContext{Base.TTY}, ::Function, ::String, ::Vararg{Any})
       @ Base ./strings/io.jl:46
 [11978] dump(io::IOContext{Base.TTY}, x::Any, n::Int64, indent::String)
       @ Base ./show.jl:2862
 [11979] dump(io::IOContext{Base.TTY}, x::Any; maxdepth::Int64)
       @ Base ./show.jl:2964
 [11980] show(io::IOContext{Base.TTY}, p::LinearDecaySchedule{Float64})
       @ POMDPTools.Policies ~/.julia/packages/Parameters/MK0O4/src/Parameters.jl:586
 [11981] _show_default(io::IOContext{Base.TTY}, x::Any)
       @ Base ./show.jl:479
 [11982] show_default
       @ Base ./show.jl:462 [inlined]
 [11983] show
       @ Base ./show.jl:457 [inlined]
 [11984] show(io::IOContext{…}, ::MIME{…}, x::EpsGreedyPolicy{…})
       @ Base.Multimedia ./multimedia.jl:47
 [11985] (::REPL.var"#55#56"{REPL.REPLDisplay{REPL.LineEditREPL}, MIME{Symbol("text/plain")}, Base.RefValue{Any}})(io::Any)
       @ REPL ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:273
 [11986] with_repl_linfo(f::Any, repl::REPL.LineEditREPL)
       @ REPL ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:569
 [11987] display(d::REPL.REPLDisplay, mime::MIME{Symbol("text/plain")}, x::Any)
       @ REPL ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:259
 [11988] display
       @ REPL ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:278 [inlined]
 [11989] display(x::Any)
       @ Base.Multimedia ./multimedia.jl:340
 [11990] #invokelatest#2
       @ Base ./essentials.jl:887 [inlined]
 [11991] invokelatest
       @ Base ./essentials.jl:884 [inlined]
 [11992] print_response(errio::IO, response::Any, show_value::Bool, have_color::Bool, specialdisplay::Union{…})
       @ REPL ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:315
 [11993] (::REPL.var"#57#58"{REPL.LineEditREPL, Pair{Any, Bool}, Bool, Bool})(io::Any)
       @ REPL ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:284
 [11994] with_repl_linfo(f::Any, repl::REPL.LineEditREPL)
       @ REPL ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:569
 [11995] print_response(repl::REPL.AbstractREPL, response::Any, show_value::Bool, have_color::Bool)
       @ REPL ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:282
 [11996] (::REPL.var"#do_respond#80"{…})(s::REPL.LineEdit.MIState, buf::Any, ok::Bool)
       @ REPL ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:911
 [11997] #invokelatest#2
       @ Base ./essentials.jl:887 [inlined]
 [11998] invokelatest
       @ Base ./essentials.jl:884 [inlined]
 [11999] run_interface(terminal::REPL.Terminals.TextTerminal, m::REPL.LineEdit.ModalInterface, s::REPL.LineEdit.MIState)
       @ REPL.LineEdit ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/LineEdit.jl:2656
 [12000] run_frontend(repl::REPL.LineEditREPL, backend::REPL.REPLBackendRef)
       @ REPL ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:1312
Some type information was truncated. Use `show(err)` to see complete types.

julia> show(err)
1-element ExceptionStack:
StackOverflowError:
Stacktrace:
     [1] dump(io::IOContext{Base.TTY}, x::Any; maxdepth::Int64)
       @ Base ./show.jl:2964
     [2] show(io::IOContext{Base.TTY}, p::LinearDecaySchedule{Float64})
       @ POMDPTools.Policies ~/.julia/packages/Parameters/MK0O4/src/Parameters.jl:586
     [3] show_function(io::IOContext{Base.TTY}, f::Function, compact::Bool, fallback::typeof(show))
       @ Base ./show.jl:525
     [4] print(io::IOContext{Base.TTY}, f::Function)
       @ Base ./show.jl:543
     [5] print(::IOContext{Base.TTY}, ::Function, ::String, ::Vararg{Any})
       @ Base ./strings/io.jl:46
     [6] dump(io::IOContext{Base.TTY}, x::Any, n::Int64, indent::String)
       @ Base ./show.jl:2862
--- the last 6 lines are repeated 1994 more times ---
 [11971] dump(io::IOContext{Base.TTY}, x::Any; maxdepth::Int64)
       @ Base ./show.jl:2964
 [11972] show(io::IOContext{Base.TTY}, p::LinearDecaySchedule{Float64})
       @ POMDPTools.Policies ~/.julia/packages/Parameters/MK0O4/src/Parameters.jl:586
 [11973] _show_default(io::IOContext{Base.TTY}, x::Any)
       @ Base ./show.jl:479
 [11974] show_default
       @ Base ./show.jl:462 [inlined]
 [11975] show
       @ Base ./show.jl:457 [inlined]
 [11976] show(io::IOContext{Base.TTY}, ::MIME{Symbol("text/plain")}, x::EpsGreedyPolicy{LinearDecaySchedule{Float64}, Random.TaskLocalRNG, SimpleGridWorld})
       @ Base.Multimedia ./multimedia.jl:47
 [11977] (::REPL.var"#55#56"{REPL.REPLDisplay{REPL.LineEditREPL}, MIME{Symbol("text/plain")}, Base.RefValue{Any}})(io::Any)
       @ REPL ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:273
 [11978] with_repl_linfo(f::Any, repl::REPL.LineEditREPL)
       @ REPL ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:569
 [11979] display(d::REPL.REPLDisplay, mime::MIME{Symbol("text/plain")}, x::Any)
       @ REPL ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:259
 [11980] display
       @ REPL ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:278 [inlined]
 [11981] display(x::Any)
       @ Base.Multimedia ./multimedia.jl:340
 [11982] #invokelatest#2
       @ Base ./essentials.jl:887 [inlined]
 [11983] invokelatest
       @ Base ./essentials.jl:884 [inlined]
 [11984] print_response(errio::IO, response::Any, show_value::Bool, have_color::Bool, specialdisplay::Union{Nothing, AbstractDisplay})
       @ REPL ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:315
 [11985] (::REPL.var"#57#58"{REPL.LineEditREPL, Pair{Any, Bool}, Bool, Bool})(io::Any)
       @ REPL ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:284
 [11986] with_repl_linfo(f::Any, repl::REPL.LineEditREPL)
       @ REPL ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:569
 [11987] print_response(repl::REPL.AbstractREPL, response::Any, show_value::Bool, have_color::Bool)
       @ REPL ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:282
 [11988] (::REPL.var"#do_respond#80"{Bool, Bool, REPL.var"#93#103"{REPL.LineEditREPL, REPL.REPLHistoryProvider}, REPL.LineEditREPL, REPL.LineEdit.Prompt})(s::REPL.LineEdit.MIState, buf::Any, ok::Bool)
       @ REPL ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:911
 [11989] (::REPL.var"#98#108"{Regex, Regex, Int64, Int64, REPL.LineEdit.Prompt, REPL.LineEdit.Prompt, REPL.LineEdit.Prompt})(::REPL.LineEdit.MIState, ::Any, ::Vararg{Any})
       @ REPL ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:1248
 [11990] #invokelatest#2
       @ Base ./essentials.jl:887 [inlined]
 [11991] invokelatest
       @ Base ./essentials.jl:884 [inlined]
 [11992] (::REPL.LineEdit.var"#27#28"{REPL.var"#98#108"{Regex, Regex, Int64, Int64, REPL.LineEdit.Prompt, REPL.LineEdit.Prompt, REPL.LineEdit.Prompt}, String})(s::Any, p::Any)
       @ REPL.LineEdit ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/LineEdit.jl:1612
 [11993] prompt!(term::REPL.Terminals.TextTerminal, prompt::REPL.LineEdit.ModalInterface, s::REPL.LineEdit.MIState)
       @ REPL.LineEdit ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/LineEdit.jl:2749
 [11994] run_interface(terminal::REPL.Terminals.TextTerminal, m::REPL.LineEdit.ModalInterface, s::REPL.LineEdit.MIState)
       @ REPL.LineEdit ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/LineEdit.jl:2651
 [11995] run_frontend(repl::REPL.LineEditREPL, backend::REPL.REPLBackendRef)
       @ REPL ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:1312
julia> versioninfo()
Julia Version 1.10.0
Commit 3120989f39b (2023-12-25 18:01 UTC)
Build Info:
  Official https://julialang.org/ release
Platform Info:
  OS: Linux (x86_64-linux-gnu)
  CPU: 12 × 12th Gen Intel(R) Core(TM) i5-1235U
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-15.0.7 (ORCJIT, alderlake)
  Threads: 1 on 12 virtual cores
(jl_RMclTG) pkg> st
Status `/tmp/jl_RMclTG/Project.toml`
  [355abbd5] POMDPModels v0.4.20
  [7588e00f] POMDPTools v0.1.6
  [a93abf59] POMDPs v0.9.6

filchristou avatar Jan 24 '24 09:01 filchristou