How to get more info on w ∈ workers()

I’m getting the following error

From worker 30:	ErrorException("Process(30) - Invalid connection credentials sent by remote.")CapturedException(ErrorException("Process(30) - Invalid connection credentials sent by remote."), Any[(error(::String) at error.jl:33, 1), (process_hdr(::Sockets.TCPSocket, ::Bool) at process_messages.jl:273, 1), (message_handler_loop(::Sockets.TCPSocket, ::Sockets.TCPSocket, ::Bool) at process_messages.jl:167, 1), (process_tcp_streams(::Sockets.TCPSocket, ::Sockets.TCPSocket, ::Bool) at process_messages.jl:142, 1), ((::Distributed.var"#101#102"{Sockets.TCPSocket,Sockets.TCPSocket,Bool})() at task.jl:333, 1)])
      From worker 30:	Process(30) - Unknown remote, closing connection.

This is a little strange in the first place for me since it is the only failure and I am using addprocs() to add 2 processes per machine on several machines that I assume to be identically configured (linux cluster in a student lab).

I have two questions:

  1. What error should I be catching so that I can simply proceed without this worker?
  2. For debugging purposes (and for general logging) I would like more information on worker 30. How can I know the hostname corresponding to this worker?

Many thanks.

1 i’m not sure about that but seems RemoteException type is for this purpose, maybe you can refer to julia manual here https://docs.julialang.org/en/v1/stdlib/Distributed/#Distributed.RemoteException

2 you can use Distributed.map_pid_wrkr function to map the pid to a Worker type, then you can lookup the hostname, such as Distributed.map_pid_wrkr[pid].config.host. config field is a WorkConfig type, and all field name can be obtained by using Distrbuted; fieldnames(WorkerConfig), that is (:io, :host, :port, :count, :exename, :exeflags, :userdata, :tunnel, :multiplex, :forward, :bind_addr, :sshflags, :max_parallel, :connect_at, :process, :ospid, :environ, :ident, :connect_idents, :enable_threaded_blas).