Julia错误的含义:ERROR(未处理的任务失败):EOFError:读取文件结尾?

时间:2017-10-01 17:59:43

标签: julia

尝试在pmap执行一些令人尴尬的并行任务时理解以下错误。在Linux服务器上运行。在写入HDF(并行调用的一部分)时可能正在发生,但我不这么认为,如果堆栈跟踪没有指向正在执行的用户函数中的行,并且对TCP的引用表明它是并行呼叫的一部分。已经发生了几次连续运行,所以不是一次性的侥幸。

Worker 139 terminated.
ERROR (unhandled task failure): EOFError: read end of file
Stacktrace:
 [1] unsafe_read(::Base.AbstractIOBuffer{Array{UInt8,1}}, ::Ptr{UInt8}, ::UInt64) at ./iobuffer.jl:105
 [2] unsafe_read(::TCPSocket, ::Ptr{UInt8}, ::UInt64) at ./stream.jl:752
 [3] unsafe_read(::TCPSocket, ::Base.RefValue{NTuple{4,Int64}}, ::Int64) at ./io.jl:361
 [4] read at ./io.jl:363 [inlined]
 [5] deserialize_hdr_raw at ./distributed/messages.jl:170 [inlined]
 [6] message_handler_loop(::TCPSocket, ::TCPSocket, ::Bool) at ./distributed/process_messages.jl:157
 [7] process_tcp_streams(::TCPSocket, ::TCPSocket, ::Bool) at ./distributed/process_messages.jl:118
 [8] (::Base.Distributed.##99#100{TCPSocket,TCPSocket,Bool})() at ./event.jl:73

朱莉娅信息:

julia> versioninfo()

Julia Version 0.6.0
Commit 9036443 (2017-06-19 13:05 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Xeon(R) CPU           E5620  @ 2.40GHz
  WORD_SIZE: 64
  BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Nehalem)
  LAPACK: libopenblas64_
  LIBM: libopenlibm
  LLVM: libLLVM-3.9.1 (ORCJIT, westmere)

[编辑:更多信息]此外,如果它有用,这似乎发生在运行中 - 第一组并行运行的输出看起来像是保存到磁盘,所以这不是立即崩溃,但是在第二组执行结束或第二组执行开始时发生的事情。

1 个答案:

答案 0 :(得分:2)

好的,所以我最终弄清楚这意味着什么:

这是其中一个并行化工作人员遇到错误时出现的错误。特定的错误语言(EOFError: read end of file)并不意味着什么。 stackoverflow中对readio的引用仅与概述任务和工作者之间的消息传递有关。

在我的情况下,错误是内存溢出导致任务管理器终止worker。