fonsp / Pluto.jl

🎈 Simple reactive notebooks for Julia
https://plutojl.org/
MIT License
4.91k stars 284 forks source link

Pluto Remotely, using Flux causes "Distributed.ProcessExitedException(3)" #2477

Open RohanRajagopal opened 1 year ago

RohanRajagopal commented 1 year ago

I am using Pluto notebooks remotely on a Windows Machine.

However, using the following command causes an error

using Flux

The following is the complete error message

Unhandled Task ERROR: IOError: read: connection reset by peer (ECONNRESET)      
Stacktrace:
  [1] wait_readnb(x::Sockets.TCPSocket, nb::Int64)
    @ Base .\stream.jl:410
  [2] (::Base.var"#wait_locked#680")(s::Sockets.TCPSocket, buf::IOBuffer, nb::In
t64)
    @ Base .\stream.jl:947
  [3] unsafe_read(s::Sockets.TCPSocket, p::Ptr{UInt8}, nb::UInt64)
    @ Base .\stream.jl:953
  [4] unsafe_read
    @ .\io.jl:759 [inlined]
  [5] unsafe_read(s::Sockets.TCPSocket, p::Base.RefValue{NTuple{4, Int64}}, n::I
nt64)
    @ Base .\io.jl:758
  [6] read!
    @ .\io.jl:760 [inlined]
  [7] deserialize_hdr_raw
    @ C:\Users\Rohan\AppData\Local\Programs\Julia-1.8.5\share\julia\stdlib\v1.8\
Distributed\src\messages.jl:167 [inlined]
  [8] message_handler_loop(r_stream::Sockets.TCPSocket, w_stream::Sockets.TCPSoc
ket, incoming::Bool)
    @ Distributed C:\Users\Rohan\AppData\Local\Programs\Julia-1.8.5\share\julia\
stdlib\v1.8\Distributed\src\process_messages.jl:172
  [9] process_tcp_streams(r_stream::Sockets.TCPSocket, w_stream::Sockets.TCPSock
et, incoming::Bool)
    @ Distributed C:\Users\Rohan\AppData\Local\Programs\Julia-1.8.5\share\julia\
stdlib\v1.8\Distributed\src\process_messages.jl:133
 [10] (::Distributed.var"#103#104"{Sockets.TCPSocket, Sockets.TCPSocket, Bool})(
)
    @ Distributed .\task.jl:484
Distributed.ProcessExitedException(3)
Stacktrace:
  [1] worker_from_id(pg::Distributed.ProcessGroup, i::Int64)
    @ Distributed C:\Users\Rohan\AppData\Local\Programs\Julia-1.8.5\share\julia\
stdlib\v1.8\Distributed\src\cluster.jl:1093
  [2] worker_from_id
    @ C:\Users\Rohan\AppData\Local\Programs\Julia-1.8.5\share\julia\stdlib\v1.8\
Distributed\src\cluster.jl:1090 [inlined]
  [3] #remotecall_fetch#162
    @ C:\Users\Rohan\AppData\Local\Programs\Julia-1.8.5\share\julia\stdlib\v1.8\
Distributed\src\remotecall.jl:492 [inlined]
  [4] remotecall_fetch
    @ C:\Users\Rohan\AppData\Local\Programs\Julia-1.8.5\share\julia\stdlib\v1.8\
Distributed\src\remotecall.jl:492 [inlined]
  [5] remotecall_eval(m::Module, pid::Int64, ex::Expr)
    @ Distributed C:\Users\Rohan\AppData\Local\Programs\Julia-1.8.5\share\julia\
stdlib\v1.8\Distributed\src\macros.jl:242
  [6] collect_soft_definitions(session_notebook::Tuple{Pluto.ServerSession, Plut
o.Notebook}, modules::Set{Expr})
    @ Pluto.WorkspaceManager C:\Users\Rohan\.julia\packages\Pluto\ZBojR\src\eval
uation\WorkspaceManager.jl:546
  [7] run_reactive_core!(session::Pluto.ServerSession, notebook::Pluto.Notebook,
 old_topology::Pluto.NotebookTopology, new_topology::Pluto.NotebookTopology, roo
ts::Vector{Pluto.Cell}; save::Bool, deletion_hook::typeof(Pluto.WorkspaceManager
.move_vars), user_requested_run::Bool, already_run::Vector{Pluto.Cell}, bond_val
ue_pairs::Base.Iterators.Zip{Tuple{Vector{Symbol}, Vector{Any}}})
    @ Pluto C:\Users\Rohan\.julia\packages\Pluto\ZBojR\src\evaluation\Run.jl:227
  [8] (::Pluto.var"#290#296"{Bool, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTup
le{(), Tuple{}}}, Pluto.ServerSession, Pluto.Notebook})()
    @ Pluto C:\Users\Rohan\.julia\packages\Pluto\ZBojR\src\evaluation\Run.jl:448
  [9] withtoken(f::Pluto.var"#290#296"{Bool, Base.Pairs{Symbol, Union{}, Tuple{}
, NamedTuple{(), Tuple{}}}, Pluto.ServerSession, Pluto.Notebook}, token::Pluto.T
oken)
    @ Pluto C:\Users\Rohan\.julia\packages\Pluto\ZBojR\src\evaluation\Tokens.jl:
19
 [10] #289
    @ C:\Users\Rohan\.julia\packages\Pluto\ZBojR\src\evaluation\Run.jl:427 [inli
ned]
 [11] macro expansion
    @ C:\Users\Rohan\.julia\packages\Pluto\ZBojR\src\evaluation\Tokens.jl:58 [in
lined]
 [12] (::Pluto.var"#281#282"{Pluto.var"#289#295"{Bool, Base.Pairs{Symbol, Union{
}, Tuple{}, NamedTuple{(), Tuple{}}}, Pluto.ServerSession, Pluto.Notebook}})()  
    @ Pluto .\task.jl:484

This is a problem even if I use the same command in the remote server directly. All the scientific computing packages that I have used in the Pluto notebooks have been working without any problem. It is just the Flux packages while using in Pluto notebooks that causes an error.

Additionally, to clarify, Flux works on the REPL.

Deeply appreciate any help, thanks very much.

fonsp commented 1 year ago

Thanks for the report @RohanRajagopal ! Could you say a bit more about 1) your remote setup, and 2) about this observation:

This is a problem even if I use the same command in the remote server directly.

Could you give a short description of this that we can reproduce?